unleash-server 5.8.0 → 5.8.1

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 (29) hide show
  1. package/dist/lib/metrics.d.ts +2 -0
  2. package/dist/lib/metrics.d.ts.map +1 -1
  3. package/dist/lib/metrics.js +42 -16
  4. package/dist/lib/metrics.js.map +1 -1
  5. package/dist/lib/metrics.test.js +25 -1
  6. package/dist/lib/metrics.test.js.map +1 -1
  7. package/frontend/build/index.html +1 -1
  8. package/frontend/build/static/{AdvancedPlayground-iXZHz_Rq.js → AdvancedPlayground-FxfPUa2V.js} +1 -1
  9. package/frontend/build/static/{CreateProject-BbtWHPl8.js → CreateProject-aN-UGdcb.js} +1 -1
  10. package/frontend/build/static/{FeatureArchiveDialog-D_tZ06Sa.js → FeatureArchiveDialog-eHyhx7Yo.js} +1 -1
  11. package/frontend/build/static/{FeatureMetricsChart-SiwdLhRh.js → FeatureMetricsChart-ExGq1eXl.js} +1 -1
  12. package/frontend/build/static/{FeatureViewLazyExport-baWLSkEu.js → FeatureViewLazyExport-S8mj8m0z.js} +2 -2
  13. package/frontend/build/static/{LazyAdminExport-ckQgco28.js → LazyAdminExport-fpVZFnP9.js} +2 -2
  14. package/frontend/build/static/{LazyProjectExport-R4jiFkLZ.js → LazyProjectExport-_QSE5C5m.js} +1 -1
  15. package/frontend/build/static/{NetworkOverview-StnrlVkY.js → NetworkOverview-ylTzmeDg.js} +2 -2
  16. package/frontend/build/static/{NetworkTraffic-V87e4GGP.js → NetworkTraffic-qj5h7JRk.js} +1 -1
  17. package/frontend/build/static/{ReactJSONEditor-Ybg5ijJk.js → ReactJSONEditor-E59dRBYR.js} +1 -1
  18. package/frontend/build/static/{RoleCell-3lnoYolp.js → RoleCell-TGTVkKHO.js} +1 -1
  19. package/frontend/build/static/{StrategyItemContainer-wRkYMo4g.js → StrategyItemContainer-JoMPKX3L.js} +1 -1
  20. package/frontend/build/static/{chartjs-adapter-date-fns.esm-kkU_hxq-.js → chartjs-adapter-date-fns.esm-JSlDxtwH.js} +1 -1
  21. package/frontend/build/static/{flowchart-elk-definition-170a3958-vkzW0gdf.js → flowchart-elk-definition-170a3958-NkZoK_zv.js} +1 -1
  22. package/frontend/build/static/{index-ORDXjnpF.js → index-JVRlSBvr.js} +64 -64
  23. package/frontend/build/static/{is_dark-zSU9-MOM.js → is_dark-gjUQW15t.js} +1 -1
  24. package/frontend/build/static/{mindmap-definition-44684416-2v9fPc7w.js → mindmap-definition-44684416-obuYUG0L.js} +1 -1
  25. package/frontend/build/static/{timeline-definition-8e5a9bc6-RDFfY8I3.js → timeline-definition-8e5a9bc6-33WsNwwr.js} +1 -1
  26. package/frontend/build/static/{unknownify-vwm75Pg9.js → unknownify-YD2Teyht.js} +1 -1
  27. package/frontend/build/static/{useApiTokens-T6gzMZPt.js → useApiTokens-XTOY616x.js} +1 -1
  28. package/frontend/build/static/{useProjectForm-o3r31UMh.js → useProjectForm--jxh4Dtm.js} +1 -1
  29. package/package.json +1 -1
@@ -6,6 +6,7 @@ import { IUnleashConfig } from './types/option';
6
6
  import { IUnleashStores } from './types/stores';
7
7
  import Timer = NodeJS.Timer;
8
8
  import { InstanceStatsService } from './features/instance-stats/instance-stats-service';
9
+ import { IEnvironment } from './types';
9
10
  export default class MetricsMonitor {
10
11
  timer?: Timer;
11
12
  poolMetricsTimer?: Timer;
@@ -14,6 +15,7 @@ export default class MetricsMonitor {
14
15
  stopMonitoring(): void;
15
16
  configureDbMetrics(db: Knex, eventBus: EventEmitter): void;
16
17
  registerPoolMetrics(pool: any, eventBus: EventEmitter): void;
18
+ resolveEnvironmentType(environment: string, cachedEnvironments: () => Promise<IEnvironment[]>): Promise<string>;
17
19
  }
18
20
  export declare function createMetricsMonitor(): MetricsMonitor;
19
21
  //# sourceMappingURL=metrics.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"metrics.d.ts","sourceRoot":"","sources":["../../src/lib/metrics.ts"],"names":[],"mappings":";;AACA,OAAO,YAAY,MAAM,QAAQ,CAAC;AAClC,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAkB5B,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAEhD,OAAO,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;AAC5B,OAAO,EAAE,oBAAoB,EAAE,MAAM,kDAAkD,CAAC;AAGxF,MAAM,CAAC,OAAO,OAAO,cAAc;IAC/B,KAAK,CAAC,EAAE,KAAK,CAAC;IAEd,gBAAgB,CAAC,EAAE,KAAK,CAAC;;IAOzB,eAAe,CACX,MAAM,EAAE,cAAc,EACtB,MAAM,EAAE,cAAc,EACtB,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,YAAY,EACtB,oBAAoB,EAAE,oBAAoB,EAC1C,EAAE,EAAE,IAAI,GACT,OAAO,CAAC,IAAI,CAAC;IAgZhB,cAAc,IAAI,IAAI;IAKtB,kBAAkB,CAAC,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,YAAY,GAAG,IAAI;IA8C1D,mBAAmB,CAAC,IAAI,EAAE,GAAG,EAAE,QAAQ,EAAE,YAAY;CAWxD;AACD,wBAAgB,oBAAoB,IAAI,cAAc,CAErD"}
1
+ {"version":3,"file":"metrics.d.ts","sourceRoot":"","sources":["../../src/lib/metrics.ts"],"names":[],"mappings":";;AAEA,OAAO,YAAY,MAAM,QAAQ,CAAC;AAClC,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAkB5B,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAAqB,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAEnE,OAAO,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;AAC5B,OAAO,EAAE,oBAAoB,EAAE,MAAM,kDAAkD,CAAC;AAExF,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAEvC,MAAM,CAAC,OAAO,OAAO,cAAc;IAC/B,KAAK,CAAC,EAAE,KAAK,CAAC;IAEd,gBAAgB,CAAC,EAAE,KAAK,CAAC;;IAOzB,eAAe,CACX,MAAM,EAAE,cAAc,EACtB,MAAM,EAAE,cAAc,EACtB,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,YAAY,EACtB,oBAAoB,EAAE,oBAAoB,EAC1C,EAAE,EAAE,IAAI,GACT,OAAO,CAAC,IAAI,CAAC;IAkbhB,cAAc,IAAI,IAAI;IAKtB,kBAAkB,CAAC,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,YAAY,GAAG,IAAI;IA8C1D,mBAAmB,CAAC,IAAI,EAAE,GAAG,EAAE,QAAQ,EAAE,YAAY;IAY/C,sBAAsB,CACxB,WAAW,EAAE,MAAM,EACnB,kBAAkB,EAAE,MAAM,OAAO,CAAC,YAAY,EAAE,CAAC,GAClD,OAAO,CAAC,MAAM,CAAC;CAUrB;AACD,wBAAgB,oBAAoB,IAAI,cAAc,CAErD"}
@@ -28,6 +28,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
28
28
  Object.defineProperty(exports, "__esModule", { value: true });
29
29
  exports.createMetricsMonitor = void 0;
30
30
  const prom_client_1 = __importDefault(require("prom-client"));
31
+ const memoizee_1 = __importDefault(require("memoizee"));
31
32
  const events = __importStar(require("./metric-events"));
32
33
  const events_1 = require("./types/events");
33
34
  const date_fns_1 = require("date-fns");
@@ -40,7 +41,11 @@ class MetricsMonitor {
40
41
  if (!config.server.serverMetrics) {
41
42
  return Promise.resolve();
42
43
  }
43
- const { eventStore } = stores;
44
+ const { eventStore, environmentStore } = stores;
45
+ const cachedEnvironments = (0, memoizee_1.default)(async () => environmentStore.getAll(), {
46
+ promise: true,
47
+ maxAge: (0, date_fns_1.hoursToMilliseconds)(1),
48
+ });
44
49
  prom_client_1.default.collectDefaultMetrics();
45
50
  const requestDuration = new prom_client_1.default.Summary({
46
51
  name: 'http_request_duration_milliseconds',
@@ -69,7 +74,7 @@ class MetricsMonitor {
69
74
  const featureToggleUpdateTotal = new prom_client_1.default.Counter({
70
75
  name: 'feature_toggle_update_total',
71
76
  help: 'Number of times a toggle has been updated. Environment label would be "n/a" when it is not available, e.g. when a feature toggle is created.',
72
- labelNames: ['toggle', 'project', 'environment'],
77
+ labelNames: ['toggle', 'project', 'environment', 'environmentType'],
73
78
  });
74
79
  const featureToggleUsageTotal = new prom_client_1.default.Counter({
75
80
  name: 'feature_toggle_usage_total',
@@ -300,42 +305,53 @@ class MetricsMonitor {
300
305
  dbDuration.labels(store, action).observe(time);
301
306
  });
302
307
  eventStore.on(events_1.FEATURE_CREATED, ({ featureName, project }) => {
303
- featureToggleUpdateTotal.labels(featureName, project, 'n/a').inc();
308
+ featureToggleUpdateTotal
309
+ .labels(featureName, project, 'n/a', 'n/a')
310
+ .inc();
304
311
  });
305
312
  eventStore.on(events_1.FEATURE_VARIANTS_UPDATED, ({ featureName, project }) => {
306
- featureToggleUpdateTotal.labels(featureName, project, 'n/a').inc();
313
+ featureToggleUpdateTotal
314
+ .labels(featureName, project, 'n/a', 'n/a')
315
+ .inc();
307
316
  });
308
317
  eventStore.on(events_1.FEATURE_METADATA_UPDATED, ({ featureName, project }) => {
309
- featureToggleUpdateTotal.labels(featureName, project, 'n/a').inc();
318
+ featureToggleUpdateTotal
319
+ .labels(featureName, project, 'n/a', 'n/a')
320
+ .inc();
310
321
  });
311
322
  eventStore.on(events_1.FEATURE_UPDATED, ({ featureName, project }) => {
312
323
  featureToggleUpdateTotal
313
- .labels(featureName, project, 'default')
324
+ .labels(featureName, project, 'default', 'production')
314
325
  .inc();
315
326
  });
316
- eventStore.on(events_1.FEATURE_STRATEGY_ADD, ({ featureName, project, environment }) => {
327
+ eventStore.on(events_1.FEATURE_STRATEGY_ADD, async ({ featureName, project, environment }) => {
328
+ const environmentType = await this.resolveEnvironmentType(environment, cachedEnvironments);
317
329
  featureToggleUpdateTotal
318
- .labels(featureName, project, environment)
330
+ .labels(featureName, project, environment, environmentType)
319
331
  .inc();
320
332
  });
321
- eventStore.on(events_1.FEATURE_STRATEGY_REMOVE, ({ featureName, project, environment }) => {
333
+ eventStore.on(events_1.FEATURE_STRATEGY_REMOVE, async ({ featureName, project, environment }) => {
334
+ const environmentType = await this.resolveEnvironmentType(environment, cachedEnvironments);
322
335
  featureToggleUpdateTotal
323
- .labels(featureName, project, environment)
336
+ .labels(featureName, project, environment, environmentType)
324
337
  .inc();
325
338
  });
326
- eventStore.on(events_1.FEATURE_STRATEGY_UPDATE, ({ featureName, project, environment }) => {
339
+ eventStore.on(events_1.FEATURE_STRATEGY_UPDATE, async ({ featureName, project, environment }) => {
340
+ const environmentType = await this.resolveEnvironmentType(environment, cachedEnvironments);
327
341
  featureToggleUpdateTotal
328
- .labels(featureName, project, environment)
342
+ .labels(featureName, project, environment, environmentType)
329
343
  .inc();
330
344
  });
331
- eventStore.on(events_1.FEATURE_ENVIRONMENT_DISABLED, ({ featureName, project, environment }) => {
345
+ eventStore.on(events_1.FEATURE_ENVIRONMENT_DISABLED, async ({ featureName, project, environment }) => {
346
+ const environmentType = await this.resolveEnvironmentType(environment, cachedEnvironments);
332
347
  featureToggleUpdateTotal
333
- .labels(featureName, project, environment)
348
+ .labels(featureName, project, environment, environmentType)
334
349
  .inc();
335
350
  });
336
- eventStore.on(events_1.FEATURE_ENVIRONMENT_ENABLED, ({ featureName, project, environment }) => {
351
+ eventStore.on(events_1.FEATURE_ENVIRONMENT_ENABLED, async ({ featureName, project, environment }) => {
352
+ const environmentType = await this.resolveEnvironmentType(environment, cachedEnvironments);
337
353
  featureToggleUpdateTotal
338
- .labels(featureName, project, environment)
354
+ .labels(featureName, project, environment, environmentType)
339
355
  .inc();
340
356
  });
341
357
  eventStore.on(events_1.FEATURE_ARCHIVED, ({ featureName, project }) => {
@@ -419,6 +435,16 @@ class MetricsMonitor {
419
435
  }
420
436
  catch (e) { }
421
437
  }
438
+ async resolveEnvironmentType(environment, cachedEnvironments) {
439
+ const environments = await cachedEnvironments();
440
+ const env = environments.find((e) => e.name === environment);
441
+ if (env) {
442
+ return env.type;
443
+ }
444
+ else {
445
+ return 'unknown';
446
+ }
447
+ }
422
448
  }
423
449
  exports.default = MetricsMonitor;
424
450
  function createMetricsMonitor() {
@@ -1 +1 @@
1
- {"version":3,"file":"metrics.js","sourceRoot":"","sources":["../../src/lib/metrics.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,8DAAiC;AAGjC,wDAA0C;AAC1C,2CAewB;AAGxB,uCAAsE;AAKtE,MAAqB,cAAc;IAK/B;QACI,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC;QACvB,IAAI,CAAC,gBAAgB,GAAG,SAAS,CAAC;IACtC,CAAC;IAED,eAAe,CACX,MAAsB,EACtB,MAAsB,EACtB,OAAe,EACf,QAAsB,EACtB,oBAA0C,EAC1C,EAAQ;QAER,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,aAAa,EAAE;YAC9B,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;SAC5B;QAED,MAAM,EAAE,UAAU,EAAE,GAAG,MAAM,CAAC;QAE9B,qBAAM,CAAC,qBAAqB,EAAE,CAAC;QAE/B,MAAM,eAAe,GAAG,IAAI,qBAAM,CAAC,OAAO,CAAC;YACvC,IAAI,EAAE,oCAAoC;YAC1C,IAAI,EAAE,mBAAmB;YACzB,UAAU,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,CAAC;YACnD,WAAW,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC;YACxC,aAAa,EAAE,GAAG;YAClB,UAAU,EAAE,CAAC;SAChB,CAAC,CAAC;QACH,MAAM,iBAAiB,GAAG,IAAI,qBAAM,CAAC,OAAO,CAAC;YACzC,IAAI,EAAE,4BAA4B;YAClC,IAAI,EAAE,yBAAyB;YAC/B,UAAU,EAAE,CAAC,OAAO,CAAC;YACrB,WAAW,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC;YACxC,aAAa,EAAE,GAAG;YAClB,UAAU,EAAE,CAAC;SAChB,CAAC,CAAC;QACH,MAAM,UAAU,GAAG,IAAI,qBAAM,CAAC,OAAO,CAAC;YAClC,IAAI,EAAE,2BAA2B;YACjC,IAAI,EAAE,wBAAwB;YAC9B,UAAU,EAAE,CAAC,OAAO,EAAE,QAAQ,CAAC;YAC/B,WAAW,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC;YACxC,aAAa,EAAE,GAAG;YAClB,UAAU,EAAE,CAAC;SAChB,CAAC,CAAC;QACH,MAAM,wBAAwB,GAAG,IAAI,qBAAM,CAAC,OAAO,CAAC;YAChD,IAAI,EAAE,6BAA6B;YACnC,IAAI,EAAE,8IAA8I;YACpJ,UAAU,EAAE,CAAC,QAAQ,EAAE,SAAS,EAAE,aAAa,CAAC;SACnD,CAAC,CAAC;QACH,MAAM,uBAAuB,GAAG,IAAI,qBAAM,CAAC,OAAO,CAAC;YAC/C,IAAI,EAAE,4BAA4B;YAClC,IAAI,EAAE,gDAAgD;YACtD,UAAU,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,CAAC;SAC9C,CAAC,CAAC;QACH,MAAM,mBAAmB,GAAG,IAAI,qBAAM,CAAC,KAAK,CAAC;YACzC,IAAI,EAAE,uBAAuB;YAC7B,IAAI,EAAE,2BAA2B;YACjC,UAAU,EAAE,CAAC,SAAS,CAAC;SAC1B,CAAC,CAAC;QACH,MAAM,UAAU,GAAG,IAAI,qBAAM,CAAC,KAAK,CAAC;YAChC,IAAI,EAAE,aAAa;YACnB,IAAI,EAAE,iBAAiB;SAC1B,CAAC,CAAC;QACH,MAAM,eAAe,GAAG,IAAI,qBAAM,CAAC,KAAK,CAAC;YACrC,IAAI,EAAE,wBAAwB;YAC9B,IAAI,EAAE,4BAA4B;SACrC,CAAC,CAAC;QACH,MAAM,SAAS,GAAG,IAAI,qBAAM,CAAC,KAAK,CAAC;YAC/B,IAAI,EAAE,kBAAkB;YACxB,IAAI,EAAE,sBAAsB;YAC5B,UAAU,EAAE,CAAC,MAAM,CAAC;SACvB,CAAC,CAAC;QACH,MAAM,gBAAgB,GAAG,IAAI,qBAAM,CAAC,KAAK,CAAC;YACtC,IAAI,EAAE,gBAAgB;YACtB,IAAI,EAAE,2CAA2C;SACpD,CAAC,CAAC;QACH,MAAM,iBAAiB,GAAG,IAAI,qBAAM,CAAC,KAAK,CAAC;YACvC,IAAI,EAAE,iBAAiB;YACvB,IAAI,EAAE,4CAA4C;SACrD,CAAC,CAAC;QACH,MAAM,iBAAiB,GAAG,IAAI,qBAAM,CAAC,KAAK,CAAC;YACvC,IAAI,EAAE,iBAAiB;YACvB,IAAI,EAAE,4CAA4C;SACrD,CAAC,CAAC;QACH,MAAM,iBAAiB,GAAG,IAAI,qBAAM,CAAC,KAAK,CAAC;YACvC,IAAI,EAAE,iBAAiB;YACvB,IAAI,EAAE,4CAA4C;SACrD,CAAC,CAAC;QACH,MAAM,aAAa,GAAG,IAAI,qBAAM,CAAC,KAAK,CAAC;YACnC,IAAI,EAAE,gBAAgB;YACtB,IAAI,EAAE,oBAAoB;YAC1B,UAAU,EAAE,CAAC,MAAM,CAAC;SACvB,CAAC,CAAC;QACH,MAAM,iBAAiB,GAAG,IAAI,qBAAM,CAAC,KAAK,CAAC;YACvC,IAAI,EAAE,oBAAoB;YAC1B,IAAI,EAAE,wBAAwB;SACjC,CAAC,CAAC;QACH,MAAM,WAAW,GAAG,IAAI,qBAAM,CAAC,KAAK,CAAC;YACjC,IAAI,EAAE,cAAc;YACpB,IAAI,EAAE,kBAAkB;SAC3B,CAAC,CAAC;QAEH,MAAM,UAAU,GAAG,IAAI,qBAAM,CAAC,KAAK,CAAC;YAChC,IAAI,EAAE,aAAa;YACnB,IAAI,EAAE,iBAAiB;SAC1B,CAAC,CAAC;QAEH,MAAM,oBAAoB,GAAG,IAAI,qBAAM,CAAC,KAAK,CAAC;YAC1C,IAAI,EAAE,yBAAyB;YAC/B,IAAI,EAAE,6BAA6B;SACtC,CAAC,CAAC;QAEH,MAAM,yBAAyB,GAAG,IAAI,qBAAM,CAAC,KAAK,CAAC;YAC/C,IAAI,EAAE,gCAAgC;YACtC,IAAI,EAAE,oCAAoC;SAC7C,CAAC,CAAC;QAEH,MAAM,aAAa,GAAG,IAAI,qBAAM,CAAC,KAAK,CAAC;YACnC,IAAI,EAAE,gBAAgB;YACtB,IAAI,EAAE,oBAAoB;SAC7B,CAAC,CAAC;QAEH,MAAM,YAAY,GAAG,IAAI,qBAAM,CAAC,KAAK,CAAC;YAClC,IAAI,EAAE,eAAe;YACrB,IAAI,EAAE,mBAAmB;SAC5B,CAAC,CAAC;QAEH,MAAM,eAAe,GAAG,IAAI,qBAAM,CAAC,KAAK,CAAC;YACrC,IAAI,EAAE,kBAAkB;YACxB,IAAI,EAAE,sBAAsB;SAC/B,CAAC,CAAC;QAEH,MAAM,eAAe,GAAG,IAAI,qBAAM,CAAC,KAAK,CAAC;YACrC,IAAI,EAAE,mBAAmB;YACzB,IAAI,EAAE,mEAAmE;YACzE,UAAU,EAAE,CAAC,OAAO,CAAC;SACxB,CAAC,CAAC;QAEH,MAAM,WAAW,GAAG,IAAI,qBAAM,CAAC,KAAK,CAAC;YACjC,IAAI,EAAE,cAAc;YACpB,IAAI,EAAE,yBAAyB;SAClC,CAAC,CAAC;QAEH,MAAM,WAAW,GAAG,IAAI,qBAAM,CAAC,KAAK,CAAC;YACjC,IAAI,EAAE,cAAc;YACpB,IAAI,EAAE,yBAAyB;SAClC,CAAC,CAAC;QAEH,MAAM,qBAAqB,GAAG,IAAI,qBAAM,CAAC,OAAO,CAAC;YAC7C,IAAI,EAAE,qBAAqB;YAC3B,IAAI,EAAE,mCAAmC;YACzC,UAAU,EAAE,CAAC,UAAU,EAAE,aAAa,CAAC;SAC1C,CAAC,CAAC;QAEH,MAAM,wBAAwB,GAAG,IAAI,qBAAM,CAAC,OAAO,CAAC;YAChD,IAAI,EAAE,qBAAqB;YAC3B,IAAI,EAAE,2CAA2C;YACjD,UAAU,EAAE,CAAC,QAAQ,CAAC;SACzB,CAAC,CAAC;QAEH,MAAM,mBAAmB,GAAG,IAAI,qBAAM,CAAC,KAAK,CAAC;YACzC,IAAI,EAAE,uBAAuB;YAC7B,IAAI,EAAE,qDAAqD;YAC3D,UAAU,EAAE,CAAC,aAAa,CAAC;SAC9B,CAAC,CAAC;QACH,MAAM,mBAAmB,GAAG,IAAI,qBAAM,CAAC,KAAK,CAAC;YACzC,IAAI,EAAE,uBAAuB;YAC7B,IAAI,EAAE,qDAAqD;YAC3D,UAAU,EAAE,CAAC,aAAa,CAAC;SAC9B,CAAC,CAAC;QACH,MAAM,mBAAmB,GAAG,IAAI,qBAAM,CAAC,KAAK,CAAC;YACzC,IAAI,EAAE,uBAAuB;YAC7B,IAAI,EAAE,qDAAqD;YAC3D,UAAU,EAAE,CAAC,aAAa,CAAC;SAC9B,CAAC,CAAC;QAEH,MAAM,UAAU,GAAG,IAAI,qBAAM,CAAC,KAAK,CAAC;YAChC,IAAI,EAAE,aAAa;YACnB,IAAI,EAAE,oDAAoD;YAC1D,UAAU,EAAE,CAAC,UAAU,EAAE,QAAQ,CAAC;SACrC,CAAC,CAAC;QAEH,KAAK,UAAU,qBAAqB;YAChC,IAAI;gBACA,MAAM,KAAK,GAAG,MAAM,oBAAoB,CAAC,QAAQ,EAAE,CAAC;gBAEpD,mBAAmB,CAAC,KAAK,EAAE,CAAC;gBAC5B,mBAAmB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;gBAE9D,UAAU,CAAC,KAAK,EAAE,CAAC;gBACnB,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;gBAE5B,eAAe,CAAC,KAAK,EAAE,CAAC;gBACxB,eAAe,CAAC,GAAG,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;gBAE3C,SAAS,CAAC,KAAK,EAAE,CAAC;gBAElB,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,KAAK,CAAC,SAAS,EAAE;oBACzC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;iBACrC;gBAED,gBAAgB,CAAC,KAAK,EAAE,CAAC;gBACzB,gBAAgB,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;gBAC9C,iBAAiB,CAAC,KAAK,EAAE,CAAC;gBAC1B,iBAAiB,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;gBAChD,iBAAiB,CAAC,KAAK,EAAE,CAAC;gBAC1B,iBAAiB,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;gBAChD,iBAAiB,CAAC,KAAK,EAAE,CAAC;gBAC1B,iBAAiB,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;gBAEhD,mBAAmB,CAAC,KAAK,EAAE,CAAC;gBAC5B,mBAAmB,CAAC,GAAG,CAAC,KAAK,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;gBACxD,mBAAmB,CAAC,KAAK,EAAE,CAAC;gBAC5B,mBAAmB,CAAC,GAAG,CAAC,KAAK,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;gBACxD,mBAAmB,CAAC,KAAK,EAAE,CAAC;gBAC5B,mBAAmB,CAAC,GAAG,CAAC,KAAK,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;gBAExD,aAAa,CAAC,KAAK,EAAE,CAAC;gBACtB,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,EAAE;oBACnC,aAAa;yBACR,MAAM,CAAC,EAAE,IAAI,EAAE,WAAW,CAAC,IAAI,EAAE,CAAC;yBAClC,GAAG,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;gBAChC,CAAC,CAAC,CAAC;gBAEH,iBAAiB,CAAC,KAAK,EAAE,CAAC;gBAC1B,iBAAiB,CAAC,GAAG,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;gBAE1C,WAAW,CAAC,KAAK,EAAE,CAAC;gBACpB,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;gBAE9B,UAAU,CAAC,KAAK,EAAE,CAAC;gBACnB,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;gBAE5B,oBAAoB,CAAC,KAAK,EAAE,CAAC;gBAC7B,oBAAoB,CAAC,GAAG,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;gBAEhD,yBAAyB,CAAC,KAAK,EAAE,CAAC;gBAClC,yBAAyB,CAAC,GAAG,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC;gBAE1D,aAAa,CAAC,KAAK,EAAE,CAAC;gBACtB,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;gBAElC,YAAY,CAAC,KAAK,EAAE,CAAC;gBACrB,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;gBAEtC,eAAe,CAAC,KAAK,EAAE,CAAC;gBACxB,eAAe,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;gBAEtC,WAAW,CAAC,KAAK,EAAE,CAAC;gBACpB,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBAE3C,WAAW,CAAC,KAAK,EAAE,CAAC;gBACpB,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBAE3C,eAAe,CAAC,KAAK,EAAE,CAAC;gBACxB,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,UAAU,EAAE,EAAE,CACpC,eAAe;qBACV,MAAM,CAAC,EAAE,KAAK,EAAE,UAAU,CAAC,KAAK,EAAE,CAAC;qBACnC,GAAG,CAAC,UAAU,CAAC,KAAK,CAAC,CAC7B,CAAC;gBAEF,UAAU,CAAC,KAAK,EAAE,CAAC;gBACnB,UAAU;qBACL,MAAM,CAAC,EAAE,QAAQ,EAAE,qBAAqB,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;qBAC3D,GAAG,CAAC,MAAM,CAAC,mBAAmB,CAAC,yBAAyB,CAAC,CAAC;gBAC/D,UAAU;qBACL,MAAM,CAAC;oBACJ,QAAQ,EAAE,sBAAsB;oBAChC,MAAM,EAAE,MAAM;iBACjB,CAAC;qBACD,GAAG,CAAC,MAAM,CAAC,mBAAmB,CAAC,0BAA0B,CAAC,CAAC;gBAChE,UAAU;qBACL,MAAM,CAAC;oBACJ,QAAQ,EAAE,uBAAuB;oBACjC,MAAM,EAAE,MAAM;iBACjB,CAAC;qBACD,GAAG,CACA,MAAM,CAAC,mBAAmB,CAAC,2BAA2B,CACzD,CAAC;gBACN,UAAU;qBACL,MAAM,CAAC;oBACJ,QAAQ,EAAE,wBAAwB;oBAClC,MAAM,EAAE,MAAM;iBACjB,CAAC;qBACD,GAAG,CACA,MAAM,CAAC,mBAAmB,CAAC,4BAA4B,CAC1D,CAAC;gBACN,UAAU;qBACL,MAAM,CAAC;oBACJ,QAAQ,EAAE,uBAAuB;oBACjC,MAAM,EAAE,MAAM;iBACjB,CAAC;qBACD,GAAG,CAAC,MAAM,CAAC,YAAY,CAAC,sBAAsB,CAAC,CAAC;gBACrD,UAAU;qBACL,MAAM,CAAC,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;qBACpD,GAAG,CAAC,MAAM,CAAC,YAAY,CAAC,uBAAuB,CAAC,CAAC;aACzD;YAAC,OAAO,CAAC,EAAE,GAAE;QAClB,CAAC;QAED,OAAO,CAAC,QAAQ,CAAC,GAAG,EAAE;YAClB,qBAAqB,EAAE,CAAC;YACxB,IAAI,CAAC,KAAK,GAAG,WAAW,CACpB,GAAG,EAAE,CAAC,qBAAqB,EAAE,EAC7B,IAAA,8BAAmB,EAAC,CAAC,CAAC,CACzB,CAAC,KAAK,EAAE,CAAC;QACd,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,EAAE,CACP,MAAM,CAAC,YAAY,EACnB,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,EAAE,EAAE;YAC5C,eAAe;iBACV,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,CAAC;iBACzC,OAAO,CAAC,IAAI,CAAC,CAAC;QACvB,CAAC,CACJ,CAAC;QAEF,QAAQ,CAAC,EAAE,CAAC,MAAM,CAAC,kBAAkB,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,EAAE;YACvD,iBAAiB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAClD,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,EAAE,CAAC,kBAAkB,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE;YAC3C,wBAAwB,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC;QAClD,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,EAAE,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE;YACpD,UAAU,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACnD,CAAC,CAAC,CAAC;QAEH,UAAU,CAAC,EAAE,CAAC,wBAAe,EAAE,CAAC,EAAE,WAAW,EAAE,OAAO,EAAE,EAAE,EAAE;YACxD,wBAAwB,CAAC,MAAM,CAAC,WAAW,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC,GAAG,EAAE,CAAC;QACvE,CAAC,CAAC,CAAC;QACH,UAAU,CAAC,EAAE,CAAC,iCAAwB,EAAE,CAAC,EAAE,WAAW,EAAE,OAAO,EAAE,EAAE,EAAE;YACjE,wBAAwB,CAAC,MAAM,CAAC,WAAW,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC,GAAG,EAAE,CAAC;QACvE,CAAC,CAAC,CAAC;QACH,UAAU,CAAC,EAAE,CAAC,iCAAwB,EAAE,CAAC,EAAE,WAAW,EAAE,OAAO,EAAE,EAAE,EAAE;YACjE,wBAAwB,CAAC,MAAM,CAAC,WAAW,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC,GAAG,EAAE,CAAC;QACvE,CAAC,CAAC,CAAC;QACH,UAAU,CAAC,EAAE,CAAC,wBAAe,EAAE,CAAC,EAAE,WAAW,EAAE,OAAO,EAAE,EAAE,EAAE;YACxD,wBAAwB;iBACnB,MAAM,CAAC,WAAW,EAAE,OAAO,EAAE,SAAS,CAAC;iBACvC,GAAG,EAAE,CAAC;QACf,CAAC,CAAC,CAAC;QACH,UAAU,CAAC,EAAE,CACT,6BAAoB,EACpB,CAAC,EAAE,WAAW,EAAE,OAAO,EAAE,WAAW,EAAE,EAAE,EAAE;YACtC,wBAAwB;iBACnB,MAAM,CAAC,WAAW,EAAE,OAAO,EAAE,WAAW,CAAC;iBACzC,GAAG,EAAE,CAAC;QACf,CAAC,CACJ,CAAC;QACF,UAAU,CAAC,EAAE,CACT,gCAAuB,EACvB,CAAC,EAAE,WAAW,EAAE,OAAO,EAAE,WAAW,EAAE,EAAE,EAAE;YACtC,wBAAwB;iBACnB,MAAM,CAAC,WAAW,EAAE,OAAO,EAAE,WAAW,CAAC;iBACzC,GAAG,EAAE,CAAC;QACf,CAAC,CACJ,CAAC;QACF,UAAU,CAAC,EAAE,CACT,gCAAuB,EACvB,CAAC,EAAE,WAAW,EAAE,OAAO,EAAE,WAAW,EAAE,EAAE,EAAE;YACtC,wBAAwB;iBACnB,MAAM,CAAC,WAAW,EAAE,OAAO,EAAE,WAAW,CAAC;iBACzC,GAAG,EAAE,CAAC;QACf,CAAC,CACJ,CAAC;QACF,UAAU,CAAC,EAAE,CACT,qCAA4B,EAC5B,CAAC,EAAE,WAAW,EAAE,OAAO,EAAE,WAAW,EAAE,EAAE,EAAE;YACtC,wBAAwB;iBACnB,MAAM,CAAC,WAAW,EAAE,OAAO,EAAE,WAAW,CAAC;iBACzC,GAAG,EAAE,CAAC;QACf,CAAC,CACJ,CAAC;QACF,UAAU,CAAC,EAAE,CACT,oCAA2B,EAC3B,CAAC,EAAE,WAAW,EAAE,OAAO,EAAE,WAAW,EAAE,EAAE,EAAE;YACtC,wBAAwB;iBACnB,MAAM,CAAC,WAAW,EAAE,OAAO,EAAE,WAAW,CAAC;iBACzC,GAAG,EAAE,CAAC;QACf,CAAC,CACJ,CAAC;QACF,UAAU,CAAC,EAAE,CAAC,yBAAgB,EAAE,CAAC,EAAE,WAAW,EAAE,OAAO,EAAE,EAAE,EAAE;YACzD,wBAAwB,CAAC,MAAM,CAAC,WAAW,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC,GAAG,EAAE,CAAC;QACvE,CAAC,CAAC,CAAC;QACH,UAAU,CAAC,EAAE,CAAC,wBAAe,EAAE,CAAC,EAAE,WAAW,EAAE,OAAO,EAAE,EAAE,EAAE;YACxD,wBAAwB,CAAC,MAAM,CAAC,WAAW,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC,GAAG,EAAE,CAAC;QACvE,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,EAAE,CAAC,uBAAc,EAAE,CAAC,CAAyB,EAAE,EAAE;YACtD,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE;gBAClD,uBAAuB;qBAClB,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC;qBACnC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;gBACvB,uBAAuB;qBAClB,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC;qBACpC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;aACzB;QACL,CAAC,CAAC,CAAC;QACH,UAAU,CAAC,EAAE,CAAC,wBAAe,EAAE,CAAC,CAAC,EAAE,EAAE;YACjC,IAAI,CAAC,CAAC,UAAU,IAAI,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE;gBAChD,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBACtD,qBAAqB,CAAC,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC,GAAG,EAAE,CAAC;aAC3D;QACL,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,kBAAkB,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;QAEtC,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC7B,CAAC;IAED,cAAc;QACV,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC1B,aAAa,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;IACzC,CAAC;IAED,kBAAkB,CAAC,EAAQ,EAAE,QAAsB;QAC/C,IAAI,EAAE,EAAE,MAAM,EAAE;YACZ,MAAM,SAAS,GAAG,IAAI,qBAAM,CAAC,KAAK,CAAC;gBAC/B,IAAI,EAAE,aAAa;gBACnB,IAAI,EAAE,sBAAsB;aAC/B,CAAC,CAAC;YACH,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAClC,MAAM,SAAS,GAAG,IAAI,qBAAM,CAAC,KAAK,CAAC;gBAC/B,IAAI,EAAE,aAAa;gBACnB,IAAI,EAAE,sBAAsB;aAC/B,CAAC,CAAC;YACH,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAClC,MAAM,UAAU,GAAG,IAAI,qBAAM,CAAC,KAAK,CAAC;gBAChC,IAAI,EAAE,cAAc;gBACpB,IAAI,EAAE,qCAAqC;aAC9C,CAAC,CAAC;YACH,MAAM,UAAU,GAAG,IAAI,qBAAM,CAAC,KAAK,CAAC;gBAChC,IAAI,EAAE,cAAc;gBACpB,IAAI,EAAE,uCAAuC;aAChD,CAAC,CAAC;YACH,MAAM,oBAAoB,GAAG,IAAI,qBAAM,CAAC,KAAK,CAAC;gBAC1C,IAAI,EAAE,yBAAyB;gBAC/B,IAAI,EAAE,2DAA2D;aACpE,CAAC,CAAC;YACH,MAAM,qBAAqB,GAAG,IAAI,qBAAM,CAAC,KAAK,CAAC;gBAC3C,IAAI,EAAE,0BAA0B;gBAChC,IAAI,EAAE,wEAAwE;aACjF,CAAC,CAAC;YAEH,QAAQ,CAAC,EAAE,CAAC,uBAAc,EAAE,CAAC,IAAI,EAAE,EAAE;gBACjC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAC1B,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAC1B,oBAAoB,CAAC,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;gBAC9C,qBAAqB,CAAC,GAAG,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;YACpD,CAAC,CAAC,CAAC;YAEH,IAAI,CAAC,mBAAmB,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;YACnD,IAAI,CAAC,gBAAgB,GAAG,WAAW,CAC/B,GAAG,EAAE,CAAC,IAAI,CAAC,mBAAmB,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,EACxD,IAAA,gCAAqB,EAAC,CAAC,CAAC,CAC3B,CAAC;YACF,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,CAAC;SACjC;IACL,CAAC;IAED,6EAA6E;IAC7E,mBAAmB,CAAC,IAAS,EAAE,QAAsB;QACjD,IAAI;YACA,QAAQ,CAAC,IAAI,CAAC,uBAAc,EAAE;gBAC1B,IAAI,EAAE,IAAI,CAAC,OAAO,EAAE;gBACpB,IAAI,EAAE,IAAI,CAAC,OAAO,EAAE;gBACpB,cAAc,EAAE,IAAI,CAAC,iBAAiB,EAAE;gBACxC,eAAe,EAAE,IAAI,CAAC,kBAAkB,EAAE;aAC7C,CAAC,CAAC;YACH,oCAAoC;SACvC;QAAC,OAAO,CAAC,EAAE,GAAE;IAClB,CAAC;CACJ;AA/dD,iCA+dC;AACD,SAAgB,oBAAoB;IAChC,OAAO,IAAI,cAAc,EAAE,CAAC;AAChC,CAAC;AAFD,oDAEC;AAED,MAAM,CAAC,OAAO,GAAG;IACb,oBAAoB;CACvB,CAAC"}
1
+ {"version":3,"file":"metrics.js","sourceRoot":"","sources":["../../src/lib/metrics.ts"],"names":[],"mappings":"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"}
@@ -14,10 +14,12 @@ const instance_stats_service_1 = require("./features/instance-stats/instance-sta
14
14
  const version_service_1 = __importDefault(require("./services/version-service"));
15
15
  const getActiveUsers_1 = require("./features/instance-stats/getActiveUsers");
16
16
  const getProductionChanges_1 = require("./features/instance-stats/getProductionChanges");
17
+ const fake_environment_store_1 = __importDefault(require("./features/project-environments/fake-environment-store"));
17
18
  const monitor = (0, metrics_1.createMetricsMonitor)();
18
19
  const eventBus = new events_1.default();
19
20
  const prometheusRegister = prom_client_1.register;
20
21
  let eventStore;
22
+ let environmentStore;
21
23
  let statsService;
22
24
  let stores;
23
25
  beforeAll(() => {
@@ -28,6 +30,8 @@ beforeAll(() => {
28
30
  });
29
31
  stores = (0, store_1.default)();
30
32
  eventStore = stores.eventStore;
33
+ environmentStore = new fake_environment_store_1.default();
34
+ stores.environmentStore = environmentStore;
31
35
  const versionService = new version_service_1.default(stores, config, (0, getActiveUsers_1.createFakeGetActiveUsers)(), (0, getProductionChanges_1.createFakeGetProductionChanges)());
32
36
  statsService = new instance_stats_service_1.InstanceStatsService(stores, config, versionService, (0, getActiveUsers_1.createFakeGetActiveUsers)(), (0, getProductionChanges_1.createFakeGetProductionChanges)());
33
37
  const db = {
@@ -67,7 +71,27 @@ test('should collect metrics for updated toggles', async () => {
67
71
  data: { name: 'TestToggle' },
68
72
  });
69
73
  const metrics = await prometheusRegister.metrics();
70
- expect(metrics).toMatch(/feature_toggle_update_total\{toggle="TestToggle",project="default",environment="default"\} 1/);
74
+ expect(metrics).toMatch(/feature_toggle_update_total\{toggle="TestToggle",project="default",environment="default",environmentType="production"\} 1/);
75
+ });
76
+ test('should set environmentType when toggle is flipped', async () => {
77
+ await environmentStore.create({
78
+ name: 'testEnvironment',
79
+ enabled: true,
80
+ type: 'testType',
81
+ sortOrder: 1,
82
+ });
83
+ stores.eventStore.emit(events_2.FEATURE_ENVIRONMENT_ENABLED, {
84
+ featureName: 'TestToggle',
85
+ project: 'default',
86
+ environment: 'testEnvironment',
87
+ data: { name: 'TestToggle' },
88
+ });
89
+ // Wait for event to be processed, not nice, but it works.
90
+ await new Promise((done) => {
91
+ setTimeout(done, 1);
92
+ });
93
+ const metrics = await prometheusRegister.metrics();
94
+ expect(metrics).toMatch(/feature_toggle_update_total\{toggle="TestToggle",project="default",environment="testEnvironment",environmentType="testType"\} 1/);
71
95
  });
72
96
  test('should collect metrics for client metric reports', async () => {
73
97
  eventBus.emit(events_2.CLIENT_METRICS, {
@@ -1 +1 @@
1
- {"version":3,"file":"metrics.test.js","sourceRoot":"","sources":["../../src/lib/metrics.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"metrics.test.js","sourceRoot":"","sources":["../../src/lib/metrics.test.ts"],"names":[],"mappings":"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"}
@@ -20,7 +20,7 @@
20
20
  rel="stylesheet"
21
21
  href="https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@24,400,0,0"
22
22
  />
23
- <script type="module" crossorigin src="/static/index-ORDXjnpF.js"></script>
23
+ <script type="module" crossorigin src="/static/index-JVRlSBvr.js"></script>
24
24
  <link rel="stylesheet" crossorigin href="/static/style-gSb9cHBe.css">
25
25
  </head>
26
26
  <body>
@@ -1,4 +1,4 @@
1
- import{c as Gi,j as d,u as df,r as B,_ as pf,a as to,s as W,U as mf,b as pe,B as G,C as F,d as gf,E as xf,e as Ya,f as yf,g as Mi,T as ne,F as bf,I as wf,S as vf,M as kf,h as io,p as zo,i as $o,k as Oi,A as rr,l as Sf,m as Cf,n as Af,o as Mf,q as Of,t as qo,v as Df,w as Tf,x as Vt,D as Pf,P as Rf,y as Xa,z as Bf,G as Yt,H as Ef,J as Bi,K as Rt,L as Za,N as no,O as eh,Q as Lf,R as or,V as kn,W as lr,X as jf,Y as If,Z as Nf,$ as th,a0 as so,a1 as us,a2 as Ff,a3 as Ae,a4 as fs,a5 as Wf,a6 as Vf,a7 as Hf,a8 as zf,a9 as $f,aa as qf,ab as Uo,ac as ih,ad as ro,ae as oo,af as nh,ag as lo,ah as sh,ai as rh,aj as oh,ak as lh,al as Uf,am as Go,an as Gf,ao as Kf,ap as Ts,aq as Qf,ar as Jf,as as _f,at as Yf,au as Xf,av as Zf}from"./index-ORDXjnpF.js";import{u as ed}from"./useApiTokens-T6gzMZPt.js";import{S as td}from"./StrategyItemContainer-wRkYMo4g.js";const ds=Gi(d.jsx("path",{d:"M12 2C6.47 2 2 6.47 2 12s4.47 10 10 10 10-4.47 10-10S17.53 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8zm3.59-13L12 10.59 8.41 7 7 8.41 10.59 12 7 15.59 8.41 17 12 13.41 15.59 17 17 15.59 13.41 12 17 8.41z"}),"CancelOutlined"),id=Gi(d.jsx("path",{d:"M16.59 7.58 10 14.17l-3.59-3.58L5 12l5 5 8-8zM12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z"}),"CheckCircleOutline"),nd=Gi(d.jsx("path",{d:"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8zm4.59-12.42L10 14.17l-2.59-2.58L6 13l4 4 8-8z"}),"CheckCircleOutlined"),sd=Gi(d.jsx("path",{d:"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1 17h-2v-2h2v2zm2.07-7.75-.9.92C13.45 12.9 13 13.5 13 15h-2v-.5c0-1.1.45-2.1 1.17-2.83l1.24-1.26c.37-.36.59-.86.59-1.41 0-1.1-.9-2-2-2s-2 .9-2 2H8c0-2.21 1.79-4 4-4s4 1.79 4 4c0 .88-.36 1.68-.93 2.25z"}),"Help"),rd=Gi(d.jsx("path",{d:"M1 21h22L12 2 1 21zm12-3h-2v-2h2v2zm0-4h-2v-4h2v4z"}),"WarningOutlined"),od=()=>{const{makeRequest:n,createRequest:e,errors:t,loading:i}=df({propagateErrors:!0}),s="api/admin/playground";return{evaluateAdvancedPlayground:async o=>{const l=`${s}/advanced`,a=e(l,{method:"POST",body:JSON.stringify(o)});return(await n(a.caller,a.id)).json()},errors:t,loading:i}};function ar(n,e,t){var i,s,r,o,l;e==null&&(e=100);function a(){var c=Date.now()-o;c<e&&c>=0?i=setTimeout(a,e-c):(i=null,t||(l=n.apply(r,s),r=s=null))}var h=function(){r=this,s=arguments,o=Date.now();var c=t&&!i;return i||(i=setTimeout(a,e)),c&&(l=n.apply(r,s),r=s=null),l};return h.clear=function(){i&&(clearTimeout(i),i=null)},h.flush=function(){i&&(l=n.apply(r,s),r=s=null,clearTimeout(i),i=null)},h}ar.debounce=ar;var ld=ar;class K{lineAt(e){if(e<0||e>this.length)throw new RangeError(`Invalid position ${e} in document of length ${this.length}`);return this.lineInner(e,!1,1,0)}line(e){if(e<1||e>this.lines)throw new RangeError(`Invalid line number ${e} in ${this.lines}-line document`);return this.lineInner(e,!0,1,0)}replace(e,t,i){[e,t]=si(this,e,t);let s=[];return this.decompose(0,e,s,2),i.length&&i.decompose(0,i.length,s,3),this.decompose(t,this.length,s,1),Ze.from(s,this.length-(t-e)+i.length)}append(e){return this.replace(this.length,this.length,e)}slice(e,t=this.length){[e,t]=si(this,e,t);let i=[];return this.decompose(e,t,i,0),Ze.from(i,t-e)}eq(e){if(e==this)return!0;if(e.length!=this.length||e.lines!=this.lines)return!1;let t=this.scanIdentical(e,1),i=this.length-this.scanIdentical(e,-1),s=new Di(this),r=new Di(e);for(let o=t,l=t;;){if(s.next(o),r.next(o),o=0,s.lineBreak!=r.lineBreak||s.done!=r.done||s.value!=r.value)return!1;if(l+=s.value.length,s.done||l>=i)return!0}}iter(e=1){return new Di(this,e)}iterRange(e,t=this.length){return new ah(this,e,t)}iterLines(e,t){let i;if(e==null)i=this.iter();else{t==null&&(t=this.lines+1);let s=this.line(e).from;i=this.iterRange(s,Math.max(s,t==this.lines+1?this.length:t<=1?0:this.line(t-1).to))}return new hh(i)}toString(){return this.sliceString(0)}toJSON(){let e=[];return this.flatten(e),e}constructor(){}static of(e){if(e.length==0)throw new RangeError("A document must have at least one line");return e.length==1&&!e[0]?K.empty:e.length<=32?new ae(e):Ze.from(ae.split(e,[]))}}class ae extends K{constructor(e,t=ad(e)){super(),this.text=e,this.length=t}get lines(){return this.text.length}get children(){return null}lineInner(e,t,i,s){for(let r=0;;r++){let o=this.text[r],l=s+o.length;if((t?i:l)>=e)return new hd(s,l,i,o);s=l+1,i++}}decompose(e,t,i,s){let r=e<=0&&t>=this.length?this:new ae(Ko(this.text,e,t),Math.min(t,this.length)-Math.max(0,e));if(s&1){let o=i.pop(),l=Sn(r.text,o.text.slice(),0,r.length);if(l.length<=32)i.push(new ae(l,o.length+r.length));else{let a=l.length>>1;i.push(new ae(l.slice(0,a)),new ae(l.slice(a)))}}else i.push(r)}replace(e,t,i){if(!(i instanceof ae))return super.replace(e,t,i);[e,t]=si(this,e,t);let s=Sn(this.text,Sn(i.text,Ko(this.text,0,e)),t),r=this.length+i.length-(t-e);return s.length<=32?new ae(s,r):Ze.from(ae.split(s,[]),r)}sliceString(e,t=this.length,i=`
1
+ import{c as Gi,j as d,u as df,r as B,_ as pf,a as to,s as W,U as mf,b as pe,B as G,C as F,d as gf,E as xf,e as Ya,f as yf,g as Mi,T as ne,F as bf,I as wf,S as vf,M as kf,h as io,p as zo,i as $o,k as Oi,A as rr,l as Sf,m as Cf,n as Af,o as Mf,q as Of,t as qo,v as Df,w as Tf,x as Vt,D as Pf,P as Rf,y as Xa,z as Bf,G as Yt,H as Ef,J as Bi,K as Rt,L as Za,N as no,O as eh,Q as Lf,R as or,V as kn,W as lr,X as jf,Y as If,Z as Nf,$ as th,a0 as so,a1 as us,a2 as Ff,a3 as Ae,a4 as fs,a5 as Wf,a6 as Vf,a7 as Hf,a8 as zf,a9 as $f,aa as qf,ab as Uo,ac as ih,ad as ro,ae as oo,af as nh,ag as lo,ah as sh,ai as rh,aj as oh,ak as lh,al as Uf,am as Go,an as Gf,ao as Kf,ap as Ts,aq as Qf,ar as Jf,as as _f,at as Yf,au as Xf,av as Zf}from"./index-JVRlSBvr.js";import{u as ed}from"./useApiTokens-XTOY616x.js";import{S as td}from"./StrategyItemContainer-JoMPKX3L.js";const ds=Gi(d.jsx("path",{d:"M12 2C6.47 2 2 6.47 2 12s4.47 10 10 10 10-4.47 10-10S17.53 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8zm3.59-13L12 10.59 8.41 7 7 8.41 10.59 12 7 15.59 8.41 17 12 13.41 15.59 17 17 15.59 13.41 12 17 8.41z"}),"CancelOutlined"),id=Gi(d.jsx("path",{d:"M16.59 7.58 10 14.17l-3.59-3.58L5 12l5 5 8-8zM12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z"}),"CheckCircleOutline"),nd=Gi(d.jsx("path",{d:"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8zm4.59-12.42L10 14.17l-2.59-2.58L6 13l4 4 8-8z"}),"CheckCircleOutlined"),sd=Gi(d.jsx("path",{d:"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1 17h-2v-2h2v2zm2.07-7.75-.9.92C13.45 12.9 13 13.5 13 15h-2v-.5c0-1.1.45-2.1 1.17-2.83l1.24-1.26c.37-.36.59-.86.59-1.41 0-1.1-.9-2-2-2s-2 .9-2 2H8c0-2.21 1.79-4 4-4s4 1.79 4 4c0 .88-.36 1.68-.93 2.25z"}),"Help"),rd=Gi(d.jsx("path",{d:"M1 21h22L12 2 1 21zm12-3h-2v-2h2v2zm0-4h-2v-4h2v4z"}),"WarningOutlined"),od=()=>{const{makeRequest:n,createRequest:e,errors:t,loading:i}=df({propagateErrors:!0}),s="api/admin/playground";return{evaluateAdvancedPlayground:async o=>{const l=`${s}/advanced`,a=e(l,{method:"POST",body:JSON.stringify(o)});return(await n(a.caller,a.id)).json()},errors:t,loading:i}};function ar(n,e,t){var i,s,r,o,l;e==null&&(e=100);function a(){var c=Date.now()-o;c<e&&c>=0?i=setTimeout(a,e-c):(i=null,t||(l=n.apply(r,s),r=s=null))}var h=function(){r=this,s=arguments,o=Date.now();var c=t&&!i;return i||(i=setTimeout(a,e)),c&&(l=n.apply(r,s),r=s=null),l};return h.clear=function(){i&&(clearTimeout(i),i=null)},h.flush=function(){i&&(l=n.apply(r,s),r=s=null,clearTimeout(i),i=null)},h}ar.debounce=ar;var ld=ar;class K{lineAt(e){if(e<0||e>this.length)throw new RangeError(`Invalid position ${e} in document of length ${this.length}`);return this.lineInner(e,!1,1,0)}line(e){if(e<1||e>this.lines)throw new RangeError(`Invalid line number ${e} in ${this.lines}-line document`);return this.lineInner(e,!0,1,0)}replace(e,t,i){[e,t]=si(this,e,t);let s=[];return this.decompose(0,e,s,2),i.length&&i.decompose(0,i.length,s,3),this.decompose(t,this.length,s,1),Ze.from(s,this.length-(t-e)+i.length)}append(e){return this.replace(this.length,this.length,e)}slice(e,t=this.length){[e,t]=si(this,e,t);let i=[];return this.decompose(e,t,i,0),Ze.from(i,t-e)}eq(e){if(e==this)return!0;if(e.length!=this.length||e.lines!=this.lines)return!1;let t=this.scanIdentical(e,1),i=this.length-this.scanIdentical(e,-1),s=new Di(this),r=new Di(e);for(let o=t,l=t;;){if(s.next(o),r.next(o),o=0,s.lineBreak!=r.lineBreak||s.done!=r.done||s.value!=r.value)return!1;if(l+=s.value.length,s.done||l>=i)return!0}}iter(e=1){return new Di(this,e)}iterRange(e,t=this.length){return new ah(this,e,t)}iterLines(e,t){let i;if(e==null)i=this.iter();else{t==null&&(t=this.lines+1);let s=this.line(e).from;i=this.iterRange(s,Math.max(s,t==this.lines+1?this.length:t<=1?0:this.line(t-1).to))}return new hh(i)}toString(){return this.sliceString(0)}toJSON(){let e=[];return this.flatten(e),e}constructor(){}static of(e){if(e.length==0)throw new RangeError("A document must have at least one line");return e.length==1&&!e[0]?K.empty:e.length<=32?new ae(e):Ze.from(ae.split(e,[]))}}class ae extends K{constructor(e,t=ad(e)){super(),this.text=e,this.length=t}get lines(){return this.text.length}get children(){return null}lineInner(e,t,i,s){for(let r=0;;r++){let o=this.text[r],l=s+o.length;if((t?i:l)>=e)return new hd(s,l,i,o);s=l+1,i++}}decompose(e,t,i,s){let r=e<=0&&t>=this.length?this:new ae(Ko(this.text,e,t),Math.min(t,this.length)-Math.max(0,e));if(s&1){let o=i.pop(),l=Sn(r.text,o.text.slice(),0,r.length);if(l.length<=32)i.push(new ae(l,o.length+r.length));else{let a=l.length>>1;i.push(new ae(l.slice(0,a)),new ae(l.slice(a)))}}else i.push(r)}replace(e,t,i){if(!(i instanceof ae))return super.replace(e,t,i);[e,t]=si(this,e,t);let s=Sn(this.text,Sn(i.text,Ko(this.text,0,e)),t),r=this.length+i.length-(t-e);return s.length<=32?new ae(s,r):Ze.from(ae.split(s,[]),r)}sliceString(e,t=this.length,i=`
2
2
  `){[e,t]=si(this,e,t);let s="";for(let r=0,o=0;r<=t&&o<this.text.length;o++){let l=this.text[o],a=r+l.length;r>e&&o&&(s+=i),e<a&&t>r&&(s+=l.slice(Math.max(0,e-r),t-r)),r=a+1}return s}flatten(e){for(let t of this.text)e.push(t)}scanIdentical(){return 0}static split(e,t){let i=[],s=-1;for(let r of e)i.push(r),s+=r.length+1,i.length==32&&(t.push(new ae(i,s)),i=[],s=-1);return s>-1&&t.push(new ae(i,s)),t}}class Ze extends K{constructor(e,t){super(),this.children=e,this.length=t,this.lines=0;for(let i of e)this.lines+=i.lines}lineInner(e,t,i,s){for(let r=0;;r++){let o=this.children[r],l=s+o.length,a=i+o.lines-1;if((t?a:l)>=e)return o.lineInner(e,t,i,s);s=l+1,i=a+1}}decompose(e,t,i,s){for(let r=0,o=0;o<=t&&r<this.children.length;r++){let l=this.children[r],a=o+l.length;if(e<=a&&t>=o){let h=s&((o<=e?1:0)|(a>=t?2:0));o>=e&&a<=t&&!h?i.push(l):l.decompose(e-o,t-o,i,h)}o=a+1}}replace(e,t,i){if([e,t]=si(this,e,t),i.lines<this.lines)for(let s=0,r=0;s<this.children.length;s++){let o=this.children[s],l=r+o.length;if(e>=r&&t<=l){let a=o.replace(e-r,t-r,i),h=this.lines-o.lines+a.lines;if(a.lines<h>>4&&a.lines>h>>6){let c=this.children.slice();return c[s]=a,new Ze(c,this.length-(t-e)+i.length)}return super.replace(r,l,a)}r=l+1}return super.replace(e,t,i)}sliceString(e,t=this.length,i=`
3
3
  `){[e,t]=si(this,e,t);let s="";for(let r=0,o=0;r<this.children.length&&o<=t;r++){let l=this.children[r],a=o+l.length;o>e&&r&&(s+=i),e<a&&t>o&&(s+=l.sliceString(e-o,t-o,i)),o=a+1}return s}flatten(e){for(let t of this.children)t.flatten(e)}scanIdentical(e,t){if(!(e instanceof Ze))return 0;let i=0,[s,r,o,l]=t>0?[0,0,this.children.length,e.children.length]:[this.children.length-1,e.children.length-1,-1,-1];for(;;s+=t,r+=t){if(s==o||r==l)return i;let a=this.children[s],h=e.children[r];if(a!=h)return i+a.scanIdentical(h,t);i+=a.length+1}}static from(e,t=e.reduce((i,s)=>i+s.length+1,-1)){let i=0;for(let p of e)i+=p.lines;if(i<32){let p=[];for(let m of e)m.flatten(p);return new ae(p,t)}let s=Math.max(32,i>>5),r=s<<1,o=s>>1,l=[],a=0,h=-1,c=[];function u(p){let m;if(p.lines>r&&p instanceof Ze)for(let y of p.children)u(y);else p.lines>o&&(a>o||!a)?(f(),l.push(p)):p instanceof ae&&a&&(m=c[c.length-1])instanceof ae&&p.lines+m.lines<=32?(a+=p.lines,h+=p.length+1,c[c.length-1]=new ae(m.text.concat(p.text),m.length+1+p.length)):(a+p.lines>s&&f(),a+=p.lines,h+=p.length+1,c.push(p))}function f(){a!=0&&(l.push(c.length==1?c[0]:Ze.from(c,h)),h=-1,a=c.length=0)}for(let p of e)u(p);return f(),l.length==1?l[0]:new Ze(l,t)}}K.empty=new ae([""],0);function ad(n){let e=-1;for(let t of n)e+=t.length+1;return e}function Sn(n,e,t=0,i=1e9){for(let s=0,r=0,o=!0;r<n.length&&s<=i;r++){let l=n[r],a=s+l.length;a>=t&&(a>i&&(l=l.slice(0,i-s)),s<t&&(l=l.slice(t-s)),o?(e[e.length-1]+=l,o=!1):e.push(l)),s=a+1}return e}function Ko(n,e,t){return Sn(n,[""],e,t)}class Di{constructor(e,t=1){this.dir=t,this.done=!1,this.lineBreak=!1,this.value="",this.nodes=[e],this.offsets=[t>0?1:(e instanceof ae?e.text.length:e.children.length)<<1]}nextInner(e,t){for(this.done=this.lineBreak=!1;;){let i=this.nodes.length-1,s=this.nodes[i],r=this.offsets[i],o=r>>1,l=s instanceof ae?s.text.length:s.children.length;if(o==(t>0?l:0)){if(i==0)return this.done=!0,this.value="",this;t>0&&this.offsets[i-1]++,this.nodes.pop(),this.offsets.pop()}else if((r&1)==(t>0?0:1)){if(this.offsets[i]+=t,e==0)return this.lineBreak=!0,this.value=`
4
4
  `,this;e--}else if(s instanceof ae){let a=s.text[o+(t<0?-1:0)];if(this.offsets[i]+=t,a.length>Math.max(0,e))return this.value=e==0?a:t>0?a.slice(e):a.slice(0,a.length-e),this;e-=a.length}else{let a=s.children[o+(t<0?-1:0)];e>a.length?(e-=a.length,this.offsets[i]+=t):(t<0&&this.offsets[i]--,this.nodes.push(a),this.offsets.push(t>0?1:(a instanceof ae?a.text.length:a.children.length)<<1))}}}next(e=0){return e<0&&(this.nextInner(-e,-this.dir),e=this.value.length),this.nextInner(e,this.dir)}}class ah{constructor(e,t,i){this.value="",this.done=!1,this.cursor=new Di(e,t>i?-1:1),this.pos=t>i?e.length:0,this.from=Math.min(t,i),this.to=Math.max(t,i)}nextInner(e,t){if(t<0?this.pos<=this.from:this.pos>=this.to)return this.value="",this.done=!0,this;e+=Math.max(0,t<0?this.pos-this.to:this.from-this.pos);let i=t<0?this.pos-this.from:this.to-this.pos;e>i&&(e=i),i-=e;let{value:s}=this.cursor.next(e);return this.pos+=(s.length+e)*t,this.value=s.length<=i?s:t<0?s.slice(s.length-i):s.slice(0,i),this.done=!this.value,this}next(e=0){return e<0?e=Math.max(e,this.from-this.pos):e>0&&(e=Math.min(e,this.to-this.pos)),this.nextInner(e,this.cursor.dir)}get lineBreak(){return this.cursor.lineBreak&&this.value!=""}}class hh{constructor(e){this.inner=e,this.afterBreak=!0,this.value="",this.done=!1}next(e=0){let{done:t,lineBreak:i,value:s}=this.inner.next(e);return t&&this.afterBreak?(this.value="",this.afterBreak=!1):t?(this.done=!0,this.value=""):i?this.afterBreak?this.value="":(this.afterBreak=!0,this.next()):(this.value=s,this.afterBreak=!1),this}get lineBreak(){return!1}}typeof Symbol<"u"&&(K.prototype[Symbol.iterator]=function(){return this.iter()},Di.prototype[Symbol.iterator]=ah.prototype[Symbol.iterator]=hh.prototype[Symbol.iterator]=function(){return this});class hd{constructor(e,t,i,s){this.from=e,this.to=t,this.number=i,this.text=s}get length(){return this.to-this.from}}function si(n,e,t){return e=Math.max(0,Math.min(n.length,e)),[e,Math.max(e,Math.min(n.length,t))]}let Xt="lc,34,7n,7,7b,19,,,,2,,2,,,20,b,1c,l,g,,2t,7,2,6,2,2,,4,z,,u,r,2j,b,1m,9,9,,o,4,,9,,3,,5,17,3,3b,f,,w,1j,,,,4,8,4,,3,7,a,2,t,,1m,,,,2,4,8,,9,,a,2,q,,2,2,1l,,4,2,4,2,2,3,3,,u,2,3,,b,2,1l,,4,5,,2,4,,k,2,m,6,,,1m,,,2,,4,8,,7,3,a,2,u,,1n,,,,c,,9,,14,,3,,1l,3,5,3,,4,7,2,b,2,t,,1m,,2,,2,,3,,5,2,7,2,b,2,s,2,1l,2,,,2,4,8,,9,,a,2,t,,20,,4,,2,3,,,8,,29,,2,7,c,8,2q,,2,9,b,6,22,2,r,,,,,,1j,e,,5,,2,5,b,,10,9,,2u,4,,6,,2,2,2,p,2,4,3,g,4,d,,2,2,6,,f,,jj,3,qa,3,t,3,t,2,u,2,1s,2,,7,8,,2,b,9,,19,3,3b,2,y,,3a,3,4,2,9,,6,3,63,2,2,,1m,,,7,,,,,2,8,6,a,2,,1c,h,1r,4,1c,7,,,5,,14,9,c,2,w,4,2,2,,3,1k,,,2,3,,,3,1m,8,2,2,48,3,,d,,7,4,,6,,3,2,5i,1m,,5,ek,,5f,x,2da,3,3x,,2o,w,fe,6,2x,2,n9w,4,,a,w,2,28,2,7k,,3,,4,,p,2,5,,47,2,q,i,d,,12,8,p,b,1a,3,1c,,2,4,2,2,13,,1v,6,2,2,2,2,c,,8,,1b,,1f,,,3,2,2,5,2,,,16,2,8,,6m,,2,,4,,fn4,,kh,g,g,g,a6,2,gt,,6a,,45,5,1ae,3,,2,5,4,14,3,4,,4l,2,fx,4,ar,2,49,b,4w,,1i,f,1k,3,1d,4,2,2,1x,3,10,5,,8,1q,,c,2,1g,9,a,4,2,,2n,3,2,,,2,6,,4g,,3,8,l,2,1l,2,,,,,m,,e,7,3,5,5f,8,2,3,,,n,,29,,2,6,,,2,,,2,,2,6j,,2,4,6,2,,2,r,2,2d,8,2,,,2,2y,,,,2,6,,,2t,3,2,4,,5,77,9,,2,6t,,a,2,,,4,,40,4,2,2,4,,w,a,14,6,2,4,8,,9,6,2,3,1a,d,,2,ba,7,,6,,,2a,m,2,7,,2,,2,3e,6,3,,,2,,7,,,20,2,3,,,,9n,2,f0b,5,1n,7,t4,,1r,4,29,,f5k,2,43q,,,3,4,5,8,8,2,7,u,4,44,3,1iz,1j,4,1e,8,,e,,m,5,,f,11s,7,,h,2,7,,2,,5,79,7,c5,4,15s,7,31,7,240,5,gx7k,2o,3k,6o".split(",").map(n=>n?parseInt(n,36):1);for(let n=1;n<Xt.length;n++)Xt[n]+=Xt[n-1];function cd(n){for(let e=1;e<Xt.length;e+=2)if(Xt[e]>n)return Xt[e-1]<=n;return!1}function Qo(n){return n>=127462&&n<=127487}const Jo=8205;function Me(n,e,t=!0,i=!0){return(t?ch:ud)(n,e,i)}function ch(n,e,t){if(e==n.length)return e;e&&uh(n.charCodeAt(e))&&fh(n.charCodeAt(e-1))&&e--;let i=ge(n,e);for(e+=je(i);e<n.length;){let s=ge(n,e);if(i==Jo||s==Jo||t&&cd(s))e+=je(s),i=s;else if(Qo(s)){let r=0,o=e-2;for(;o>=0&&Qo(ge(n,o));)r++,o-=2;if(r%2==0)break;e+=2}else break}return e}function ud(n,e,t){for(;e>0;){let i=ch(n,e-2,t);if(i<e)return i;e--}return 0}function uh(n){return n>=56320&&n<57344}function fh(n){return n>=55296&&n<56320}function ge(n,e){let t=n.charCodeAt(e);if(!fh(t)||e+1==n.length)return t;let i=n.charCodeAt(e+1);return uh(i)?(t-55296<<10)+(i-56320)+65536:t}function ao(n){return n<=65535?String.fromCharCode(n):(n-=65536,String.fromCharCode((n>>10)+55296,(n&1023)+56320))}function je(n){return n<65536?1:2}const hr=/\r\n?|\n/;var Ce=function(n){return n[n.Simple=0]="Simple",n[n.TrackDel=1]="TrackDel",n[n.TrackBefore=2]="TrackBefore",n[n.TrackAfter=3]="TrackAfter",n}(Ce||(Ce={}));class it{constructor(e){this.sections=e}get length(){let e=0;for(let t=0;t<this.sections.length;t+=2)e+=this.sections[t];return e}get newLength(){let e=0;for(let t=0;t<this.sections.length;t+=2){let i=this.sections[t+1];e+=i<0?this.sections[t]:i}return e}get empty(){return this.sections.length==0||this.sections.length==2&&this.sections[1]<0}iterGaps(e){for(let t=0,i=0,s=0;t<this.sections.length;){let r=this.sections[t++],o=this.sections[t++];o<0?(e(i,s,r),s+=r):s+=o,i+=r}}iterChangedRanges(e,t=!1){cr(this,e,t)}get invertedDesc(){let e=[];for(let t=0;t<this.sections.length;){let i=this.sections[t++],s=this.sections[t++];s<0?e.push(i,s):e.push(s,i)}return new it(e)}composeDesc(e){return this.empty?e:e.empty?this:dh(this,e)}mapDesc(e,t=!1){return e.empty?this:ur(this,e,t)}mapPos(e,t=-1,i=Ce.Simple){let s=0,r=0;for(let o=0;o<this.sections.length;){let l=this.sections[o++],a=this.sections[o++],h=s+l;if(a<0){if(h>e)return r+(e-s);r+=l}else{if(i!=Ce.Simple&&h>=e&&(i==Ce.TrackDel&&s<e&&h>e||i==Ce.TrackBefore&&s<e||i==Ce.TrackAfter&&h>e))return null;if(h>e||h==e&&t<0&&!l)return e==s||t<0?r:r+a;r+=a}s=h}if(e>s)throw new RangeError(`Position ${e} is out of range for changeset of length ${s}`);return r}touchesRange(e,t=e){for(let i=0,s=0;i<this.sections.length&&s<=t;){let r=this.sections[i++],o=this.sections[i++],l=s+r;if(o>=0&&s<=t&&l>=e)return s<e&&l>t?"cover":!0;s=l}return!1}toString(){let e="";for(let t=0;t<this.sections.length;){let i=this.sections[t++],s=this.sections[t++];e+=(e?" ":"")+i+(s>=0?":"+s:"")}return e}toJSON(){return this.sections}static fromJSON(e){if(!Array.isArray(e)||e.length%2||e.some(t=>typeof t!="number"))throw new RangeError("Invalid JSON representation of ChangeDesc");return new it(e)}static create(e){return new it(e)}}class ue extends it{constructor(e,t){super(e),this.inserted=t}apply(e){if(this.length!=e.length)throw new RangeError("Applying change set to a document with the wrong length");return cr(this,(t,i,s,r,o)=>e=e.replace(s,s+(i-t),o),!1),e}mapDesc(e,t=!1){return ur(this,e,t,!0)}invert(e){let t=this.sections.slice(),i=[];for(let s=0,r=0;s<t.length;s+=2){let o=t[s],l=t[s+1];if(l>=0){t[s]=l,t[s+1]=o;let a=s>>1;for(;i.length<a;)i.push(K.empty);i.push(o?e.slice(r,r+o):K.empty)}r+=o}return new ue(t,i)}compose(e){return this.empty?e:e.empty?this:dh(this,e,!0)}map(e,t=!1){return e.empty?this:ur(this,e,t,!0)}iterChanges(e,t=!1){cr(this,e,t)}get desc(){return it.create(this.sections)}filter(e){let t=[],i=[],s=[],r=new Ei(this);e:for(let o=0,l=0;;){let a=o==e.length?1e9:e[o++];for(;l<a||l==a&&r.len==0;){if(r.done)break e;let c=Math.min(r.len,a-l);we(s,c,-1);let u=r.ins==-1?-1:r.off==0?r.ins:0;we(t,c,u),u>0&&bt(i,t,r.text),r.forward(c),l+=c}let h=e[o++];for(;l<h;){if(r.done)break e;let c=Math.min(r.len,h-l);we(t,c,-1),we(s,c,r.ins==-1?-1:r.off==0?r.ins:0),r.forward(c),l+=c}}return{changes:new ue(t,i),filtered:it.create(s)}}toJSON(){let e=[];for(let t=0;t<this.sections.length;t+=2){let i=this.sections[t],s=this.sections[t+1];s<0?e.push(i):s==0?e.push([i]):e.push([i].concat(this.inserted[t>>1].toJSON()))}return e}static of(e,t,i){let s=[],r=[],o=0,l=null;function a(c=!1){if(!c&&!s.length)return;o<t&&we(s,t-o,-1);let u=new ue(s,r);l=l?l.compose(u.map(l)):u,s=[],r=[],o=0}function h(c){if(Array.isArray(c))for(let u of c)h(u);else if(c instanceof ue){if(c.length!=t)throw new RangeError(`Mismatched change set length (got ${c.length}, expected ${t})`);a(),l=l?l.compose(c.map(l)):c}else{let{from:u,to:f=u,insert:p}=c;if(u>f||u<0||f>t)throw new RangeError(`Invalid change range ${u} to ${f} (in doc of length ${t})`);let m=p?typeof p=="string"?K.of(p.split(i||hr)):p:K.empty,y=m.length;if(u==f&&y==0)return;u<o&&a(),u>o&&we(s,u-o,-1),we(s,f-u,y),bt(r,s,m),o=f}}return h(e),a(!l),l}static empty(e){return new ue(e?[e,-1]:[],[])}static fromJSON(e){if(!Array.isArray(e))throw new RangeError("Invalid JSON representation of ChangeSet");let t=[],i=[];for(let s=0;s<e.length;s++){let r=e[s];if(typeof r=="number")t.push(r,-1);else{if(!Array.isArray(r)||typeof r[0]!="number"||r.some((o,l)=>l&&typeof o!="string"))throw new RangeError("Invalid JSON representation of ChangeSet");if(r.length==1)t.push(r[0],0);else{for(;i.length<s;)i.push(K.empty);i[s]=K.of(r.slice(1)),t.push(r[0],i[s].length)}}}return new ue(t,i)}static createSet(e,t){return new ue(e,t)}}function we(n,e,t,i=!1){if(e==0&&t<=0)return;let s=n.length-2;s>=0&&t<=0&&t==n[s+1]?n[s]+=e:e==0&&n[s]==0?n[s+1]+=t:i?(n[s]+=e,n[s+1]+=t):n.push(e,t)}function bt(n,e,t){if(t.length==0)return;let i=e.length-2>>1;if(i<n.length)n[n.length-1]=n[n.length-1].append(t);else{for(;n.length<i;)n.push(K.empty);n.push(t)}}function cr(n,e,t){let i=n.inserted;for(let s=0,r=0,o=0;o<n.sections.length;){let l=n.sections[o++],a=n.sections[o++];if(a<0)s+=l,r+=l;else{let h=s,c=r,u=K.empty;for(;h+=l,c+=a,a&&i&&(u=u.append(i[o-2>>1])),!(t||o==n.sections.length||n.sections[o+1]<0);)l=n.sections[o++],a=n.sections[o++];e(s,h,r,c,u),s=h,r=c}}}function ur(n,e,t,i=!1){let s=[],r=i?[]:null,o=new Ei(n),l=new Ei(e);for(let a=-1;;)if(o.ins==-1&&l.ins==-1){let h=Math.min(o.len,l.len);we(s,h,-1),o.forward(h),l.forward(h)}else if(l.ins>=0&&(o.ins<0||a==o.i||o.off==0&&(l.len<o.len||l.len==o.len&&!t))){let h=l.len;for(we(s,l.ins,-1);h;){let c=Math.min(o.len,h);o.ins>=0&&a<o.i&&o.len<=c&&(we(s,0,o.ins),r&&bt(r,s,o.text),a=o.i),o.forward(c),h-=c}l.next()}else if(o.ins>=0){let h=0,c=o.len;for(;c;)if(l.ins==-1){let u=Math.min(c,l.len);h+=u,c-=u,l.forward(u)}else if(l.ins==0&&l.len<c)c-=l.len,l.next();else break;we(s,h,a<o.i?o.ins:0),r&&a<o.i&&bt(r,s,o.text),a=o.i,o.forward(o.len-c)}else{if(o.done&&l.done)return r?ue.createSet(s,r):it.create(s);throw new Error("Mismatched change set lengths")}}function dh(n,e,t=!1){let i=[],s=t?[]:null,r=new Ei(n),o=new Ei(e);for(let l=!1;;){if(r.done&&o.done)return s?ue.createSet(i,s):it.create(i);if(r.ins==0)we(i,r.len,0,l),r.next();else if(o.len==0&&!o.done)we(i,0,o.ins,l),s&&bt(s,i,o.text),o.next();else{if(r.done||o.done)throw new Error("Mismatched change set lengths");{let a=Math.min(r.len2,o.len),h=i.length;if(r.ins==-1){let c=o.ins==-1?-1:o.off?0:o.ins;we(i,a,c,l),s&&c&&bt(s,i,o.text)}else o.ins==-1?(we(i,r.off?0:r.len,a,l),s&&bt(s,i,r.textBit(a))):(we(i,r.off?0:r.len,o.off?0:o.ins,l),s&&!o.off&&bt(s,i,o.text));l=(r.ins>a||o.ins>=0&&o.len>a)&&(l||i.length>h),r.forward2(a),o.forward(a)}}}}class Ei{constructor(e){this.set=e,this.i=0,this.next()}next(){let{sections:e}=this.set;this.i<e.length?(this.len=e[this.i++],this.ins=e[this.i++]):(this.len=0,this.ins=-2),this.off=0}get done(){return this.ins==-2}get len2(){return this.ins<0?this.len:this.ins}get text(){let{inserted:e}=this.set,t=this.i-2>>1;return t>=e.length?K.empty:e[t]}textBit(e){let{inserted:t}=this.set,i=this.i-2>>1;return i>=t.length&&!e?K.empty:t[i].slice(this.off,e==null?void 0:this.off+e)}forward(e){e==this.len?this.next():(this.len-=e,this.off+=e)}forward2(e){this.ins==-1?this.forward(e):e==this.ins?this.next():(this.ins-=e,this.off+=e)}}class It{constructor(e,t,i){this.from=e,this.to=t,this.flags=i}get anchor(){return this.flags&32?this.to:this.from}get head(){return this.flags&32?this.from:this.to}get empty(){return this.from==this.to}get assoc(){return this.flags&8?-1:this.flags&16?1:0}get bidiLevel(){let e=this.flags&7;return e==7?null:e}get goalColumn(){let e=this.flags>>6;return e==16777215?void 0:e}map(e,t=-1){let i,s;return this.empty?i=s=e.mapPos(this.from,t):(i=e.mapPos(this.from,1),s=e.mapPos(this.to,-1)),i==this.from&&s==this.to?this:new It(i,s,this.flags)}extend(e,t=e){if(e<=this.anchor&&t>=this.anchor)return k.range(e,t);let i=Math.abs(e-this.anchor)>Math.abs(t-this.anchor)?e:t;return k.range(this.anchor,i)}eq(e){return this.anchor==e.anchor&&this.head==e.head}toJSON(){return{anchor:this.anchor,head:this.head}}static fromJSON(e){if(!e||typeof e.anchor!="number"||typeof e.head!="number")throw new RangeError("Invalid JSON representation for SelectionRange");return k.range(e.anchor,e.head)}static create(e,t,i){return new It(e,t,i)}}class k{constructor(e,t){this.ranges=e,this.mainIndex=t}map(e,t=-1){return e.empty?this:k.create(this.ranges.map(i=>i.map(e,t)),this.mainIndex)}eq(e){if(this.ranges.length!=e.ranges.length||this.mainIndex!=e.mainIndex)return!1;for(let t=0;t<this.ranges.length;t++)if(!this.ranges[t].eq(e.ranges[t]))return!1;return!0}get main(){return this.ranges[this.mainIndex]}asSingle(){return this.ranges.length==1?this:new k([this.main],0)}addRange(e,t=!0){return k.create([e].concat(this.ranges),t?0:this.mainIndex+1)}replaceRange(e,t=this.mainIndex){let i=this.ranges.slice();return i[t]=e,k.create(i,this.mainIndex)}toJSON(){return{ranges:this.ranges.map(e=>e.toJSON()),main:this.mainIndex}}static fromJSON(e){if(!e||!Array.isArray(e.ranges)||typeof e.main!="number"||e.main>=e.ranges.length)throw new RangeError("Invalid JSON representation for EditorSelection");return new k(e.ranges.map(t=>It.fromJSON(t)),e.main)}static single(e,t=e){return new k([k.range(e,t)],0)}static create(e,t=0){if(e.length==0)throw new RangeError("A selection needs at least one range");for(let i=0,s=0;s<e.length;s++){let r=e[s];if(r.empty?r.from<=i:r.from<i)return k.normalized(e.slice(),t);i=r.to}return new k(e,t)}static cursor(e,t=0,i,s){return It.create(e,e,(t==0?0:t<0?8:16)|(i==null?7:Math.min(6,i))|(s??16777215)<<6)}static range(e,t,i,s){let r=(i??16777215)<<6|(s==null?7:Math.min(6,s));return t<e?It.create(t,e,48|r):It.create(e,t,(t>e?8:0)|r)}static normalized(e,t=0){let i=e[t];e.sort((s,r)=>s.from-r.from),t=e.indexOf(i);for(let s=1;s<e.length;s++){let r=e[s],o=e[s-1];if(r.empty?r.from<=o.to:r.from<o.to){let l=o.from,a=Math.max(r.to,o.to);s<=t&&t--,e.splice(--s,2,r.anchor>r.head?k.range(a,l):k.range(l,a))}}return new k(e,t)}}function ph(n,e){for(let t of n.ranges)if(t.to>e)throw new RangeError("Selection points outside of document")}let ho=0;class E{constructor(e,t,i,s,r){this.combine=e,this.compareInput=t,this.compare=i,this.isStatic=s,this.id=ho++,this.default=e([]),this.extensions=typeof r=="function"?r(this):r}get reader(){return this}static define(e={}){return new E(e.combine||(t=>t),e.compareInput||((t,i)=>t===i),e.compare||(e.combine?(t,i)=>t===i:co),!!e.static,e.enables)}of(e){return new Cn([],this,0,e)}compute(e,t){if(this.isStatic)throw new Error("Can't compute a static facet");return new Cn(e,this,1,t)}computeN(e,t){if(this.isStatic)throw new Error("Can't compute a static facet");return new Cn(e,this,2,t)}from(e,t){return t||(t=i=>i),this.compute([e],i=>t(i.field(e)))}}function co(n,e){return n==e||n.length==e.length&&n.every((t,i)=>t===e[i])}class Cn{constructor(e,t,i,s){this.dependencies=e,this.facet=t,this.type=i,this.value=s,this.id=ho++}dynamicSlot(e){var t;let i=this.value,s=this.facet.compareInput,r=this.id,o=e[r]>>1,l=this.type==2,a=!1,h=!1,c=[];for(let u of this.dependencies)u=="doc"?a=!0:u=="selection"?h=!0:((t=e[u.id])!==null&&t!==void 0?t:1)&1||c.push(e[u.id]);return{create(u){return u.values[o]=i(u),1},update(u,f){if(a&&f.docChanged||h&&(f.docChanged||f.selection)||fr(u,c)){let p=i(u);if(l?!_o(p,u.values[o],s):!s(p,u.values[o]))return u.values[o]=p,1}return 0},reconfigure:(u,f)=>{let p,m=f.config.address[r];if(m!=null){let y=Ln(f,m);if(this.dependencies.every(x=>x instanceof E?f.facet(x)===u.facet(x):x instanceof be?f.field(x,!1)==u.field(x,!1):!0)||(l?_o(p=i(u),y,s):s(p=i(u),y)))return u.values[o]=y,0}else p=i(u);return u.values[o]=p,1}}}}function _o(n,e,t){if(n.length!=e.length)return!1;for(let i=0;i<n.length;i++)if(!t(n[i],e[i]))return!1;return!0}function fr(n,e){let t=!1;for(let i of e)Ti(n,i)&1&&(t=!0);return t}function fd(n,e,t){let i=t.map(a=>n[a.id]),s=t.map(a=>a.type),r=i.filter(a=>!(a&1)),o=n[e.id]>>1;function l(a){let h=[];for(let c=0;c<i.length;c++){let u=Ln(a,i[c]);if(s[c]==2)for(let f of u)h.push(f);else h.push(u)}return e.combine(h)}return{create(a){for(let h of i)Ti(a,h);return a.values[o]=l(a),1},update(a,h){if(!fr(a,r))return 0;let c=l(a);return e.compare(c,a.values[o])?0:(a.values[o]=c,1)},reconfigure(a,h){let c=fr(a,i),u=h.config.facets[e.id],f=h.facet(e);if(u&&!c&&co(t,u))return a.values[o]=f,0;let p=l(a);return e.compare(p,f)?(a.values[o]=f,0):(a.values[o]=p,1)}}}const Yo=E.define({static:!0});class be{constructor(e,t,i,s,r){this.id=e,this.createF=t,this.updateF=i,this.compareF=s,this.spec=r,this.provides=void 0}static define(e){let t=new be(ho++,e.create,e.update,e.compare||((i,s)=>i===s),e);return e.provide&&(t.provides=e.provide(t)),t}create(e){let t=e.facet(Yo).find(i=>i.field==this);return((t==null?void 0:t.create)||this.createF)(e)}slot(e){let t=e[this.id]>>1;return{create:i=>(i.values[t]=this.create(i),1),update:(i,s)=>{let r=i.values[t],o=this.updateF(r,s);return this.compareF(r,o)?0:(i.values[t]=o,1)},reconfigure:(i,s)=>s.config.address[this.id]!=null?(i.values[t]=s.field(this),0):(i.values[t]=this.create(i),1)}}init(e){return[this,Yo.of({field:this,create:e})]}get extension(){return this}}const Lt={lowest:4,low:3,default:2,high:1,highest:0};function gi(n){return e=>new mh(e,n)}const di={highest:gi(Lt.highest),high:gi(Lt.high),default:gi(Lt.default),low:gi(Lt.low),lowest:gi(Lt.lowest)};class mh{constructor(e,t){this.inner=e,this.prec=t}}class ps{of(e){return new dr(this,e)}reconfigure(e){return ps.reconfigure.of({compartment:this,extension:e})}get(e){return e.config.compartments.get(this)}}class dr{constructor(e,t){this.compartment=e,this.inner=t}}class En{constructor(e,t,i,s,r,o){for(this.base=e,this.compartments=t,this.dynamicSlots=i,this.address=s,this.staticValues=r,this.facets=o,this.statusTemplate=[];this.statusTemplate.length<i.length;)this.statusTemplate.push(0)}staticFacet(e){let t=this.address[e.id];return t==null?e.default:this.staticValues[t>>1]}static resolve(e,t,i){let s=[],r=Object.create(null),o=new Map;for(let f of dd(e,t,o))f instanceof be?s.push(f):(r[f.facet.id]||(r[f.facet.id]=[])).push(f);let l=Object.create(null),a=[],h=[];for(let f of s)l[f.id]=h.length<<1,h.push(p=>f.slot(p));let c=i==null?void 0:i.config.facets;for(let f in r){let p=r[f],m=p[0].facet,y=c&&c[f]||[];if(p.every(x=>x.type==0))if(l[m.id]=a.length<<1|1,co(y,p))a.push(i.facet(m));else{let x=m.combine(p.map(b=>b.value));a.push(i&&m.compare(x,i.facet(m))?i.facet(m):x)}else{for(let x of p)x.type==0?(l[x.id]=a.length<<1|1,a.push(x.value)):(l[x.id]=h.length<<1,h.push(b=>x.dynamicSlot(b)));l[m.id]=h.length<<1,h.push(x=>fd(x,m,p))}}let u=h.map(f=>f(l));return new En(e,o,u,l,a,r)}}function dd(n,e,t){let i=[[],[],[],[],[]],s=new Map;function r(o,l){let a=s.get(o);if(a!=null){if(a<=l)return;let h=i[a].indexOf(o);h>-1&&i[a].splice(h,1),o instanceof dr&&t.delete(o.compartment)}if(s.set(o,l),Array.isArray(o))for(let h of o)r(h,l);else if(o instanceof dr){if(t.has(o.compartment))throw new RangeError("Duplicate use of compartment in extensions");let h=e.get(o.compartment)||o.inner;t.set(o.compartment,h),r(h,l)}else if(o instanceof mh)r(o.inner,o.prec);else if(o instanceof be)i[l].push(o),o.provides&&r(o.provides,l);else if(o instanceof Cn)i[l].push(o),o.facet.extensions&&r(o.facet.extensions,Lt.default);else{let h=o.extension;if(!h)throw new Error(`Unrecognized extension value in extension set (${o}). This sometimes happens because multiple instances of @codemirror/state are loaded, breaking instanceof checks.`);r(h,l)}}return r(n,Lt.default),i.reduce((o,l)=>o.concat(l))}function Ti(n,e){if(e&1)return 2;let t=e>>1,i=n.status[t];if(i==4)throw new Error("Cyclic dependency between fields and/or facets");if(i&2)return i;n.status[t]=4;let s=n.computeSlot(n,n.config.dynamicSlots[t]);return n.status[t]=2|s}function Ln(n,e){return e&1?n.config.staticValues[e>>1]:n.values[e>>1]}const gh=E.define(),pr=E.define({combine:n=>n.some(e=>e),static:!0}),xh=E.define({combine:n=>n.length?n[0]:void 0,static:!0}),yh=E.define(),bh=E.define(),wh=E.define(),vh=E.define({combine:n=>n.length?n[0]:!1});class ut{constructor(e,t){this.type=e,this.value=t}static define(){return new pd}}class pd{of(e){return new ut(this,e)}}class md{constructor(e){this.map=e}of(e){return new V(this,e)}}class V{constructor(e,t){this.type=e,this.value=t}map(e){let t=this.type.map(this.value,e);return t===void 0?void 0:t==this.value?this:new V(this.type,t)}is(e){return this.type==e}static define(e={}){return new md(e.map||(t=>t))}static mapEffects(e,t){if(!e.length)return e;let i=[];for(let s of e){let r=s.map(t);r&&i.push(r)}return i}}V.reconfigure=V.define();V.appendConfig=V.define();class fe{constructor(e,t,i,s,r,o){this.startState=e,this.changes=t,this.selection=i,this.effects=s,this.annotations=r,this.scrollIntoView=o,this._doc=null,this._state=null,i&&ph(i,t.newLength),r.some(l=>l.type==fe.time)||(this.annotations=r.concat(fe.time.of(Date.now())))}static create(e,t,i,s,r,o){return new fe(e,t,i,s,r,o)}get newDoc(){return this._doc||(this._doc=this.changes.apply(this.startState.doc))}get newSelection(){return this.selection||this.startState.selection.map(this.changes)}get state(){return this._state||this.startState.applyTransaction(this),this._state}annotation(e){for(let t of this.annotations)if(t.type==e)return t.value}get docChanged(){return!this.changes.empty}get reconfigured(){return this.startState.config!=this.state.config}isUserEvent(e){let t=this.annotation(fe.userEvent);return!!(t&&(t==e||t.length>e.length&&t.slice(0,e.length)==e&&t[e.length]=="."))}}fe.time=ut.define();fe.userEvent=ut.define();fe.addToHistory=ut.define();fe.remote=ut.define();function gd(n,e){let t=[];for(let i=0,s=0;;){let r,o;if(i<n.length&&(s==e.length||e[s]>=n[i]))r=n[i++],o=n[i++];else if(s<e.length)r=e[s++],o=e[s++];else return t;!t.length||t[t.length-1]<r?t.push(r,o):t[t.length-1]<o&&(t[t.length-1]=o)}}function kh(n,e,t){var i;let s,r,o;return t?(s=e.changes,r=ue.empty(e.changes.length),o=n.changes.compose(e.changes)):(s=e.changes.map(n.changes),r=n.changes.mapDesc(e.changes,!0),o=n.changes.compose(s)),{changes:o,selection:e.selection?e.selection.map(r):(i=n.selection)===null||i===void 0?void 0:i.map(s),effects:V.mapEffects(n.effects,s).concat(V.mapEffects(e.effects,r)),annotations:n.annotations.length?n.annotations.concat(e.annotations):e.annotations,scrollIntoView:n.scrollIntoView||e.scrollIntoView}}function mr(n,e,t){let i=e.selection,s=Zt(e.annotations);return e.userEvent&&(s=s.concat(fe.userEvent.of(e.userEvent))),{changes:e.changes instanceof ue?e.changes:ue.of(e.changes||[],t,n.facet(xh)),selection:i&&(i instanceof k?i:k.single(i.anchor,i.head)),effects:Zt(e.effects),annotations:s,scrollIntoView:!!e.scrollIntoView}}function Sh(n,e,t){let i=mr(n,e.length?e[0]:{},n.doc.length);e.length&&e[0].filter===!1&&(t=!1);for(let r=1;r<e.length;r++){e[r].filter===!1&&(t=!1);let o=!!e[r].sequential;i=kh(i,mr(n,e[r],o?i.changes.newLength:n.doc.length),o)}let s=fe.create(n,i.changes,i.selection,i.effects,i.annotations,i.scrollIntoView);return yd(t?xd(s):s)}function xd(n){let e=n.startState,t=!0;for(let s of e.facet(yh)){let r=s(n);if(r===!1){t=!1;break}Array.isArray(r)&&(t=t===!0?r:gd(t,r))}if(t!==!0){let s,r;if(t===!1)r=n.changes.invertedDesc,s=ue.empty(e.doc.length);else{let o=n.changes.filter(t);s=o.changes,r=o.filtered.mapDesc(o.changes).invertedDesc}n=fe.create(e,s,n.selection&&n.selection.map(r),V.mapEffects(n.effects,r),n.annotations,n.scrollIntoView)}let i=e.facet(bh);for(let s=i.length-1;s>=0;s--){let r=i[s](n);r instanceof fe?n=r:Array.isArray(r)&&r.length==1&&r[0]instanceof fe?n=r[0]:n=Sh(e,Zt(r),!1)}return n}function yd(n){let e=n.startState,t=e.facet(wh),i=n;for(let s=t.length-1;s>=0;s--){let r=t[s](n);r&&Object.keys(r).length&&(i=kh(i,mr(e,r,n.changes.newLength),!0))}return i==n?n:fe.create(e,n.changes,n.selection,i.effects,i.annotations,i.scrollIntoView)}const bd=[];function Zt(n){return n==null?bd:Array.isArray(n)?n:[n]}var se=function(n){return n[n.Word=0]="Word",n[n.Space=1]="Space",n[n.Other=2]="Other",n}(se||(se={}));const wd=/[\u00df\u0587\u0590-\u05f4\u0600-\u06ff\u3040-\u309f\u30a0-\u30ff\u3400-\u4db5\u4e00-\u9fcc\uac00-\ud7af]/;let gr;try{gr=new RegExp("[\\p{Alphabetic}\\p{Number}_]","u")}catch{}function vd(n){if(gr)return gr.test(n);for(let e=0;e<n.length;e++){let t=n[e];if(/\w/.test(t)||t>"€"&&(t.toUpperCase()!=t.toLowerCase()||wd.test(t)))return!0}return!1}function kd(n){return e=>{if(!/\S/.test(e))return se.Space;if(vd(e))return se.Word;for(let t=0;t<n.length;t++)if(e.indexOf(n[t])>-1)return se.Word;return se.Other}}class U{constructor(e,t,i,s,r,o){this.config=e,this.doc=t,this.selection=i,this.values=s,this.status=e.statusTemplate.slice(),this.computeSlot=r,o&&(o._state=this);for(let l=0;l<this.config.dynamicSlots.length;l++)Ti(this,l<<1);this.computeSlot=null}field(e,t=!0){let i=this.config.address[e.id];if(i==null){if(t)throw new RangeError("Field is not present in this state");return}return Ti(this,i),Ln(this,i)}update(...e){return Sh(this,e,!0)}applyTransaction(e){let t=this.config,{base:i,compartments:s}=t;for(let l of e.effects)l.is(ps.reconfigure)?(t&&(s=new Map,t.compartments.forEach((a,h)=>s.set(h,a)),t=null),s.set(l.value.compartment,l.value.extension)):l.is(V.reconfigure)?(t=null,i=l.value):l.is(V.appendConfig)&&(t=null,i=Zt(i).concat(l.value));let r;t?r=e.startState.values.slice():(t=En.resolve(i,s,this),r=new U(t,this.doc,this.selection,t.dynamicSlots.map(()=>null),(a,h)=>h.reconfigure(a,this),null).values);let o=e.startState.facet(pr)?e.newSelection:e.newSelection.asSingle();new U(t,e.newDoc,o,r,(l,a)=>a.update(l,e),e)}replaceSelection(e){return typeof e=="string"&&(e=this.toText(e)),this.changeByRange(t=>({changes:{from:t.from,to:t.to,insert:e},range:k.cursor(t.from+e.length)}))}changeByRange(e){let t=this.selection,i=e(t.ranges[0]),s=this.changes(i.changes),r=[i.range],o=Zt(i.effects);for(let l=1;l<t.ranges.length;l++){let a=e(t.ranges[l]),h=this.changes(a.changes),c=h.map(s);for(let f=0;f<l;f++)r[f]=r[f].map(c);let u=s.mapDesc(h,!0);r.push(a.range.map(u)),s=s.compose(c),o=V.mapEffects(o,c).concat(V.mapEffects(Zt(a.effects),u))}return{changes:s,selection:k.create(r,t.mainIndex),effects:o}}changes(e=[]){return e instanceof ue?e:ue.of(e,this.doc.length,this.facet(U.lineSeparator))}toText(e){return K.of(e.split(this.facet(U.lineSeparator)||hr))}sliceDoc(e=0,t=this.doc.length){return this.doc.sliceString(e,t,this.lineBreak)}facet(e){let t=this.config.address[e.id];return t==null?e.default:(Ti(this,t),Ln(this,t))}toJSON(e){let t={doc:this.sliceDoc(),selection:this.selection.toJSON()};if(e)for(let i in e){let s=e[i];s instanceof be&&this.config.address[s.id]!=null&&(t[i]=s.spec.toJSON(this.field(e[i]),this))}return t}static fromJSON(e,t={},i){if(!e||typeof e.doc!="string")throw new RangeError("Invalid JSON representation for EditorState");let s=[];if(i){for(let r in i)if(Object.prototype.hasOwnProperty.call(e,r)){let o=i[r],l=e[r];s.push(o.init(a=>o.spec.fromJSON(l,a)))}}return U.create({doc:e.doc,selection:k.fromJSON(e.selection),extensions:t.extensions?s.concat([t.extensions]):s})}static create(e={}){let t=En.resolve(e.extensions||[],new Map),i=e.doc instanceof K?e.doc:K.of((e.doc||"").split(t.staticFacet(U.lineSeparator)||hr)),s=e.selection?e.selection instanceof k?e.selection:k.single(e.selection.anchor,e.selection.head):k.single(0);return ph(s,i.length),t.staticFacet(pr)||(s=s.asSingle()),new U(t,i,s,t.dynamicSlots.map(()=>null),(r,o)=>o.create(r),null)}get tabSize(){return this.facet(U.tabSize)}get lineBreak(){return this.facet(U.lineSeparator)||`
@@ -1,4 +1,4 @@
1
- import{s as w,h as B,e as D,aw as O,ax as U,ay as J,aj as L,az as F,j as e,aA as b,aB as K,aC as $,g as z,aD as M}from"./index-ORDXjnpF.js";import{u as q,P as G,D as Y}from"./useProjectForm-o3r31UMh.js";const H="CREATE_PROJECT_BTN",Q=w(B)(({theme:t})=>({marginLeft:t.spacing(3)})),X=()=>{const{setToastData:t,setToastApiError:j}=D(),{refetchUser:l}=O(),{uiConfig:p}=U(),o=J(),{trackEvent:a}=L(),{projectId:s,projectName:u,projectDesc:m,projectMode:r,setProjectMode:P,setProjectId:C,setProjectName:E,setProjectDesc:T,getCreateProjectPayload:c,clearErrors:n,validateProjectId:i,validateName:g,setProjectStickiness:h,projectStickiness:d,errors:f}=q(),{createProject:y,loading:A}=F(),_=async k=>{k.preventDefault(),n();const v=g(),x=await i();if(v&&x){const I=c();try{await y(I),l(),o(`/projects/${s}`),t({title:"Project created",text:"Now you can add toggles to this project",confetti:!0,type:"success"}),d!==Y&&a("project_stickiness_set"),a("project-mode",{props:{mode:r,action:"added"}})}catch(R){j(z(R))}}},N=()=>`curl --location --request POST '${p.unleashUrl}/api/admin/projects' \\
1
+ import{s as w,h as B,e as D,aw as O,ax as U,ay as J,aj as L,az as F,j as e,aA as b,aB as K,aC as $,g as z,aD as M}from"./index-JVRlSBvr.js";import{u as q,P as G,D as Y}from"./useProjectForm--jxh4Dtm.js";const H="CREATE_PROJECT_BTN",Q=w(B)(({theme:t})=>({marginLeft:t.spacing(3)})),X=()=>{const{setToastData:t,setToastApiError:j}=D(),{refetchUser:l}=O(),{uiConfig:p}=U(),o=J(),{trackEvent:a}=L(),{projectId:s,projectName:u,projectDesc:m,projectMode:r,setProjectMode:P,setProjectId:C,setProjectName:E,setProjectDesc:T,getCreateProjectPayload:c,clearErrors:n,validateProjectId:i,validateName:g,setProjectStickiness:h,projectStickiness:d,errors:f}=q(),{createProject:y,loading:A}=F(),_=async k=>{k.preventDefault(),n();const v=g(),x=await i();if(v&&x){const I=c();try{await y(I),l(),o(`/projects/${s}`),t({title:"Project created",text:"Now you can add toggles to this project",confetti:!0,type:"success"}),d!==Y&&a("project_stickiness_set"),a("project-mode",{props:{mode:r,action:"added"}})}catch(R){j(z(R))}}},N=()=>`curl --location --request POST '${p.unleashUrl}/api/admin/projects' \\
2
2
  --header 'Authorization: INSERT_API_KEY' \\
3
3
  --header 'Content-Type: application/json' \\
4
4
  --data-raw '${JSON.stringify(c(),void 0,2)}'`,S=()=>{o(M)};return e.jsx(b,{loading:A,title:"Create project",description:"Projects allows you to group feature toggles together in the management UI.",documentationLink:"https://docs.getunleash.io/reference/projects",documentationLinkLabel:"Projects documentation",formatApiCode:N,children:e.jsxs(G,{errors:f,handleSubmit:_,projectId:s,setProjectId:C,projectName:u,projectStickiness:d,projectMode:r,setProjectMode:P,setProjectStickiness:h,setProjectName:E,projectDesc:m,setProjectDesc:T,mode:"Create",clearErrors:n,validateProjectId:i,children:[e.jsx(K,{name:"project",permission:$,"data-testid":H}),e.jsx(Q,{onClick:S,children:"Cancel"})]})})};export{X as default};
@@ -1,4 +1,4 @@
1
- import{c as le,j as t,aE as H,aW as z,b7 as _,C as A,J as D,T as E,ct as ce,s as q,gy as ue,bc as de,bv as X,ay as Z,ax as I,gz as he,gA as ge,gB as pe,gC as me,cd as fe,bH as N,gD as xe,h as ve,gE as be,cF as ye,bs as je,r as x,az as M,e as O,bw as Se,aj as Te,bu as Ce,aA as Ae,aX as Ee,bm as we,ce as ke,g as P,B as Re,ah as De,eS as qe,gF as Fe,aV as ee,aF as Pe,aJ as W,c6 as U,gG as $e,gH as Oe,gI as Be,fA as Ve,ba as _e,bb as Le,A as te,k as se,c9 as Ne,l as He,n as ze,Q as Me,gJ as Ue,m as Ge,b as We,u as Je,bZ as Ye,aQ as Ke,aO as ne,aP as ae,b6 as Qe,aK as V,bV as re,a_ as oe}from"./index-ORDXjnpF.js";const kt=le(t.jsx("path",{d:"M12 2C6.5 2 2 6.5 2 12s4.5 10 10 10 10-4.5 10-10S17.5 2 12 2zm4.2 14.2L11 13V7h1.5v5.2l4.5 2.7-.8 1.3z"}),"WatchLater"),Xe=({isOpen:e,onConfirm:a,onClose:n,showBanner:s,environment:r,messageComponent:o})=>{const i=H("projectId"),{data:d}=z(i),{changeRequestInReviewOrApproved:h,alert:p}=ce(d),g=h(r||""),m=g?"Add to existing change request":"Add suggestion to draft";return t.jsxs(_,{open:e,primaryButtonText:m,secondaryButtonText:"Cancel",onClick:a,onClose:n,title:"Request changes",fullWidth:!0,children:[t.jsx(A,{condition:g,show:p}),t.jsx(A,{condition:!!s,show:t.jsxs(D,{severity:"info",sx:{mb:2},children:["Change requests feature is enabled for ",r,". Your changes need to be approved before they will be live. All the changes you do now will be added into a draft that you can submit for review."]})}),t.jsx(E,{variant:"body2",color:"text.secondary",children:"Your suggestion:"}),o]})},Ze=q("form")(({theme:e})=>({display:"grid",gap:e.spacing(2)})),J=q("hr")(({theme:e})=>({width:"100%",height:"1px",margin:e.spacing(2,0),border:"none",background:e.palette.background.elevation2})),Ie=q("div")(({theme:e})=>({display:"flex",justifyContent:"end",gap:e.spacing(2),paddingBottom:e.spacing(10)})),et=({projectId:e,environmentId:a,permission:n,onSubmit:s,onCancel:r,loading:o,strategy:i,setStrategy:d,segments:h,setSegments:p,errors:g})=>{const m=ue(i.constraints),l=de(n,e,a),{strategyDefinition:u}=X(i==null?void 0:i.name),v=Z(),{uiConfig:b,error:S,loading:C}=I();if(S)throw S;if(C||!u)return null;const w=y=>u.parameters.find(T=>T.name===y),c=(y,T)=>{const F=w(y);if(y!=="groupId"){const j=be(F,T);return j?(g.setFormError(y,j),!1):(g.removeFormError(y),!0)}return!0},R=()=>u.parameters.map(y=>y.name).map(y=>{var T;return c(y,(T=i.parameters)==null?void 0:T[y])}).every(Boolean),$=()=>{v(`/projects/${e}/settings/default-strategy`)},B=async y=>{if(y.preventDefault(),R())s();else return};return t.jsxs(Ze,{onSubmit:B,children:[t.jsx(he,{title:i.title||"",setTitle:y=>{d(T=>({...T,title:y}))}}),t.jsx(ge,{segments:h,setSegments:p,projectId:e}),t.jsx(pe,{projectId:e,environmentId:a,strategy:i,setStrategy:d}),t.jsx(J,{}),t.jsx(me,{strategy:i,strategyDefinition:u,setStrategy:d,validateParameter:c,errors:g,hasAccess:l}),t.jsx(A,{condition:i.parameters!=null&&"stickiness"in i.parameters,show:t.jsx(fe,{strategy:i,setStrategy:d,environment:a,projectId:e})}),t.jsx(J,{}),t.jsxs(Ie,{children:[t.jsx(N,{permission:n,projectId:e,environmentId:a,variant:"contained",color:"primary",type:"submit",disabled:o||!m||g.hasFormErrors(),"data-testid":xe,children:"Save strategy"}),t.jsx(ve,{type:"button",color:"primary",onClick:r||$,disabled:o,children:"Cancel"})]})]})},tt=(e,a)=>{var i;const{project:n,refetch:s}=ye(e),r={name:"flexibleRollout",constraints:[],parameters:{rollout:"100",stickiness:n.defaultStickiness||"default",groupId:""}},o=(i=n.environments.find(d=>d.environment===a))==null?void 0:i.defaultStrategy;return{defaultStrategyFallback:r,strategy:o,refetch:s}},Rt=()=>{const e=H("projectId"),a=je("environmentId"),{defaultStrategyFallback:n,strategy:s,refetch:r}=tt(e,a),[o,i]=x.useState(s||n),[d,h]=x.useState([]),{updateDefaultStrategy:p,loading:g}=M(),{strategyDefinition:m}=X(o==null?void 0:o.name),{setToastData:l,setToastApiError:u}=O(),v=Se(),{uiConfig:b}=I(),{unleashUrl:S}=b,C=Z(),{trackEvent:w}=Te(),{segments:c,refetchSegments:R}=Ce();x.useEffect(()=>{if(c&&(s!=null&&s.segments)){const T=[];for(const F of s==null?void 0:s.segments)T.push(...c.filter(j=>j.id===F));h(T)}},[JSON.stringify(c),JSON.stringify(s==null?void 0:s.segments)]);const $=st(o,d),B=async T=>{await p(e,a,T),w("default_strategy",{props:{action:"edit",hasTitle:!!T.title}}),await R(),l({title:"Default Strategy updated",type:"success",confetti:!0})},y=async()=>{const T=`/projects/${e}/settings/default-strategy`;try{await B($),await r(),C(T)}catch(F){u(P(F))}};return!m||!o?null:t.jsx(Ae,{modal:!0,title:Ee((o==null?void 0:o.name)??""),description:at,documentationLink:rt,documentationLinkLabel:ot,formatApiCode:()=>nt(e,a,$,m,S),children:t.jsx(et,{projectId:e,strategy:o,setStrategy:i,segments:d,setSegments:h,environmentId:a,onSubmit:y,loading:g,permission:we,errors:v,isChangeRequest:!1})})},st=(e,a)=>({name:e.name,title:e.title,constraints:e.constraints??[],parameters:e.parameters??{},variants:e.variants??[],segments:a.map(n=>n.id),disabled:e.disabled??!1}),nt=(e,a,n,s,r)=>{if(!r)return"";const o={...n,parameters:ke(n.parameters??{},s)},i=`${r}/api/admin/projects/${e}/environments/${a}/default-strategy}`,d=JSON.stringify(o,void 0,2);return`curl --location --request PUT '${i}' \\
1
+ import{c as le,j as t,aE as H,aW as z,b7 as _,C as A,J as D,T as E,ct as ce,s as q,gy as ue,bc as de,bv as X,ay as Z,ax as I,gz as he,gA as ge,gB as pe,gC as me,cd as fe,bH as N,gD as xe,h as ve,gE as be,cF as ye,bs as je,r as x,az as M,e as O,bw as Se,aj as Te,bu as Ce,aA as Ae,aX as Ee,bm as we,ce as ke,g as P,B as Re,ah as De,eS as qe,gF as Fe,aV as ee,aF as Pe,aJ as W,c6 as U,gG as $e,gH as Oe,gI as Be,fA as Ve,ba as _e,bb as Le,A as te,k as se,c9 as Ne,l as He,n as ze,Q as Me,gJ as Ue,m as Ge,b as We,u as Je,bZ as Ye,aQ as Ke,aO as ne,aP as ae,b6 as Qe,aK as V,bV as re,a_ as oe}from"./index-JVRlSBvr.js";const kt=le(t.jsx("path",{d:"M12 2C6.5 2 2 6.5 2 12s4.5 10 10 10 10-4.5 10-10S17.5 2 12 2zm4.2 14.2L11 13V7h1.5v5.2l4.5 2.7-.8 1.3z"}),"WatchLater"),Xe=({isOpen:e,onConfirm:a,onClose:n,showBanner:s,environment:r,messageComponent:o})=>{const i=H("projectId"),{data:d}=z(i),{changeRequestInReviewOrApproved:h,alert:p}=ce(d),g=h(r||""),m=g?"Add to existing change request":"Add suggestion to draft";return t.jsxs(_,{open:e,primaryButtonText:m,secondaryButtonText:"Cancel",onClick:a,onClose:n,title:"Request changes",fullWidth:!0,children:[t.jsx(A,{condition:g,show:p}),t.jsx(A,{condition:!!s,show:t.jsxs(D,{severity:"info",sx:{mb:2},children:["Change requests feature is enabled for ",r,". Your changes need to be approved before they will be live. All the changes you do now will be added into a draft that you can submit for review."]})}),t.jsx(E,{variant:"body2",color:"text.secondary",children:"Your suggestion:"}),o]})},Ze=q("form")(({theme:e})=>({display:"grid",gap:e.spacing(2)})),J=q("hr")(({theme:e})=>({width:"100%",height:"1px",margin:e.spacing(2,0),border:"none",background:e.palette.background.elevation2})),Ie=q("div")(({theme:e})=>({display:"flex",justifyContent:"end",gap:e.spacing(2),paddingBottom:e.spacing(10)})),et=({projectId:e,environmentId:a,permission:n,onSubmit:s,onCancel:r,loading:o,strategy:i,setStrategy:d,segments:h,setSegments:p,errors:g})=>{const m=ue(i.constraints),l=de(n,e,a),{strategyDefinition:u}=X(i==null?void 0:i.name),v=Z(),{uiConfig:b,error:S,loading:C}=I();if(S)throw S;if(C||!u)return null;const w=y=>u.parameters.find(T=>T.name===y),c=(y,T)=>{const F=w(y);if(y!=="groupId"){const j=be(F,T);return j?(g.setFormError(y,j),!1):(g.removeFormError(y),!0)}return!0},R=()=>u.parameters.map(y=>y.name).map(y=>{var T;return c(y,(T=i.parameters)==null?void 0:T[y])}).every(Boolean),$=()=>{v(`/projects/${e}/settings/default-strategy`)},B=async y=>{if(y.preventDefault(),R())s();else return};return t.jsxs(Ze,{onSubmit:B,children:[t.jsx(he,{title:i.title||"",setTitle:y=>{d(T=>({...T,title:y}))}}),t.jsx(ge,{segments:h,setSegments:p,projectId:e}),t.jsx(pe,{projectId:e,environmentId:a,strategy:i,setStrategy:d}),t.jsx(J,{}),t.jsx(me,{strategy:i,strategyDefinition:u,setStrategy:d,validateParameter:c,errors:g,hasAccess:l}),t.jsx(A,{condition:i.parameters!=null&&"stickiness"in i.parameters,show:t.jsx(fe,{strategy:i,setStrategy:d,environment:a,projectId:e})}),t.jsx(J,{}),t.jsxs(Ie,{children:[t.jsx(N,{permission:n,projectId:e,environmentId:a,variant:"contained",color:"primary",type:"submit",disabled:o||!m||g.hasFormErrors(),"data-testid":xe,children:"Save strategy"}),t.jsx(ve,{type:"button",color:"primary",onClick:r||$,disabled:o,children:"Cancel"})]})]})},tt=(e,a)=>{var i;const{project:n,refetch:s}=ye(e),r={name:"flexibleRollout",constraints:[],parameters:{rollout:"100",stickiness:n.defaultStickiness||"default",groupId:""}},o=(i=n.environments.find(d=>d.environment===a))==null?void 0:i.defaultStrategy;return{defaultStrategyFallback:r,strategy:o,refetch:s}},Rt=()=>{const e=H("projectId"),a=je("environmentId"),{defaultStrategyFallback:n,strategy:s,refetch:r}=tt(e,a),[o,i]=x.useState(s||n),[d,h]=x.useState([]),{updateDefaultStrategy:p,loading:g}=M(),{strategyDefinition:m}=X(o==null?void 0:o.name),{setToastData:l,setToastApiError:u}=O(),v=Se(),{uiConfig:b}=I(),{unleashUrl:S}=b,C=Z(),{trackEvent:w}=Te(),{segments:c,refetchSegments:R}=Ce();x.useEffect(()=>{if(c&&(s!=null&&s.segments)){const T=[];for(const F of s==null?void 0:s.segments)T.push(...c.filter(j=>j.id===F));h(T)}},[JSON.stringify(c),JSON.stringify(s==null?void 0:s.segments)]);const $=st(o,d),B=async T=>{await p(e,a,T),w("default_strategy",{props:{action:"edit",hasTitle:!!T.title}}),await R(),l({title:"Default Strategy updated",type:"success",confetti:!0})},y=async()=>{const T=`/projects/${e}/settings/default-strategy`;try{await B($),await r(),C(T)}catch(F){u(P(F))}};return!m||!o?null:t.jsx(Ae,{modal:!0,title:Ee((o==null?void 0:o.name)??""),description:at,documentationLink:rt,documentationLinkLabel:ot,formatApiCode:()=>nt(e,a,$,m,S),children:t.jsx(et,{projectId:e,strategy:o,setStrategy:i,segments:d,setSegments:h,environmentId:a,onSubmit:y,loading:g,permission:we,errors:v,isChangeRequest:!1})})},st=(e,a)=>({name:e.name,title:e.title,constraints:e.constraints??[],parameters:e.parameters??{},variants:e.variants??[],segments:a.map(n=>n.id),disabled:e.disabled??!1}),nt=(e,a,n,s,r)=>{if(!r)return"";const o={...n,parameters:ke(n.parameters??{},s)},i=`${r}/api/admin/projects/${e}/environments/${a}/default-strategy}`,d=JSON.stringify(o,void 0,2);return`curl --location --request PUT '${i}' \\
2
2
  --header 'Authorization: INSERT_API_KEY' \\
3
3
  --header 'Content-Type: application/json' \\
4
4
  --data-raw '${d}'`},at=`
@@ -1,2 +1,2 @@
1
- import{gN as c,b as x,b_ as g,r as d,j as u}from"./index-ORDXjnpF.js";import{d as b,L as m,C as f,a as C,b as v,P as S,c as h,T as q,p as k,e as M,f as E}from"./chartjs-adapter-date-fns.esm-kkU_hxq-.js";const L=(e,s,n)=>{const a={label:"Total requests",borderColor:e.palette.primary.main,backgroundColor:e.palette.primary.main,data:p(s,n,o=>o.yes+o.no),elements:{point:{radius:6,pointStyle:"circle"},line:{borderDash:[8,4]}}},t={label:"Exposed",borderColor:e.palette.success.main,backgroundColor:e.palette.success.main,data:p(s,n,o=>o.yes),elements:{point:{radius:6,pointStyle:"triangle"}}},r={label:"Not exposed",borderColor:e.palette.error.main,backgroundColor:e.palette.error.main,data:p(s,n,o=>o.no),elements:{point:{radius:6,pointStyle:"triangle",pointRotation:180}}};return{datasets:[t,r,a]}},p=(e,s,n)=>e.map(a=>({x:a.timestamp,y:n(a),variants:a.variants})),$=(e,s)=>{if(s===0)return"";const[n,a]=e,t=Math.floor(Number(a)/s*100);return`${a} (${t}%) - ${n}`},j=(e,s,n,a)=>({locale:a.locale,responsive:!0,maintainAspectRatio:!1,interaction:{mode:"index",intersect:!1},color:e.palette.text.secondary,plugins:{tooltip:{backgroundColor:e.palette.background.paper,bodyColor:e.palette.text.primary,titleColor:e.palette.text.secondary,borderColor:e.palette.primary.main,borderWidth:1,padding:10,boxPadding:5,usePointStyle:!0,itemSort:(t,r)=>{const o=["Total requests","Exposed","Not exposed"],l=o.indexOf(t.dataset.label),i=o.indexOf(r.dataset.label);return l-i},callbacks:{label:t=>`${t.formattedValue} - ${t.dataset.label}`,afterLabel:t=>{const r=t.dataset.data[t.dataIndex];if(t.dataset.label!=="Exposed"||r.variants===void 0)return"";const{disabled:o,...l}=r.variants;return Object.entries(l).map(i=>$(i,r.y)).join(`
1
+ import{gN as c,b as x,b_ as g,r as d,j as u}from"./index-JVRlSBvr.js";import{d as b,L as m,C as f,a as C,b as v,P as S,c as h,T as q,p as k,e as M,f as E}from"./chartjs-adapter-date-fns.esm-JSlDxtwH.js";const L=(e,s,n)=>{const a={label:"Total requests",borderColor:e.palette.primary.main,backgroundColor:e.palette.primary.main,data:p(s,n,o=>o.yes+o.no),elements:{point:{radius:6,pointStyle:"circle"},line:{borderDash:[8,4]}}},t={label:"Exposed",borderColor:e.palette.success.main,backgroundColor:e.palette.success.main,data:p(s,n,o=>o.yes),elements:{point:{radius:6,pointStyle:"triangle"}}},r={label:"Not exposed",borderColor:e.palette.error.main,backgroundColor:e.palette.error.main,data:p(s,n,o=>o.no),elements:{point:{radius:6,pointStyle:"triangle",pointRotation:180}}};return{datasets:[t,r,a]}},p=(e,s,n)=>e.map(a=>({x:a.timestamp,y:n(a),variants:a.variants})),$=(e,s)=>{if(s===0)return"";const[n,a]=e,t=Math.floor(Number(a)/s*100);return`${a} (${t}%) - ${n}`},j=(e,s,n,a)=>({locale:a.locale,responsive:!0,maintainAspectRatio:!1,interaction:{mode:"index",intersect:!1},color:e.palette.text.secondary,plugins:{tooltip:{backgroundColor:e.palette.background.paper,bodyColor:e.palette.text.primary,titleColor:e.palette.text.secondary,borderColor:e.palette.primary.main,borderWidth:1,padding:10,boxPadding:5,usePointStyle:!0,itemSort:(t,r)=>{const o=["Total requests","Exposed","Not exposed"],l=o.indexOf(t.dataset.label),i=o.indexOf(r.dataset.label);return l-i},callbacks:{label:t=>`${t.formattedValue} - ${t.dataset.label}`,afterLabel:t=>{const r=t.dataset.data[t.dataIndex];if(t.dataset.label!=="Exposed"||r.variants===void 0)return"";const{disabled:o,...l}=r.variants;return Object.entries(l).map(i=>$(i,r.y)).join(`
2
2
  `)},title:t=>`Time: ${c(t[0].parsed.x,a.locale)}`}},legend:{position:"top",align:"end",labels:{boxWidth:10,boxHeight:10,usePointStyle:!0}},title:{text:P(n),position:"top",align:"start",display:!0,font:{size:16,weight:"400"},color:e.palette.text.primary}},scales:{y:{type:"linear",title:{display:!0,text:"Number of requests",color:e.palette.text.secondary},suggestedMin:0,ticks:{precision:0,color:e.palette.text.secondary},grid:{color:e.palette.divider,borderColor:e.palette.divider}},x:{type:"time",time:{unit:"hour"},grid:{display:!1},ticks:{callback:(t,r,o)=>c(o[r].value,a.locale),color:e.palette.text.secondary}}}}),P=e=>e===1?"Requests in the last hour":`Requests in the last ${e} hours`;b.font={...b.font,family:"Sen",size:13,weight:"400"};const R=({metrics:e,hoursBack:s,statsSectionId:n})=>{const a=x(),{locationSettings:t}=g(),r=d.useMemo(()=>[...e].sort((i,y)=>i.timestamp.localeCompare(y.timestamp)),[e]),o=d.useMemo(()=>j(a,r,s,t),[a,r,s,t]),l=d.useMemo(()=>L(a,r,t),[a,r,t]);return u.jsx("div",{style:{height:400},children:u.jsx(m,{options:o,data:l,"aria-label":"A feature metrics line chart, with three lines: all requests, positive requests, and negative requests.","aria-describedby":n})})};f.register(C,v,S,h,q,k,M,E);export{R as FeatureMetricsChart,R as default};