@n1k1t/mock-server 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.
@@ -19831,7 +19831,7 @@ class CurtainComponent extends models_1.Component {
19831
19831
  }
19832
19832
  exports.CurtainComponent = CurtainComponent;
19833
19833
 
19834
- },{"../models":254}],230:[function(require,module,exports){
19834
+ },{"../models":257}],230:[function(require,module,exports){
19835
19835
  "use strict";
19836
19836
  var __importDefault = (this && this.__importDefault) || function (mod) {
19837
19837
  return (mod && mod.__esModule) ? mod : { "default": mod };
@@ -19849,7 +19849,7 @@ class EmptyComponent extends models_1.Component {
19849
19849
  }
19850
19850
  exports.EmptyComponent = EmptyComponent;
19851
19851
 
19852
- },{"../../models":254,"./template.hbs":231,"handlebars":60}],231:[function(require,module,exports){
19852
+ },{"../../models":257,"./template.hbs":231,"handlebars":60}],231:[function(require,module,exports){
19853
19853
  module.exports = `
19854
19854
  <div class="empty">
19855
19855
  <i class="fas fa-hourglass-start"></i>
@@ -19879,12 +19879,12 @@ class ExpectationComponent extends models_1.Component {
19879
19879
  }
19880
19880
  refresh(expectation) {
19881
19881
  this.clear().append(render(expectation));
19882
- const json = new json_formatter_1.default((0, pick_1.default)(expectation, ['id', 'type', 'schema']), 2, {
19882
+ const json = new json_formatter_1.default((0, pick_1.default)(expectation, ['id', 'type', 'transports', 'schema']), 2, {
19883
19883
  theme: 'custom',
19884
19884
  afterCopyHandler: () => context_1.default.shared.popups.push('Copied', { icon: 'fas fa-clone', level: 'info' }),
19885
19885
  });
19886
19886
  this.element.querySelector('pre')?.appendChild(json.render());
19887
- this.element.querySelector('button.activity')?.addEventListener('click', () => context_1.default.services.ws.exec('expectations:update', { id: expectation.id, set: { isEnabled: !expectation.isEnabled } }));
19887
+ this.element.querySelector('button.activity')?.addEventListener('click', () => context_1.default.services.io.exec('expectations:update', { id: expectation.id, set: { isEnabled: !expectation.isEnabled } }));
19888
19888
  return Object.assign(this, { expectation });
19889
19889
  }
19890
19890
  static build(expectation) {
@@ -19893,11 +19893,11 @@ class ExpectationComponent extends models_1.Component {
19893
19893
  }
19894
19894
  exports.ExpectationComponent = ExpectationComponent;
19895
19895
 
19896
- },{"../../../../../../json-formatter":1,"../../context":243,"../../models":254,"./template.hbs":233,"handlebars":60,"lodash/pick":212}],233:[function(require,module,exports){
19896
+ },{"../../../../../../json-formatter":1,"../../context":246,"../../models":257,"./template.hbs":233,"handlebars":60,"lodash/pick":212}],233:[function(require,module,exports){
19897
19897
  module.exports = `
19898
19898
  <div class="container expectation" id="{{id}}">
19899
19899
  <div class="meta">{{> expectationMeta this}}</div>
19900
- <pre></pre>
19900
+ <pre class="panel"></pre>
19901
19901
  </div>
19902
19902
  `
19903
19903
 
@@ -19918,37 +19918,44 @@ class HistoryComponent extends models_1.Component {
19918
19918
  constructor(history) {
19919
19919
  super();
19920
19920
  this.history = history;
19921
+ this.isExpanded = false;
19921
19922
  this.refresh(history);
19922
19923
  }
19923
19924
  refresh(history) {
19924
19925
  this.clear().append(render(history));
19925
- const pre = this.element.querySelector('pre');
19926
- this.element.addEventListener('click', (event) => {
19926
+ const pre = this.element.querySelector('div.history > pre');
19927
+ const formatted = {
19928
+ event: history.snapshot.event,
19929
+ ...(Object.keys(history.snapshot.flags).length && { flags: history.snapshot.flags }),
19930
+ ...(history.expectation && {
19931
+ expectation: {
19932
+ id: history.expectation.id,
19933
+ group: history.expectation.group,
19934
+ ...(history.expectation.schema.forward && { forward: history.expectation.schema.forward }),
19935
+ },
19936
+ }),
19937
+ ...(history.snapshot.cache?.isEnabled && { cache: history.snapshot.cache }),
19938
+ ...(history.snapshot.seed && { seed: history.snapshot.seed }),
19939
+ ...(history.snapshot.container && { container: history.snapshot.container }),
19940
+ incoming: history.snapshot.incoming,
19941
+ ...(history.status === 'completed' && { outgoing: history.snapshot.outgoing }),
19942
+ ...(history.snapshot.forwarded && { forwarded: history.snapshot.forwarded }),
19943
+ ...(history.snapshot.messages?.length && { messages: history.snapshot.messages }),
19944
+ };
19945
+ if (this.isExpanded) {
19946
+ pre.classList.remove('hidden');
19947
+ }
19948
+ const json = new json_formatter_1.default(formatted, 2, {
19949
+ theme: 'custom',
19950
+ afterCopyHandler: () => context_1.default.shared.popups.push('Copied!', { icon: 'fas fa-clone', level: 'info' }),
19951
+ });
19952
+ pre.appendChild(json.render());
19953
+ this.element.querySelector('div.meta').addEventListener('click', (event) => {
19927
19954
  if (event.composedPath().some((element) => element?.classList?.contains('meta')) === false) {
19928
19955
  return null;
19929
19956
  }
19930
- if (!this.element.querySelector('pre div.json-formatter-row')) {
19931
- const formatted = {
19932
- incoming: history.snapshot.incoming,
19933
- ...(history.snapshot.cache.isEnabled && { cache: history.snapshot.cache }),
19934
- ...(history.snapshot.seed && { seed: history.snapshot.seed }),
19935
- ...(history.snapshot.container && { container: history.snapshot.container }),
19936
- ...(history.snapshot.outgoing && { outgoing: history.snapshot.outgoing }),
19937
- ...(history.snapshot.forwarded && { forwarded: history.snapshot.forwarded }),
19938
- ...(history.expectation && {
19939
- expectation: {
19940
- id: history.expectation.id,
19941
- ...(history.expectation.schema.forward && { forward: history.expectation.schema.forward }),
19942
- },
19943
- }),
19944
- };
19945
- const json = new json_formatter_1.default(formatted, 2, {
19946
- theme: 'custom',
19947
- afterCopyHandler: () => context_1.default.shared.popups.push('Copied!', { icon: 'fas fa-clone', level: 'info' }),
19948
- });
19949
- pre.appendChild(json.render());
19950
- }
19951
19957
  pre.classList.toggle('hidden');
19958
+ this.isExpanded = !this.isExpanded;
19952
19959
  });
19953
19960
  }
19954
19961
  static build(history) {
@@ -19957,7 +19964,7 @@ class HistoryComponent extends models_1.Component {
19957
19964
  }
19958
19965
  exports.HistoryComponent = HistoryComponent;
19959
19966
 
19960
- },{"../../../../../../json-formatter":1,"../../context":243,"../../models":254,"./template.hbs":235,"handlebars":60}],235:[function(require,module,exports){
19967
+ },{"../../../../../../json-formatter":1,"../../context":246,"../../models":257,"./template.hbs":235,"handlebars":60}],235:[function(require,module,exports){
19961
19968
  module.exports = `
19962
19969
  <div class="container history" id="{{id}}">
19963
19970
  <div class="meta">
@@ -19975,29 +19982,53 @@ module.exports = `
19975
19982
  <span class="pending"><i class="fas fa-hourglass-start"></i></span>
19976
19983
  {{/compare}}
19977
19984
 
19978
- {{#if snapshot.outgoing}}
19985
+ {{#compare status 'eq' 'completed'}}
19979
19986
  <span class="status
19980
- {{#compare snapshot.outgoing.status 'lt' 400}}green{{/compare}}
19981
- {{#compare snapshot.outgoing.status 'gte' 400}}red{{/compare}}
19987
+ {{#compare snapshot.transport 'eq' 'http'}}
19988
+ {{#compare snapshot.outgoing.status 'lt' 400}}green{{/compare}}
19989
+ {{#compare snapshot.outgoing.status 'gte' 400}}red{{/compare}}
19990
+ {{/compare}}
19982
19991
  ">{{snapshot.outgoing.status}}</span>
19983
- {{/if}}
19992
+ {{/compare}}
19984
19993
 
19985
- <span class="method">{{{snapshot.incoming.method}}}</span>
19986
- <span class="path">{{{snapshot.incoming.path}}}</span>
19994
+ <span class="transport">{{snapshot.transport}}</span>
19995
+ <span class="method">{{snapshot.incoming.method}}</span>
19996
+ <span class="path">{{snapshot.incoming.path}}</span>
19987
19997
  </div>
19988
19998
 
19989
19999
  <span class="arrow"><i class="fas fa-chevron-right"></i></span>
19990
20000
 
19991
20001
  {{#if expectation}}
19992
20002
  {{#if snapshot.seed}}<span class="seed">{{snapshot.seed}}</span>{{/if}}
19993
- {{#if snapshot.outgoing.isCached}}<span class="cache">Cached</span>{{/if}}
20003
+ {{#if snapshot.forwarded.isCached}}<span class="cache">Cached</span>{{/if}}
19994
20004
 
19995
20005
  <div class="segment">{{>expectationMeta expectation format='short'}}</div>
19996
20006
  {{else}}
19997
20007
  <span class="handled-with red">Nowhere</span>
19998
20008
  {{/if}}
19999
20009
  </div>
20000
- <pre class="hidden"></pre>
20010
+
20011
+ {{!-- {{#if snapshot.messages}}
20012
+ <p class="messages-title">
20013
+ <span class="count">Total messages <b>{{snapshot.messages.length}}</b></span>
20014
+ </p>
20015
+
20016
+ <div class="messages">
20017
+ {{#each snapshot.messages}}
20018
+ <div id="{{id}}" class="message {{location}}">
20019
+ <p class="header">
20020
+ {{#compare location 'eq' 'incoming'}}<i class="fas fa-angle-right"></i>{{/compare}}
20021
+ {{#compare location 'eq' 'outgoing'}}<i class="fas fa-angle-left"></i>{{/compare}}
20022
+ <span class="time">{{#toLocaleTime timestamp}}{{/toLocaleTime}}</span>
20023
+ </p>
20024
+
20025
+ <pre class="panel hidden"></pre>
20026
+ </div>
20027
+ {{/each}}
20028
+ </div>
20029
+ {{/if}} --}}
20030
+
20031
+ <pre class="panel hidden"></pre>
20001
20032
  </div>
20002
20033
  `
20003
20034
 
@@ -20019,13 +20050,14 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
20019
20050
  };
20020
20051
  Object.defineProperty(exports, "__esModule", { value: true });
20021
20052
  __exportStar(require("./expectation.component"), exports);
20053
+ __exportStar(require("./settings.component"), exports);
20022
20054
  __exportStar(require("./history.component"), exports);
20023
20055
  __exportStar(require("./curtain.component"), exports);
20024
20056
  __exportStar(require("./loader.component"), exports);
20025
20057
  __exportStar(require("./popups.component"), exports);
20026
20058
  __exportStar(require("./empty.component"), exports);
20027
20059
 
20028
- },{"./curtain.component":229,"./empty.component":230,"./expectation.component":232,"./history.component":234,"./loader.component":237,"./popups.component":238}],237:[function(require,module,exports){
20060
+ },{"./curtain.component":229,"./empty.component":230,"./expectation.component":232,"./history.component":234,"./loader.component":237,"./popups.component":238,"./settings.component":240}],237:[function(require,module,exports){
20029
20061
  "use strict";
20030
20062
  Object.defineProperty(exports, "__esModule", { value: true });
20031
20063
  exports.LoaderComponent = void 0;
@@ -20068,7 +20100,7 @@ class PopupsComponent extends models_1.Component {
20068
20100
  }
20069
20101
  exports.PopupsComponent = PopupsComponent;
20070
20102
 
20071
- },{"../../models":254,"./template.hbs":239,"handlebars":60}],239:[function(require,module,exports){
20103
+ },{"../../models":257,"./template.hbs":239,"handlebars":60}],239:[function(require,module,exports){
20072
20104
  module.exports = `
20073
20105
  <div class="popup-message {{level}}">
20074
20106
  <i class="{{icon}}"></i>
@@ -20082,6 +20114,88 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
20082
20114
  return (mod && mod.__esModule) ? mod : { "default": mod };
20083
20115
  };
20084
20116
  Object.defineProperty(exports, "__esModule", { value: true });
20117
+ exports.SettingsComponent = void 0;
20118
+ const handlebars_1 = __importDefault(require("handlebars"));
20119
+ const models_1 = require("../../models");
20120
+ const common_1 = require("../../../../utils/common");
20121
+ const context_1 = __importDefault(require("../../context"));
20122
+ const template = require('./template.hbs');
20123
+ const render = handlebars_1.default.compile(template);
20124
+ class SettingsComponent extends models_1.Component {
20125
+ constructor() {
20126
+ super();
20127
+ this.filters = this.compileEmptyFilters();
20128
+ }
20129
+ resetFilters() {
20130
+ this.filters = this.compileEmptyFilters();
20131
+ return this;
20132
+ }
20133
+ refresh() {
20134
+ this.clear().append(render({
20135
+ groups: {
20136
+ all: {
20137
+ isEnabled: this.filters.groups ? this.filters.groups.size === context_1.default.shared.groups.size : true,
20138
+ },
20139
+ segmented: [...context_1.default.shared.groups].map((group) => ({
20140
+ name: group,
20141
+ isEnabled: this.filters.groups?.has(group) ?? true,
20142
+ })),
20143
+ },
20144
+ }));
20145
+ const groupsFilterButtons = {
20146
+ all: this.element.querySelector('div#groups-filter button#all'),
20147
+ segmented: this.element.querySelectorAll('div#groups-filter button:not(#all)'),
20148
+ };
20149
+ groupsFilterButtons.all.addEventListener('click', (event) => {
20150
+ const isChecked = event.target.classList.toggle('checked');
20151
+ this.filters.groups = isChecked ? new Set(context_1.default.shared.groups.values()) : new Set();
20152
+ groupsFilterButtons.segmented.forEach((element) => isChecked ? element.classList.add('checked') : element.classList.remove('checked'));
20153
+ });
20154
+ groupsFilterButtons.segmented.forEach((element) => element.addEventListener('click', () => {
20155
+ const isChecked = element.classList.toggle('checked');
20156
+ this.filters.groups = this.filters.groups ?? new Set(context_1.default.shared.groups.values());
20157
+ isChecked ? this.filters.groups.add(element.id) : this.filters.groups.delete(element.id);
20158
+ this.filters.groups.size === context_1.default.shared.groups.size
20159
+ ? groupsFilterButtons.all.classList.add('checked')
20160
+ : groupsFilterButtons.all.classList.remove('checked');
20161
+ }));
20162
+ return this;
20163
+ }
20164
+ compileEmptyFilters() {
20165
+ return {
20166
+ groups: (0, common_1.cast)(null),
20167
+ };
20168
+ }
20169
+ static build() {
20170
+ return new SettingsComponent();
20171
+ }
20172
+ }
20173
+ exports.SettingsComponent = SettingsComponent;
20174
+
20175
+ },{"../../../../utils/common":259,"../../context":246,"../../models":257,"./template.hbs":241,"handlebars":60}],241:[function(require,module,exports){
20176
+ module.exports = `
20177
+ <div class="settings">
20178
+ <div id="groups-filter" class="container">
20179
+ <p><i class="fas fa-filter"></i> Groups filter <span>(hides/shows expectations and history in GUI)</span></p>
20180
+ <div class="panel">
20181
+ <div class="buttons">
20182
+ <button id="all" class="{{#if groups.all.isEnabled}}checked{{/if}}">ALL</button>
20183
+
20184
+ {{#each groups.segmented}}
20185
+ <button id="{{name}}" class="{{#if isEnabled}}checked{{/if}}">{{name}}</button>
20186
+ {{/each}}
20187
+ </div>
20188
+ </div>
20189
+ </div>
20190
+ </div>
20191
+ `
20192
+
20193
+ },{}],242:[function(require,module,exports){
20194
+ "use strict";
20195
+ var __importDefault = (this && this.__importDefault) || function (mod) {
20196
+ return (mod && mod.__esModule) ? mod : { "default": mod };
20197
+ };
20198
+ Object.defineProperty(exports, "__esModule", { value: true });
20085
20199
  const components_1 = require("../components");
20086
20200
  const models_1 = require("../models");
20087
20201
  const context_1 = __importDefault(require("../context"));
@@ -20089,25 +20203,41 @@ const empty = components_1.EmptyComponent.build();
20089
20203
  const storage = new Map();
20090
20204
  const container = models_1.Container
20091
20205
  .build(document.querySelector('section#expectations'))
20092
- .on('intialize', async () => {
20206
+ .on('select', () => {
20207
+ if (context_1.default.shared.settings.filters.groups) {
20208
+ empty.hide();
20209
+ const components = [...storage.values()].map((component) => context_1.default.shared.settings.filters.groups.has(component.expectation.group)
20210
+ ? component.show()
20211
+ : component.hide());
20212
+ if (components.every((component) => component.isHidden)) {
20213
+ empty.show();
20214
+ }
20215
+ }
20216
+ })
20217
+ .on('initialize', async () => {
20093
20218
  container.clear().append(empty);
20219
+ context_1.default.shared.groups.clear();
20094
20220
  storage.clear();
20095
- const { data } = await context_1.default.services.ws.exec('expectations:get');
20221
+ const { data } = await context_1.default.services.io.exec('expectations:get-list');
20096
20222
  data.forEach((expectation) => {
20097
20223
  const component = components_1.ExpectationComponent.build(expectation);
20098
20224
  storage.set(expectation.id, component);
20225
+ context_1.default.shared.groups.add(expectation.group);
20099
20226
  container.append(component);
20100
20227
  });
20101
20228
  storage.size ? empty.hide() : empty.show();
20102
20229
  })
20103
- .once('intialize', () => {
20104
- context_1.default.services.ws.subscribe('expectation:added', (expectation) => {
20230
+ .once('initialize', () => {
20231
+ context_1.default.services.io.subscribe('expectation:added', (expectation) => {
20105
20232
  const component = components_1.ExpectationComponent.build(expectation);
20106
20233
  storage.set(expectation.id, component);
20234
+ context_1.default.shared.groups.add(expectation.group);
20107
20235
  container.append(component);
20108
- empty.hide();
20236
+ !(context_1.default.shared.settings.filters.groups?.has(expectation.group) ?? true)
20237
+ ? component.hide()
20238
+ : empty.hide();
20109
20239
  });
20110
- context_1.default.services.ws.subscribe('expectation:updated', (expectation) => {
20240
+ context_1.default.services.io.subscribe('expectation:updated', (expectation) => {
20111
20241
  const component = storage.get(expectation.id) ?? components_1.ExpectationComponent.build(expectation);
20112
20242
  if (storage.has(expectation.id)) {
20113
20243
  component.refresh(expectation);
@@ -20116,12 +20246,15 @@ const container = models_1.Container
20116
20246
  container.append(component);
20117
20247
  }
20118
20248
  storage.set(expectation.id, component);
20119
- empty.hide();
20249
+ context_1.default.shared.groups.add(expectation.group);
20250
+ !(context_1.default.shared.settings.filters.groups?.has(expectation.group) ?? true)
20251
+ ? component.hide()
20252
+ : empty.hide();
20120
20253
  });
20121
20254
  });
20122
20255
  exports.default = container;
20123
20256
 
20124
- },{"../components":236,"../context":243,"../models":254}],241:[function(require,module,exports){
20257
+ },{"../components":236,"../context":246,"../models":257}],243:[function(require,module,exports){
20125
20258
  "use strict";
20126
20259
  var __importDefault = (this && this.__importDefault) || function (mod) {
20127
20260
  return (mod && mod.__esModule) ? mod : { "default": mod };
@@ -20135,11 +20268,22 @@ const storage = new Map();
20135
20268
  const ids = [];
20136
20269
  const container = models_1.Container
20137
20270
  .build(document.querySelector('section#history'))
20138
- .on('intialize', async () => {
20271
+ .on('select', () => {
20272
+ if (context_1.default.shared.settings.filters.groups) {
20273
+ empty.hide();
20274
+ const components = [...storage.values()].map((component) => context_1.default.shared.settings.filters.groups.has(component.history.group)
20275
+ ? component.show()
20276
+ : component.hide());
20277
+ if (components.every((component) => component.isHidden)) {
20278
+ empty.show();
20279
+ }
20280
+ }
20281
+ })
20282
+ .on('initialize', async () => {
20139
20283
  container.clear().append(empty);
20140
20284
  storage.clear();
20141
20285
  ids.splice(0, ids.length);
20142
- const { data } = await context_1.default.services.ws.exec('history:get');
20286
+ const { data } = await context_1.default.services.io.exec('history:get-list');
20143
20287
  data.forEach((history) => {
20144
20288
  const component = components_1.HistoryComponent.build(history);
20145
20289
  storage.set(history.id, component);
@@ -20148,71 +20292,92 @@ const container = models_1.Container
20148
20292
  });
20149
20293
  storage.size ? empty.hide() : empty.show();
20150
20294
  })
20151
- .once('intialize', () => {
20152
- context_1.default.services.ws.subscribe('history:added', (history) => {
20295
+ .once('initialize', () => {
20296
+ context_1.default.services.io.subscribe('history:added', (history) => {
20153
20297
  const component = components_1.HistoryComponent.build(history);
20154
20298
  storage.set(history.id, component);
20155
20299
  ids.push(history.id);
20156
- if (ids.length > context_1.default.config.history.limit) {
20300
+ if (ids.length > context_1.default.config.history.limit * context_1.default.shared.groups.size) {
20157
20301
  const id = ids.shift();
20158
20302
  storage.get(id)?.remove();
20159
20303
  storage.delete(id);
20160
20304
  }
20161
20305
  container.prepend(component);
20162
- empty.hide();
20306
+ !(context_1.default.shared.settings.filters.groups?.has(history.group) ?? true)
20307
+ ? component.hide()
20308
+ : empty.hide();
20163
20309
  });
20164
- context_1.default.services.ws.subscribe('history:updated', (history) => {
20310
+ context_1.default.services.io.subscribe('history:updated', (history) => {
20165
20311
  const component = storage.get(history.id) ?? components_1.HistoryComponent.build(history);
20166
- storage.has(history.id)
20167
- ? component.refresh(history)
20168
- : ids.push(history.id);
20169
- container.element.childNodes.values();
20312
+ storage.has(history.id) ? component.refresh(history) : ids.push(history.id);
20313
+ storage.set(history.id, component);
20170
20314
  if (!container.element.querySelector(`div.history[id="${history.id}"]`)) {
20171
- container.append(component);
20315
+ container.prepend(component);
20172
20316
  }
20173
- storage.set(history.id, component);
20174
- empty.hide();
20317
+ !(context_1.default.shared.settings.filters.groups?.has(history.group) ?? true)
20318
+ ? component.hide()
20319
+ : empty.hide();
20175
20320
  });
20176
20321
  });
20177
20322
  exports.default = container;
20178
20323
 
20179
- },{"../components":236,"../context":243,"../models":254}],242:[function(require,module,exports){
20324
+ },{"../components":236,"../context":246,"../models":257}],244:[function(require,module,exports){
20180
20325
  "use strict";
20181
20326
  var __importDefault = (this && this.__importDefault) || function (mod) {
20182
20327
  return (mod && mod.__esModule) ? mod : { "default": mod };
20183
20328
  };
20184
20329
  Object.defineProperty(exports, "__esModule", { value: true });
20185
- exports.history = exports.expectations = void 0;
20330
+ exports.history = exports.settings = exports.expectations = void 0;
20186
20331
  var expectations_1 = require("./expectations");
20187
20332
  Object.defineProperty(exports, "expectations", { enumerable: true, get: function () { return __importDefault(expectations_1).default; } });
20333
+ var settings_1 = require("./settings");
20334
+ Object.defineProperty(exports, "settings", { enumerable: true, get: function () { return __importDefault(settings_1).default; } });
20188
20335
  var history_1 = require("./history");
20189
20336
  Object.defineProperty(exports, "history", { enumerable: true, get: function () { return __importDefault(history_1).default; } });
20190
20337
 
20191
- },{"./expectations":240,"./history":241}],243:[function(require,module,exports){
20338
+ },{"./expectations":242,"./history":243,"./settings":245}],245:[function(require,module,exports){
20339
+ "use strict";
20340
+ var __importDefault = (this && this.__importDefault) || function (mod) {
20341
+ return (mod && mod.__esModule) ? mod : { "default": mod };
20342
+ };
20343
+ Object.defineProperty(exports, "__esModule", { value: true });
20344
+ const models_1 = require("../models");
20345
+ const context_1 = __importDefault(require("../context"));
20346
+ const container = models_1.Container
20347
+ .build(document.querySelector('section#settings'))
20348
+ .on('select', async () => {
20349
+ context_1.default.shared.settings.refresh();
20350
+ })
20351
+ .on('initialize', () => {
20352
+ context_1.default.shared.settings.resetFilters();
20353
+ context_1.default.shared.settings.refresh();
20354
+ })
20355
+ .once('initialize', () => {
20356
+ container.append(context_1.default.shared.settings);
20357
+ });
20358
+ exports.default = container;
20359
+
20360
+ },{"../context":246,"../models":257}],246:[function(require,module,exports){
20192
20361
  "use strict";
20193
20362
  Object.defineProperty(exports, "__esModule", { value: true });
20194
20363
  const socket_io_client_1 = require("socket.io-client");
20195
20364
  const models_1 = require("./models");
20196
20365
  const common_1 = require("../../utils/common");
20197
- const ws = (0, socket_io_client_1.io)(location.origin);
20366
+ const io = (0, socket_io_client_1.io)(location.origin);
20198
20367
  class Context {
20199
20368
  constructor() {
20200
20369
  this.config = (0, common_1.cast)({
20201
- gui: {
20202
- title: 'Mock server',
20203
- route: 'about:blank',
20204
- },
20205
20370
  history: {
20206
20371
  limit: 100,
20207
20372
  },
20208
20373
  });
20209
20374
  this.instances = {
20210
- ws,
20375
+ io,
20211
20376
  };
20212
20377
  this.services = {
20213
- ws: {
20214
- exec: (path, body) => new Promise((resolve) => ws.emit(path, body, resolve)),
20215
- subscribe: (channel, handler) => ws.on(channel, handler)
20378
+ io: {
20379
+ exec: (path, body) => new Promise((resolve) => io.emit(path, body, resolve)),
20380
+ subscribe: (channel, handler) => io.on(channel, handler)
20216
20381
  },
20217
20382
  };
20218
20383
  this.storage = models_1.DynamicStorage.build('void', document.body);
@@ -20230,7 +20395,7 @@ class Context {
20230
20395
  }
20231
20396
  exports.default = new Context();
20232
20397
 
20233
- },{"../../utils/common":256,"./models":254,"socket.io-client":221}],244:[function(require,module,exports){
20398
+ },{"../../utils/common":259,"./models":257,"socket.io-client":221}],247:[function(require,module,exports){
20234
20399
  "use strict";
20235
20400
  Object.defineProperty(exports, "__esModule", { value: true });
20236
20401
  exports.toLocaleTime = exports.compare = void 0;
@@ -20252,7 +20417,7 @@ exports.compare = (0, utils_1.buildHandlebarsHelper)((context) => (arg1, operato
20252
20417
  });
20253
20418
  exports.toLocaleTime = (0, utils_1.buildHandlebarsHelper)(() => (timestamp) => new Date(timestamp).toLocaleTimeString());
20254
20419
 
20255
- },{"./utils":248}],245:[function(require,module,exports){
20420
+ },{"./utils":251}],248:[function(require,module,exports){
20256
20421
  "use strict";
20257
20422
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
20258
20423
  if (k2 === undefined) k2 = k;
@@ -20270,13 +20435,23 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
20270
20435
  }) : function(o, v) {
20271
20436
  o["default"] = v;
20272
20437
  });
20273
- var __importStar = (this && this.__importStar) || function (mod) {
20274
- if (mod && mod.__esModule) return mod;
20275
- var result = {};
20276
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
20277
- __setModuleDefault(result, mod);
20278
- return result;
20279
- };
20438
+ var __importStar = (this && this.__importStar) || (function () {
20439
+ var ownKeys = function(o) {
20440
+ ownKeys = Object.getOwnPropertyNames || function (o) {
20441
+ var ar = [];
20442
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
20443
+ return ar;
20444
+ };
20445
+ return ownKeys(o);
20446
+ };
20447
+ return function (mod) {
20448
+ if (mod && mod.__esModule) return mod;
20449
+ var result = {};
20450
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
20451
+ __setModuleDefault(result, mod);
20452
+ return result;
20453
+ };
20454
+ })();
20280
20455
  var __importDefault = (this && this.__importDefault) || function (mod) {
20281
20456
  return (mod && mod.__esModule) ? mod : { "default": mod };
20282
20457
  };
@@ -20291,7 +20466,7 @@ exports.default = {
20291
20466
  },
20292
20467
  };
20293
20468
 
20294
- },{"./helpers":244,"./partials":247,"handlebars":60}],246:[function(require,module,exports){
20469
+ },{"./helpers":247,"./partials":250,"handlebars":60}],249:[function(require,module,exports){
20295
20470
  module.exports = `
20296
20471
  {{#compare format 'neq' 'short'}}
20297
20472
  <button class="activity">
@@ -20307,10 +20482,11 @@ module.exports = `
20307
20482
  </span>
20308
20483
  {{/compare}}
20309
20484
 
20310
- <span class="name">{{name}}</span>
20485
+ <span class="name"><b>{{group}}</b> {{name}}</span>
20311
20486
 
20312
20487
  {{#compare format 'neq' 'short'}}
20313
20488
  {{#compare meta.tags.length 'gt' 0}}<span class="arrow"><i class="fas fa-chevron-right"></i></span>{{/compare}}
20489
+ {{#each transports}}<span class="transport">{{this}}</span>{{/each}}
20314
20490
 
20315
20491
  {{#each meta.tags}}
20316
20492
  {{#compare @index 'lte' 5}}
@@ -20331,13 +20507,13 @@ module.exports = `
20331
20507
  {{#if schema.forward.url}}<span class="forward">{{schema.forward.url}}</span>{{/if}}
20332
20508
  `
20333
20509
 
20334
- },{}],247:[function(require,module,exports){
20510
+ },{}],250:[function(require,module,exports){
20335
20511
  "use strict";
20336
20512
  Object.defineProperty(exports, "__esModule", { value: true });
20337
20513
  exports.expectationMeta = void 0;
20338
20514
  exports.expectationMeta = require('./expectation-meta.hbs');
20339
20515
 
20340
- },{"./expectation-meta.hbs":246}],248:[function(require,module,exports){
20516
+ },{"./expectation-meta.hbs":249}],251:[function(require,module,exports){
20341
20517
  "use strict";
20342
20518
  Object.defineProperty(exports, "__esModule", { value: true });
20343
20519
  exports.buildHandlebarsHelper = void 0;
@@ -20348,7 +20524,7 @@ const buildHandlebarsHelper = (handler) => {
20348
20524
  };
20349
20525
  exports.buildHandlebarsHelper = buildHandlebarsHelper;
20350
20526
 
20351
- },{}],249:[function(require,module,exports){
20527
+ },{}],252:[function(require,module,exports){
20352
20528
  "use strict";
20353
20529
  Object.defineProperty(exports, "__esModule", { value: true });
20354
20530
  exports.Button = void 0;
@@ -20381,7 +20557,7 @@ class Button {
20381
20557
  }
20382
20558
  exports.Button = Button;
20383
20559
 
20384
- },{}],250:[function(require,module,exports){
20560
+ },{}],253:[function(require,module,exports){
20385
20561
  "use strict";
20386
20562
  Object.defineProperty(exports, "__esModule", { value: true });
20387
20563
  exports.Component = void 0;
@@ -20437,7 +20613,7 @@ class Component {
20437
20613
  }
20438
20614
  exports.Component = Component;
20439
20615
 
20440
- },{}],251:[function(require,module,exports){
20616
+ },{}],254:[function(require,module,exports){
20441
20617
  "use strict";
20442
20618
  var __importDefault = (this && this.__importDefault) || function (mod) {
20443
20619
  return (mod && mod.__esModule) ? mod : { "default": mod };
@@ -20456,7 +20632,13 @@ class Container extends component_1.Component {
20456
20632
  }
20457
20633
  initialize() {
20458
20634
  this.storage.sync();
20459
- return this.emit('intialize', this);
20635
+ return this.emit('initialize', this);
20636
+ }
20637
+ refresh() {
20638
+ return this.emit('refresh', this);
20639
+ }
20640
+ select() {
20641
+ return this.emit('select', this);
20460
20642
  }
20461
20643
  on(event, handler) {
20462
20644
  this.events.on(event, handler);
@@ -20476,7 +20658,7 @@ class Container extends component_1.Component {
20476
20658
  }
20477
20659
  exports.Container = Container;
20478
20660
 
20479
- },{"./component":250,"./dynamic-storage":252,"events":27}],252:[function(require,module,exports){
20661
+ },{"./component":253,"./dynamic-storage":255,"events":27}],255:[function(require,module,exports){
20480
20662
  "use strict";
20481
20663
  var __importDefault = (this && this.__importDefault) || function (mod) {
20482
20664
  return (mod && mod.__esModule) ? mod : { "default": mod };
@@ -20511,7 +20693,7 @@ class DynamicStorage {
20511
20693
  }
20512
20694
  exports.DynamicStorage = DynamicStorage;
20513
20695
 
20514
- },{"../utils":255,"./form":253,"lodash/set":213}],253:[function(require,module,exports){
20696
+ },{"../utils":258,"./form":256,"lodash/set":213}],256:[function(require,module,exports){
20515
20697
  "use strict";
20516
20698
  var __importDefault = (this && this.__importDefault) || function (mod) {
20517
20699
  return (mod && mod.__esModule) ? mod : { "default": mod };
@@ -20567,7 +20749,7 @@ class Form extends component_1.Component {
20567
20749
  }
20568
20750
  exports.Form = Form;
20569
20751
 
20570
- },{"../utils":255,"./component":250,"lodash/set":213}],254:[function(require,module,exports){
20752
+ },{"../utils":258,"./component":253,"lodash/set":213}],257:[function(require,module,exports){
20571
20753
  "use strict";
20572
20754
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
20573
20755
  if (k2 === undefined) k2 = k;
@@ -20590,7 +20772,7 @@ __exportStar(require("./container"), exports);
20590
20772
  __exportStar(require("./button"), exports);
20591
20773
  __exportStar(require("./form"), exports);
20592
20774
 
20593
- },{"./button":249,"./component":250,"./container":251,"./dynamic-storage":252,"./form":253}],255:[function(require,module,exports){
20775
+ },{"./button":252,"./component":253,"./container":254,"./dynamic-storage":255,"./form":256}],258:[function(require,module,exports){
20594
20776
  "use strict";
20595
20777
  var __importDefault = (this && this.__importDefault) || function (mod) {
20596
20778
  return (mod && mod.__esModule) ? mod : { "default": mod };
@@ -20609,10 +20791,10 @@ exports.convertObjectToKeyValueCouples = convertObjectToKeyValueCouples;
20609
20791
  const buildCounter = (initial = 0, step = 1) => (value = step) => (initial += value);
20610
20792
  exports.buildCounter = buildCounter;
20611
20793
 
20612
- },{"lodash/isObject":201}],256:[function(require,module,exports){
20794
+ },{"lodash/isObject":201}],259:[function(require,module,exports){
20613
20795
  "use strict";
20614
20796
  Object.defineProperty(exports, "__esModule", { value: true });
20615
- exports.flattenArrayed = exports.cast = exports.wait = void 0;
20797
+ exports.buildCounter = exports.flattenArrayed = exports.cast = exports.wait = void 0;
20616
20798
  const wait = (ms) => new Promise((resolve) => setTimeout(resolve, ms));
20617
20799
  exports.wait = wait;
20618
20800
  const cast = (payload) => payload;
@@ -20627,15 +20809,27 @@ const flattenArrayed = (payload) => {
20627
20809
  return [[payload]];
20628
20810
  };
20629
20811
  exports.flattenArrayed = flattenArrayed;
20812
+ /**
20813
+ * @example
20814
+ * ```ts
20815
+ * const counter = buildCounter(5);
20816
+ *
20817
+ * counter() // 6
20818
+ * counter() // 7
20819
+ * counter(2) // 9
20820
+ * ```
20821
+ */
20822
+ const buildCounter = (initial = 0, step = 1) => (value = step) => (initial += value);
20823
+ exports.buildCounter = buildCounter;
20630
20824
 
20631
- },{}],257:[function(require,module,exports){
20825
+ },{}],260:[function(require,module,exports){
20632
20826
  "use strict";
20633
20827
 
20634
20828
  function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
20635
20829
  var _unset2 = _interopRequireDefault(require("lodash/unset"));
20636
20830
  var _omit2 = _interopRequireDefault(require("lodash/omit"));
20637
20831
  var _set2 = _interopRequireDefault(require("lodash/set"));
20638
- var _components = require("./components");
20832
+ var components = _interopRequireWildcard(require("./components"));
20639
20833
  var containers = _interopRequireWildcard(require("./containers"));
20640
20834
  var _handlebars = _interopRequireDefault(require("./handlebars"));
20641
20835
  var _context2 = _interopRequireDefault(require("./context"));
@@ -20646,13 +20840,17 @@ function _regeneratorRuntime() { "use strict"; /*! regenerator-runtime -- Copyri
20646
20840
  function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
20647
20841
  function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
20648
20842
  _handlebars["default"].init();
20649
- var loader = _components.LoaderComponent.build().show();
20843
+ var loader = components.LoaderComponent.build().show();
20650
20844
  var switchButtonIdToContainerElementMap = {
20651
20845
  'switch-to-expectations-container': containers.expectations,
20846
+ 'switch-to-settings-container': containers.settings.hide(),
20652
20847
  'switch-to-history-container': containers.history.hide()
20653
20848
  };
20654
20849
  _context2["default"].switchStorage(containers.expectations.storage).share({
20655
- popups: _components.PopupsComponent.build()
20850
+ containers: containers,
20851
+ groups: new Set(),
20852
+ popups: components.PopupsComponent.build(),
20853
+ settings: components.SettingsComponent.build()
20656
20854
  });
20657
20855
  document.body.append(_context2["default"].shared.popups.element);
20658
20856
  document.body.append(loader.element);
@@ -20671,9 +20869,9 @@ document.querySelector('div#container-select').addEventListener('click', functio
20671
20869
  });
20672
20870
  var container = switchButtonIdToContainerElementMap[event.target.id];
20673
20871
  _context2["default"].switchStorage(container.storage);
20674
- container.show();
20872
+ container.show().select();
20675
20873
  });
20676
- _context2["default"].instances.ws.on('connect', /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {
20874
+ _context2["default"].instances.io.on('connect', /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {
20677
20875
  var _yield$context$servic, data;
20678
20876
  return _regeneratorRuntime().wrap(function _callee$(_context) {
20679
20877
  while (1) {
@@ -20681,10 +20879,10 @@ _context2["default"].instances.ws.on('connect', /*#__PURE__*/_asyncToGenerator(
20681
20879
  case 0:
20682
20880
  console.log('WebSocket has connected');
20683
20881
  _context.next = 3;
20684
- return _context2["default"].services.ws.exec('ping');
20882
+ return _context2["default"].services.io.exec('ping');
20685
20883
  case 3:
20686
20884
  _context.next = 5;
20687
- return _context2["default"].services.ws.exec('config:get');
20885
+ return _context2["default"].services.io.exec('config:get');
20688
20886
  case 5:
20689
20887
  _yield$context$servic = _context.sent;
20690
20888
  data = _yield$context$servic.data;
@@ -20693,8 +20891,7 @@ _context2["default"].instances.ws.on('connect', /*#__PURE__*/_asyncToGenerator(
20693
20891
  return container.initialize();
20694
20892
  });
20695
20893
  loader.hide();
20696
- document.title = _context2["default"].config.gui.title;
20697
- case 11:
20894
+ case 10:
20698
20895
  case "end":
20699
20896
  return _context.stop();
20700
20897
  }
@@ -20702,4 +20899,4 @@ _context2["default"].instances.ws.on('connect', /*#__PURE__*/_asyncToGenerator(
20702
20899
  }, _callee);
20703
20900
  })));
20704
20901
 
20705
- },{"./components":236,"./containers":242,"./context":243,"./handlebars":245,"lodash/omit":211,"lodash/set":213,"lodash/unset":217}]},{},[257]);
20902
+ },{"./components":236,"./containers":244,"./context":246,"./handlebars":248,"lodash/omit":211,"lodash/set":213,"lodash/unset":217}]},{},[260]);