@bsv/overlay 0.1.14 → 0.1.16

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 (45) hide show
  1. package/dist/cjs/mod.js.map +1 -1
  2. package/dist/cjs/package.json +2 -2
  3. package/dist/cjs/src/Engine.js +83 -122
  4. package/dist/cjs/src/Engine.js.map +1 -1
  5. package/dist/cjs/src/SHIPAdvertisement.js +3 -0
  6. package/dist/cjs/src/SHIPAdvertisement.js.map +1 -0
  7. package/dist/cjs/src/SLAPAdvertisement.js +3 -0
  8. package/dist/cjs/src/SLAPAdvertisement.js.map +1 -0
  9. package/dist/cjs/tsconfig.cjs.tsbuildinfo +1 -1
  10. package/dist/esm/mod.js.map +1 -1
  11. package/dist/esm/src/Engine.js +86 -119
  12. package/dist/esm/src/Engine.js.map +1 -1
  13. package/dist/esm/src/SHIPAdvertisement.js +2 -0
  14. package/dist/esm/src/SHIPAdvertisement.js.map +1 -0
  15. package/dist/esm/src/SLAPAdvertisement.js +2 -0
  16. package/dist/esm/src/SLAPAdvertisement.js.map +1 -0
  17. package/dist/esm/tsconfig.esm.tsbuildinfo +1 -1
  18. package/dist/types/mod.d.ts +2 -6
  19. package/dist/types/mod.d.ts.map +1 -1
  20. package/dist/types/src/Advertiser.d.ts +1 -2
  21. package/dist/types/src/Advertiser.d.ts.map +1 -1
  22. package/dist/types/src/Engine.d.ts +27 -15
  23. package/dist/types/src/Engine.d.ts.map +1 -1
  24. package/dist/types/src/LookupService.d.ts +1 -3
  25. package/dist/types/src/LookupService.d.ts.map +1 -1
  26. package/dist/types/src/SHIPAdvertisement.d.ts +9 -0
  27. package/dist/types/src/SHIPAdvertisement.d.ts.map +1 -0
  28. package/dist/types/src/SLAPAdvertisement.d.ts +9 -0
  29. package/dist/types/src/SLAPAdvertisement.d.ts.map +1 -0
  30. package/dist/types/src/TopicManager.d.ts +1 -1
  31. package/dist/types/src/TopicManager.d.ts.map +1 -1
  32. package/dist/types/tsconfig.types.tsbuildinfo +1 -1
  33. package/docs/API.md +736 -212
  34. package/mod.ts +2 -6
  35. package/package.json +2 -2
  36. package/src/Advertiser.ts +1 -2
  37. package/src/Engine.ts +125 -132
  38. package/src/LookupService.ts +1 -3
  39. package/src/TopicManager.ts +1 -1
  40. package/src/__tests/Engine.test.ts +1 -5
  41. package/src/AdmittanceInstructions.ts +0 -14
  42. package/src/LookupAnswer.ts +0 -14
  43. package/src/LookupQuestion.ts +0 -15
  44. package/src/STEAK.ts +0 -10
  45. package/src/TaggedBEEF.ts +0 -10
@@ -1 +1 @@
1
- {"version":3,"file":"mod.js","sourceRoot":"","sources":["../../mod.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,eAAe;AACf,6CAAwC;AAA/B,mGAAA,MAAM,OAAA;AAgBf,0BAA0B;AAC1B,oEAA+D;AAAtD,6GAAA,WAAW,OAAA;AACpB,8FAA6E"}
1
+ {"version":3,"file":"mod.js","sourceRoot":"","sources":["../../mod.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,eAAe;AACf,6CAAwC;AAA/B,mGAAA,MAAM,OAAA;AAYf,0BAA0B;AAC1B,oEAA+D;AAAtD,6GAAA,WAAW,OAAA;AACpB,8FAA6E"}
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bsv/overlay",
3
- "version": "0.1.14",
3
+ "version": "0.1.15",
4
4
  "type": "commonjs",
5
5
  "description": "BSV Blockchain Overlay Services Engine",
6
6
  "files": [
@@ -48,7 +48,7 @@
48
48
  },
49
49
  "dependencies": {
50
50
  "@bsv/gasp": "^0.1.2",
51
- "@bsv/sdk": "^1.1.24",
51
+ "@bsv/sdk": "^1.2.3",
52
52
  "knex": "^3.1.0"
53
53
  }
54
54
  }
@@ -7,7 +7,7 @@ const OverlayGASPRemote_js_1 = require("./GASP/OverlayGASPRemote.js");
7
7
  const OverlayGASPStorage_js_1 = require("./GASP/OverlayGASPStorage.js");
8
8
  const url_1 = require("url");
9
9
  /**
10
- * Am engine for running BSV Overlay Services (topic managers and lookup services).
10
+ * An engine for running BSV Overlay Services (topic managers and lookup services).
11
11
  */
12
12
  class Engine {
13
13
  /**
@@ -19,14 +19,16 @@ class Engine {
19
19
  * @param {string} [hostingURL] - The URL this engine is hosted at. Required if going to support peer-discovery with an advertiser.
20
20
  * @param {Broadcaster} [Broadcaster] - broadcaster used for broadcasting the incoming transaction
21
21
  * @param {Advertiser} [Advertiser] - handles SHIP and SLAP advertisements for peer-discovery
22
- * @param {string} shipTrackers - SHIP domains we know to bootstrap the system
23
- * @param {string} slapTrackers - SLAP domains we know to bootstrap the system
22
+ * @param {string[]} shipTrackers - SHIP domains we know to bootstrap the system
23
+ * @param {string[]} slapTrackers - SLAP domains we know to bootstrap the system
24
24
  * @param {SyncConfiguration} syncConfiguration — Configuration object describing historical synchronization of topics.
25
25
  * @param {boolean} logTime - Enables / disables the timing logs for various operations in the Overlay submit route.
26
26
  * @param {string} logPrefix - Supports overriding the log prefix with a custom string.
27
27
  * @param {boolean} throwOnBroadcastFailure - Enables / disables throwing an error when a transaction broadcast failure is detected.
28
+ * @param {OverlayBroadcastFacilitator} overlayBroadcastFacilitator - Facilitator for propagation to other Overlay Services.
29
+ * @param {typeof console} logger - The place where log entries are written.
28
30
  */
29
- constructor(managers, lookupServices, storage, chainTracker, hostingURL, shipTrackers, slapTrackers, broadcaster, advertiser, syncConfiguration, logTime = false, logPrefix = '[OVERLAY_ENGINE] ', throwOnBroadcastFailure = false) {
31
+ constructor(managers, lookupServices, storage, chainTracker, hostingURL, shipTrackers, slapTrackers, broadcaster, advertiser, syncConfiguration, logTime = false, logPrefix = '[OVERLAY_ENGINE] ', throwOnBroadcastFailure = false, overlayBroadcastFacilitator = new sdk_1.HTTPSOverlayBroadcastFacilitator(), logger = console) {
30
32
  this.managers = managers;
31
33
  this.lookupServices = lookupServices;
32
34
  this.storage = storage;
@@ -40,6 +42,8 @@ class Engine {
40
42
  this.logTime = logTime;
41
43
  this.logPrefix = logPrefix;
42
44
  this.throwOnBroadcastFailure = throwOnBroadcastFailure;
45
+ this.overlayBroadcastFacilitator = overlayBroadcastFacilitator;
46
+ this.logger = logger;
43
47
  // To encourage synchronization of overlay services, the SHIP sync strategy is used by default for all overlay topics, except for 'tm_ship' and 'tm_slap'.
44
48
  // For these two topics, any existing trackers are combined with the provided shipTrackers and slapTrackers omitting any duplicates.
45
49
  if (syncConfiguration === undefined) {
@@ -76,12 +80,12 @@ class Engine {
76
80
  // Helper functions for logging timings
77
81
  startTime(label) {
78
82
  if (this.logTime) {
79
- console.time(`${this.logPrefix} ${label}`);
83
+ this.logger.time(`${this.logPrefix} ${label}`);
80
84
  }
81
85
  }
82
86
  endTime(label) {
83
87
  if (this.logTime) {
84
- console.timeEnd(`${this.logPrefix} ${label}`);
88
+ this.logger.timeEnd(`${this.logPrefix} ${label}`);
85
89
  }
86
90
  }
87
91
  /**
@@ -111,7 +115,6 @@ class Engine {
111
115
  throw new Error('Unable to verify SPV information.');
112
116
  this.endTime(`chainTracker_${txid.substring(0, 10)}`);
113
117
  const steak = {};
114
- let admissibleOutputs = { outputsToAdmit: [], coinsToRetain: [] };
115
118
  const previousCoins = [];
116
119
  // Parallelize the topic processing
117
120
  const topicPromises = taggedBEEF.topics.map(async (topic) => {
@@ -152,15 +155,16 @@ class Engine {
152
155
  await ((_a = l.outputSpent) === null || _a === void 0 ? void 0 : _a.call(l, output.txid, output.outputIndex, topic));
153
156
  }
154
157
  catch (error) {
155
- console.error('Error in lookup service for outputSpent:', error);
158
+ this.logger.error('Error in lookup service for outputSpent:', error);
156
159
  }
157
160
  }));
158
161
  }
159
162
  catch (error) {
160
- console.error('Error marking UTXO as spent:', error);
163
+ this.logger.error('Error marking UTXO as spent:', error);
161
164
  }
162
165
  }
163
166
  });
167
+ let admissibleOutputs = { outputsToAdmit: [], coinsToRetain: [] };
164
168
  // Determine which outputs are admissible
165
169
  const admissibleOutputsPromise = (async () => {
166
170
  try {
@@ -194,18 +198,19 @@ class Engine {
194
198
  this.endTime(`submit_${txid}`);
195
199
  onSteakReady(steak);
196
200
  }
201
+ // Update storage and notify lookup services
197
202
  for (const topic of taggedBEEF.topics) {
198
203
  // Keep track of which outputs to admit, mark as stale, or retain
204
+ const admissibleOutputs = steak[topic];
199
205
  const outputsToAdmit = admissibleOutputs.outputsToAdmit;
200
- const staleCoins = [];
201
206
  const outputsConsumed = [];
202
- // Find which outputs should not be retained and mark them as stale
203
- // For each of the previous UTXOs, if the the UTXO was not included in the list of UTXOs identified for retention, then it will be marked as stale.
207
+ const outputsToMarkStale = [];
208
+ // For each of the previous UTXOs, if the UTXO was not included in the list of UTXOs identified for retention, then it will be marked as stale.
204
209
  for (const inputIndex of previousCoins) {
205
210
  const previousTXID = tx.inputs[inputIndex].sourceTXID || ((_a = tx.inputs[inputIndex].sourceTransaction) === null || _a === void 0 ? void 0 : _a.id('hex'));
206
211
  const previousOutputIndex = tx.inputs[inputIndex].sourceOutputIndex;
207
212
  if (!admissibleOutputs.coinsToRetain.includes(inputIndex)) {
208
- staleCoins.push({
213
+ outputsToMarkStale.push({
209
214
  txid: previousTXID,
210
215
  outputIndex: previousOutputIndex
211
216
  });
@@ -219,7 +224,7 @@ class Engine {
219
224
  }
220
225
  // Remove stale outputs recursively
221
226
  this.startTime(`lookForStaleOutputs_${txid.substring(0, 10)}`);
222
- await Promise.all(staleCoins.map(async (coin) => {
227
+ await Promise.all(outputsToMarkStale.map(async (coin) => {
223
228
  const output = await this.storage.findOutput(coin.txid, coin.outputIndex, topic);
224
229
  if (output !== undefined && output !== null) {
225
230
  await this.deleteUTXODeep(output);
@@ -269,108 +274,67 @@ class Engine {
269
274
  return steak;
270
275
  }
271
276
  this.startTime(`transactionPropagation_${txid.substring(0, 10)}`);
272
- // Propagate transaction to other nodes according to synchronization agreements
273
- // 1. Find nodes that host the topics associated with admissable outputs
274
- // We want to figure out which topics we actually care about (because their associated outputs were admitted)
275
- // AND if the topic was not admitted we want to remove it from the list of topics we care about.
276
277
  const relevantTopics = taggedBEEF.topics.filter(topic => steak[topic] !== undefined && steak[topic].outputsToAdmit.length !== 0);
277
- // TODO: Cache ship/slap lookup with expiry (every 5min)
278
278
  if (relevantTopics.length > 0) {
279
- // Find all SHIP advertisements for the topics we care about
280
- const domainToTopicsMap = new Map();
281
- for (const topic of relevantTopics) {
282
- try {
283
- // Handle custom lookup service answers
284
- const lookupAnswer = await this.lookup({
285
- service: 'ls_ship',
286
- query: {
287
- topic
288
- }
289
- });
290
- // Lookup will currently always return type output-list
291
- if (lookupAnswer.type === 'output-list') {
292
- const shipAdvertisements = [];
293
- lookupAnswer.outputs.forEach(output => {
294
- var _a;
295
- try {
296
- // Parse out the advertisements using the provided parser
297
- const tx = sdk_1.Transaction.fromBEEF(output.beef);
298
- const advertisement = (_a = this.advertiser) === null || _a === void 0 ? void 0 : _a.parseAdvertisement(tx.outputs[output.outputIndex].lockingScript);
299
- if (advertisement !== undefined && advertisement !== null && advertisement.protocol === 'SHIP') {
300
- shipAdvertisements.push(advertisement);
301
- }
302
- }
303
- catch (error) {
304
- console.error('Failed to parse advertisement output:', error);
305
- }
306
- });
307
- if (shipAdvertisements.length > 0) {
308
- shipAdvertisements.forEach((advertisement) => {
309
- var _a;
310
- if (!domainToTopicsMap.has(advertisement.domain)) {
311
- domainToTopicsMap.set(advertisement.domain, new Set());
312
- }
313
- (_a = domainToTopicsMap.get(advertisement.domain)) === null || _a === void 0 ? void 0 : _a.add(topic);
314
- });
315
- }
316
- }
317
- }
318
- catch (error) {
319
- console.error(`Error looking up topic ${String(topic)}:`, error);
320
- }
279
+ // Create a SHIPBroadcaster instance
280
+ let customBroadcasterConfig;
281
+ if (this.slapTrackers) {
282
+ // Custom SLAP trackers warrant a custom broadcaster config
283
+ const resolverConfig = {
284
+ slapTrackers: this.slapTrackers
285
+ };
286
+ customBroadcasterConfig = {
287
+ resolver: new sdk_1.LookupResolver(resolverConfig)
288
+ };
321
289
  }
322
- const broadcastPromises = [];
323
- // Make sure we gossip to the shipTrackers we know about.
324
- if (this.shipTrackers !== undefined && this.shipTrackers.length !== 0 && relevantTopics.includes('tm_ship')) {
325
- this.shipTrackers.forEach(tracker => {
326
- var _a;
327
- if (domainToTopicsMap.get(tracker) !== undefined) {
328
- (_a = domainToTopicsMap.get(tracker)) === null || _a === void 0 ? void 0 : _a.add('tm_ship');
290
+ const shipBroadcaster = new sdk_1.SHIPBroadcaster(relevantTopics, customBroadcasterConfig);
291
+ try {
292
+ await shipBroadcaster.broadcast(tx);
293
+ }
294
+ catch (error) {
295
+ this.logger.error('Error during broadcasting:', error);
296
+ }
297
+ // Handle shipTrackers for 'tm_ship' topic
298
+ if (this.shipTrackers && this.shipTrackers.length > 0 && relevantTopics.includes('tm_ship')) {
299
+ const taggedBEEFForShip = {
300
+ beef: taggedBEEF.beef,
301
+ topics: ['tm_ship']
302
+ };
303
+ const facilitator = this.overlayBroadcastFacilitator;
304
+ const sendPromises = this.shipTrackers.map(async (tracker) => {
305
+ try {
306
+ await facilitator.send(tracker, taggedBEEFForShip);
329
307
  }
330
- else {
331
- domainToTopicsMap.set(tracker, new Set(['tm_ship']));
308
+ catch (error) {
309
+ this.logger.error(`Error sending to shipTracker ${tracker}:`, error);
332
310
  }
333
311
  });
312
+ await Promise.all(sendPromises);
334
313
  }
335
- // Make sure we gossip to the slapTrackers we know about.
336
- if (this.slapTrackers !== undefined && this.slapTrackers.length !== 0 && relevantTopics.includes('tm_slap')) {
337
- this.slapTrackers.forEach(tracker => {
338
- var _a;
339
- if (domainToTopicsMap.get(tracker) !== undefined) {
340
- (_a = domainToTopicsMap.get(tracker)) === null || _a === void 0 ? void 0 : _a.add('tm_slap');
314
+ // Handle slapTrackers for 'tm_slap' topic
315
+ if (this.slapTrackers && this.slapTrackers.length > 0 && relevantTopics.includes('tm_slap')) {
316
+ const taggedBEEFForSlap = {
317
+ beef: taggedBEEF.beef,
318
+ topics: ['tm_slap']
319
+ };
320
+ const facilitator = new sdk_1.HTTPSOverlayBroadcastFacilitator();
321
+ const sendPromises = this.slapTrackers.map(async (tracker) => {
322
+ try {
323
+ await facilitator.send(tracker, taggedBEEFForSlap);
341
324
  }
342
- else {
343
- domainToTopicsMap.set(tracker, new Set(['tm_slap']));
325
+ catch (error) {
326
+ this.logger.error(`Error sending to slapTracker ${tracker}:`, error);
344
327
  }
345
328
  });
346
- }
347
- // Note: We are depending on window.fetch, this may not be ideal for the long term.
348
- for (const [domain, topics] of domainToTopicsMap.entries()) {
349
- if (domain !== this.hostingURL) {
350
- const promise = fetch(`${String(domain)}/submit`, {
351
- method: 'POST',
352
- headers: {
353
- 'Content-Type': 'application/octet-stream',
354
- 'X-Topics': JSON.stringify(Array.from(topics))
355
- },
356
- body: new Uint8Array(taggedBEEF.beef)
357
- });
358
- broadcastPromises.push(promise);
359
- }
360
- }
361
- try {
362
- await Promise.all(broadcastPromises);
363
- }
364
- catch (error) {
365
- console.error('Error during broadcasting:', error);
329
+ await Promise.all(sendPromises);
366
330
  }
367
331
  }
368
- this.endTime(`transactionPropgation_${txid.substring(0, 10)}`);
332
+ this.endTime(`transactionPropagation_${txid.substring(0, 10)}`);
369
333
  // Immediately return from the function without waiting for the promises to resolve.
370
334
  return steak;
371
335
  }
372
336
  /**
373
- * Submit a lookup question to the Overlay Services Engine, and receive bakc a Lookup Answer
337
+ * Submit a lookup question to the Overlay Services Engine, and receive back a Lookup Answer
374
338
  * @param LookupQuestion — The question to ask the Overlay Services Engine
375
339
  * @returns The answer to the question
376
340
  */
@@ -438,10 +402,8 @@ class Engine {
438
402
  // Step 3: Compare and Determine Actions
439
403
  const requiredSHIPAdvertisements = new Set(configuredTopics);
440
404
  const requiredSLAPAdvertisements = new Set(configuredServices);
441
- const existingTopics = new Set(currentSHIPAdvertisements.map(ad => ad.topicOrService));
442
- const existingServices = new Set(currentSLAPAdvertisements.map(ad => ad.topicOrService));
443
- const shipsToCreate = Array.from(requiredSHIPAdvertisements).filter(topicOrService => !existingTopics.has(topicOrService));
444
- const slapsToCreate = Array.from(requiredSLAPAdvertisements).filter(topicOrService => !existingServices.has(topicOrService));
405
+ const shipsToCreate = Array.from(requiredSHIPAdvertisements).filter(topicOrService => !currentSHIPAdvertisements.some(x => x.topicOrService === topicOrService && x.domain === this.hostingURL));
406
+ const slapsToCreate = Array.from(requiredSLAPAdvertisements).filter(topicOrService => !currentSLAPAdvertisements.some(x => x.topicOrService === topicOrService && x.domain === this.hostingURL));
445
407
  const shipsToRevoke = currentSHIPAdvertisements.filter(ad => !requiredSHIPAdvertisements.has(ad.topicOrService));
446
408
  const slapsToRevoke = currentSLAPAdvertisements.filter(ad => !requiredSLAPAdvertisements.has(ad.topicOrService));
447
409
  // Create needed SHIP/SLAP advertisements
@@ -462,7 +424,7 @@ class Engine {
462
424
  }
463
425
  }
464
426
  catch (error) {
465
- console.error('Failed to create SHIP advertisement:', error);
427
+ this.logger.error('Failed to create SHIP advertisement:', error);
466
428
  }
467
429
  // Revoke all advertisements to revoke
468
430
  try {
@@ -472,7 +434,7 @@ class Engine {
472
434
  }
473
435
  }
474
436
  catch (error) {
475
- console.error('Failed to revoke SHIP/SLAP advertisements:', error);
437
+ this.logger.error('Failed to revoke SHIP/SLAP advertisements:', error);
476
438
  }
477
439
  }
478
440
  /**
@@ -515,7 +477,7 @@ class Engine {
515
477
  }
516
478
  }
517
479
  catch (error) {
518
- console.error('Failed to parse advertisement output:', error);
480
+ this.logger.error('Failed to parse advertisement output:', error);
519
481
  }
520
482
  });
521
483
  syncEndpoints = Array.from(endpointSet);
@@ -700,7 +662,7 @@ class Engine {
700
662
  catch (e) {
701
663
  // Handle any errors that occurred
702
664
  // Note: Test this!
703
- console.error(`Error retrieving UTXO history: ${e} `);
665
+ this.logger.error(`Error retrieving UTXO history: ${e} `);
704
666
  // return []
705
667
  throw new Error(`Error retrieving UTXO history: ${e} `);
706
668
  }
@@ -829,18 +791,26 @@ class Engine {
829
791
  /**
830
792
  * Find a list of supported topic managers
831
793
  * @public
832
- * @returns {Promise<string[]>} - array of supported topic managers
794
+ * @returns {Promise<Record<string, { name: string; shortDescription: string; iconURL?: string; version?: string; informationURL?: string; }>>} - Supported topic managers and their metadata
833
795
  */
834
796
  async listTopicManagers() {
835
- return Object.keys(this.managers);
797
+ let result = {};
798
+ for (let t in this.managers) {
799
+ result[t] = await this.managers[t].getMetaData();
800
+ }
801
+ return result;
836
802
  }
837
803
  /**
838
804
  * Find a list of supported lookup services
839
805
  * @public
840
- * @returns {Promise<string[]>} - array of supported lookup services
806
+ * @returns {Promise<Record<string, { name: string; shortDescription: string; iconURL?: string; version?: string; informationURL?: string; }>>} - Supported lookup services and their metadata
841
807
  */
842
- async listLookupServiceProviders() {
843
- return Object.keys(this.lookupServices);
808
+ async listLookupServices() {
809
+ let result = {};
810
+ for (let t in this.lookupServices) {
811
+ result[t] = await this.lookupServices[t].getMetaData();
812
+ }
813
+ return result;
844
814
  }
845
815
  /**
846
816
  * Run a query to get the documentation for a particular topic manager
@@ -911,13 +881,4 @@ class Engine {
911
881
  }
912
882
  }
913
883
  exports.Engine = Engine;
914
- //////////
915
- // OTHER FILES
916
- //////////
917
- /*
918
- There is currently a bug with the test runner that prevents importing and using files that export variables other than type definitions within implementation files that are not directly imported themselves.
919
- Thus, all non-type exports have been moved to Engine.
920
- */
921
- // TODO: fix bug with imports that break tests. -----[GASP/OverlayGASPRemote.ts]-----
922
- // TODO: fix bug with imports that break tests. -----[GASP/OverlayGASPStorage.ts]-----
923
884
  //# sourceMappingURL=Engine.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Engine.js","sourceRoot":"","sources":["../../../src/Engine.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Engine.js","sourceRoot":"","sources":["../../../src/Engine.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=SHIPAdvertisement.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SHIPAdvertisement.js","sourceRoot":"","sources":["../../../src/SHIPAdvertisement.ts"],"names":[],"mappings":""}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=SLAPAdvertisement.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SLAPAdvertisement.js","sourceRoot":"","sources":["../../../src/SLAPAdvertisement.ts"],"names":[],"mappings":""}