@openapi-typescript-infra/service 4.17.0 → 4.19.0

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.
@@ -19,9 +19,11 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
19
19
  Object.defineProperty(exports, "__esModule", { value: true });
20
20
  exports.insertConfigurationBefore = exports.loadConfiguration = void 0;
21
21
  const fs_1 = __importDefault(require("fs"));
22
+ const net_1 = __importDefault(require("net"));
22
23
  const path_1 = __importDefault(require("path"));
23
24
  const confit_1 = require("@sesamecare-oss/confit");
24
25
  const port_finder_1 = require("../development/port-finder");
26
+ const env_1 = require("../env");
25
27
  // Order matters here.
26
28
  const ENVIRONMENTS = ['production', 'staging', 'test', 'development'];
27
29
  async function pathExists(f) {
@@ -54,6 +56,27 @@ async function addDefaultConfiguration(configFactory, directory, envConfit) {
54
56
  configFactory.addDefault(baseConfig);
55
57
  }
56
58
  }
59
+ async function getEphemeralPort() {
60
+ return new Promise((resolve, reject) => {
61
+ const server = net_1.default.createServer();
62
+ server.listen(0, () => {
63
+ const address = server.address();
64
+ if (typeof address === 'string' || !address) {
65
+ reject(new Error('Invalid address'));
66
+ return;
67
+ }
68
+ const port = address.port; // Retrieve the ephemeral port
69
+ server.close((err) => {
70
+ if (err) {
71
+ reject(err);
72
+ }
73
+ else {
74
+ resolve(port);
75
+ }
76
+ });
77
+ });
78
+ });
79
+ }
57
80
  async function loadConfiguration({ configurationDirectories: dirs, shortstopHandlers, }) {
58
81
  const specificConfig = dirs[dirs.length - 1];
59
82
  // This confit version just gets us environment info
@@ -75,7 +98,8 @@ async function loadConfiguration({ configurationDirectories: dirs, shortstopHand
75
98
  // configured to auto-select
76
99
  const serverConfig = loaded.get().server;
77
100
  if (serverConfig.port === 0) {
78
- const port = (await (0, port_finder_1.findPort)(8001));
101
+ const portPromise = (0, env_1.isTest)() ? getEphemeralPort() : (0, port_finder_1.findPort)(8001);
102
+ const port = await portPromise;
79
103
  const store = loaded.get();
80
104
  store.server = store.server || {};
81
105
  store.server.port = port;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- export declare function findPort(start: number): Promise<number | null>;
1
+ export declare function findPort(start: number): Promise<number>;
@@ -35,7 +35,7 @@ async function findPort(start) {
35
35
  return p;
36
36
  }
37
37
  }
38
- return null;
38
+ return 0;
39
39
  }
40
40
  exports.findPort = findPort;
41
41
  //# sourceMappingURL=port-finder.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"port-finder.js","sourceRoot":"","sources":["../../src/development/port-finder.ts"],"names":[],"mappings":";;;;;;AAAA,8CAAsB;AAEtB,+EAA+E;AAC/E,KAAK,UAAU,WAAW,CAAC,IAAY;IACrC,OAAO,IAAI,OAAO,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE;QACpC,MAAM,MAAM,GAAG,aAAG,CAAC,YAAY,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAE/C,MAAM,UAAU,GAAG,UAAU,CAAC,GAAG,EAAE;YACjC,MAAM,CAAC,KAAK,CAAC,CAAC;QAChB,CAAC,EAAE,IAAI,CAAC,CAAC;QAET,UAAU,CAAC,KAAK,EAAE,CAAC;QAEnB,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,EAAE;YAC5B,YAAY,CAAC,UAAU,CAAC,CAAC;YACzB,MAAM,CAAC,KAAK,EAAE,CAAC;YACf,MAAM,CAAC,IAAI,CAAC,CAAC;QACf,CAAC,CAAC,CAAC;QACH,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE;YAC3B,YAAY,CAAC,UAAU,CAAC,CAAC;YAEzB,IAAK,GAAyB,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;gBACrD,MAAM,CAAC,KAAK,CAAC,CAAC;gBACd,OAAO;YACT,CAAC;YAED,MAAM,CAAC,GAAG,CAAC,CAAC;QACd,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAEM,KAAK,UAAU,QAAQ,CAAC,KAAa;IAC1C,KAAK,IAAI,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,KAAK,GAAG,IAAI,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;QAC7C,4CAA4C;QAC5C,IAAI,MAAM,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC;YACzB,OAAO,CAAC,CAAC;QACX,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AARD,4BAQC"}
1
+ {"version":3,"file":"port-finder.js","sourceRoot":"","sources":["../../src/development/port-finder.ts"],"names":[],"mappings":";;;;;;AAAA,8CAAsB;AAEtB,+EAA+E;AAC/E,KAAK,UAAU,WAAW,CAAC,IAAY;IACrC,OAAO,IAAI,OAAO,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE;QACpC,MAAM,MAAM,GAAG,aAAG,CAAC,YAAY,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAE/C,MAAM,UAAU,GAAG,UAAU,CAAC,GAAG,EAAE;YACjC,MAAM,CAAC,KAAK,CAAC,CAAC;QAChB,CAAC,EAAE,IAAI,CAAC,CAAC;QAET,UAAU,CAAC,KAAK,EAAE,CAAC;QAEnB,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,EAAE;YAC5B,YAAY,CAAC,UAAU,CAAC,CAAC;YACzB,MAAM,CAAC,KAAK,EAAE,CAAC;YACf,MAAM,CAAC,IAAI,CAAC,CAAC;QACf,CAAC,CAAC,CAAC;QACH,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE;YAC3B,YAAY,CAAC,UAAU,CAAC,CAAC;YAEzB,IAAK,GAAyB,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;gBACrD,MAAM,CAAC,KAAK,CAAC,CAAC;gBACd,OAAO;YACT,CAAC;YAED,MAAM,CAAC,GAAG,CAAC,CAAC;QACd,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAEM,KAAK,UAAU,QAAQ,CAAC,KAAa;IAC1C,KAAK,IAAI,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,KAAK,GAAG,IAAI,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;QAC7C,4CAA4C;QAC5C,IAAI,MAAM,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC;YACzB,OAAO,CAAC,CAAC;QACX,CAAC;IACH,CAAC;IACD,OAAO,CAAC,CAAC;AACX,CAAC;AARD,4BAQC"}
@@ -11,7 +11,7 @@ import type { ConfigurationSchema } from '../config/schema';
11
11
  * In addition, since we have to load it right away before configuration
12
12
  * is available, we can't use configuration to decide anything.
13
13
  */
14
- export declare function startGlobalTelemetry(serviceName: string): void;
14
+ export declare function startGlobalTelemetry(serviceName: string): Promise<void>;
15
15
  export declare function getGlobalPrometheusExporter(): PrometheusExporter | undefined;
16
16
  export declare function shutdownGlobalTelemetry(): Promise<void>;
17
17
  export declare function startWithTelemetry<SLocals extends AnyServiceLocals = ServiceLocals<ConfigurationSchema>, RLocals extends RequestLocals = RequestLocals>(options: DelayLoadServiceStartOptions): Promise<{
@@ -24,14 +24,13 @@ var __importStar = (this && this.__importStar) || function (mod) {
24
24
  };
25
25
  Object.defineProperty(exports, "__esModule", { value: true });
26
26
  exports.startWithTelemetry = exports.shutdownGlobalTelemetry = exports.getGlobalPrometheusExporter = exports.startGlobalTelemetry = void 0;
27
- const api_1 = require("@opentelemetry/api");
28
27
  const exporter_trace_otlp_proto_1 = require("@opentelemetry/exporter-trace-otlp-proto");
29
28
  const opentelemetry = __importStar(require("@opentelemetry/sdk-node"));
30
29
  const exporter_prometheus_1 = require("@opentelemetry/exporter-prometheus");
31
30
  const instrumentations_1 = require("./instrumentations");
32
31
  const DummyExporter_1 = require("./DummyExporter");
33
32
  // For troubleshooting, set the log level to DiagLogLevel.DEBUG
34
- api_1.diag.setLogger(new api_1.DiagConsoleLogger(), api_1.DiagLogLevel.INFO);
33
+ opentelemetry.api.diag.setLogger(new (opentelemetry.api.DiagConsoleLogger)(), opentelemetry.api.DiagLogLevel.INFO);
35
34
  function getExporter() {
36
35
  if (!process.env.DISABLE_OLTP_EXPORTER &&
37
36
  (['production', 'staging'].includes(process.env.APP_ENV || process.env.NODE_ENV || '') ||
@@ -55,16 +54,17 @@ let telemetrySdk;
55
54
  * In addition, since we have to load it right away before configuration
56
55
  * is available, we can't use configuration to decide anything.
57
56
  */
58
- function startGlobalTelemetry(serviceName) {
57
+ async function startGlobalTelemetry(serviceName) {
59
58
  if (!prometheusExporter) {
60
59
  prometheusExporter = new exporter_prometheus_1.PrometheusExporter({ preventServerStart: true });
60
+ const instrumentations = (0, instrumentations_1.getAutoInstrumentations)();
61
61
  telemetrySdk = new opentelemetry.NodeSDK({
62
62
  serviceName,
63
- autoDetectResources: true,
63
+ autoDetectResources: false,
64
64
  traceExporter: getExporter(),
65
- resourceDetectors: (0, instrumentations_1.getResourceDetectors)(),
65
+ resource: await (0, instrumentations_1.getResource)(),
66
66
  metricReader: prometheusExporter,
67
- instrumentations: [(0, instrumentations_1.getAutoInstrumentations)()],
67
+ instrumentations,
68
68
  views: [
69
69
  new opentelemetry.metrics.View({
70
70
  instrumentName: 'http_request_duration_seconds',
@@ -82,14 +82,13 @@ function getGlobalPrometheusExporter() {
82
82
  }
83
83
  exports.getGlobalPrometheusExporter = getGlobalPrometheusExporter;
84
84
  async function shutdownGlobalTelemetry() {
85
- await prometheusExporter?.shutdown();
86
85
  await telemetrySdk?.shutdown();
87
86
  telemetrySdk = undefined;
88
87
  prometheusExporter = undefined;
89
88
  }
90
89
  exports.shutdownGlobalTelemetry = shutdownGlobalTelemetry;
91
90
  async function startWithTelemetry(options) {
92
- startGlobalTelemetry(options.name);
91
+ await startGlobalTelemetry(options.name);
93
92
  // eslint-disable-next-line import/no-unresolved, @typescript-eslint/no-var-requires
94
93
  const { startApp, listen } = require('../express-app/app.js');
95
94
  // eslint-disable-next-line import/no-dynamic-require, global-require, @typescript-eslint/no-var-requires
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/telemetry/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/telemetry/index.ts"],"names":[],"mappings":"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"}
@@ -1,19 +1,19 @@
1
1
  import type { Instrumentation } from '@opentelemetry/instrumentation';
2
2
  import { DnsInstrumentation } from '@opentelemetry/instrumentation-dns';
3
3
  import { ExpressInstrumentation } from '@opentelemetry/instrumentation-express';
4
- import { FetchInstrumentation } from 'opentelemetry-instrumentation-fetch-node';
4
+ import { UndiciInstrumentation } from '@opentelemetry/instrumentation-undici';
5
5
  import { GenericPoolInstrumentation } from '@opentelemetry/instrumentation-generic-pool';
6
6
  import { HttpInstrumentation } from '@opentelemetry/instrumentation-http';
7
7
  import { IORedisInstrumentation } from '@opentelemetry/instrumentation-ioredis';
8
8
  import { NetInstrumentation } from '@opentelemetry/instrumentation-net';
9
9
  import { PgInstrumentation } from '@opentelemetry/instrumentation-pg';
10
10
  import { PinoInstrumentation } from '@opentelemetry/instrumentation-pino';
11
- import { Detector, DetectorSync } from '@opentelemetry/resources';
11
+ import { Resource } from '@opentelemetry/resources';
12
12
  declare const InstrumentationMap: {
13
13
  '@opentelemetry/instrumentation-http': typeof HttpInstrumentation;
14
14
  '@opentelemetry/instrumentation-dns': typeof DnsInstrumentation;
15
15
  '@opentelemetry/instrumentation-express': typeof ExpressInstrumentation;
16
- 'opentelemetry-instrumentation-fetch-node': typeof FetchInstrumentation;
16
+ '@opentelemetry/instrumentation-undici': typeof UndiciInstrumentation;
17
17
  '@opentelemetry/instrumentation-generic-pool': typeof GenericPoolInstrumentation;
18
18
  '@opentelemetry/instrumentation-ioredis': typeof IORedisInstrumentation;
19
19
  '@opentelemetry/instrumentation-net': typeof NetInstrumentation;
@@ -25,5 +25,5 @@ export type InstrumentationConfigMap = {
25
25
  [Name in keyof typeof InstrumentationMap]?: ConfigArg<(typeof InstrumentationMap)[Name]>;
26
26
  };
27
27
  export declare function getAutoInstrumentations(inputConfigs?: InstrumentationConfigMap): Instrumentation[];
28
- export declare function getResourceDetectors(): (Detector | DetectorSync)[];
28
+ export declare function getResource(): Promise<Resource>;
29
29
  export {};
@@ -1,9 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getResourceDetectors = exports.getAutoInstrumentations = void 0;
3
+ exports.getResource = exports.getAutoInstrumentations = void 0;
4
4
  const instrumentation_dns_1 = require("@opentelemetry/instrumentation-dns");
5
5
  const instrumentation_express_1 = require("@opentelemetry/instrumentation-express");
6
- const opentelemetry_instrumentation_fetch_node_1 = require("opentelemetry-instrumentation-fetch-node");
6
+ const instrumentation_undici_1 = require("@opentelemetry/instrumentation-undici");
7
7
  const instrumentation_generic_pool_1 = require("@opentelemetry/instrumentation-generic-pool");
8
8
  const instrumentation_http_1 = require("@opentelemetry/instrumentation-http");
9
9
  const instrumentation_ioredis_1 = require("@opentelemetry/instrumentation-ioredis");
@@ -17,7 +17,7 @@ const InstrumentationMap = {
17
17
  '@opentelemetry/instrumentation-http': instrumentation_http_1.HttpInstrumentation,
18
18
  '@opentelemetry/instrumentation-dns': instrumentation_dns_1.DnsInstrumentation,
19
19
  '@opentelemetry/instrumentation-express': instrumentation_express_1.ExpressInstrumentation,
20
- 'opentelemetry-instrumentation-fetch-node': opentelemetry_instrumentation_fetch_node_1.FetchInstrumentation,
20
+ '@opentelemetry/instrumentation-undici': instrumentation_undici_1.UndiciInstrumentation,
21
21
  '@opentelemetry/instrumentation-generic-pool': instrumentation_generic_pool_1.GenericPoolInstrumentation,
22
22
  '@opentelemetry/instrumentation-ioredis': instrumentation_ioredis_1.IORedisInstrumentation,
23
23
  '@opentelemetry/instrumentation-net': instrumentation_net_1.NetInstrumentation,
@@ -43,15 +43,22 @@ function getAutoInstrumentations(inputConfigs = {}) {
43
43
  .filter((i) => !!i);
44
44
  }
45
45
  exports.getAutoInstrumentations = getAutoInstrumentations;
46
- function getResourceDetectors() {
47
- return [
48
- resource_detector_container_1.containerDetector,
46
+ // Async function to get combined resources
47
+ async function getResource() {
48
+ const syncDetectors = [
49
49
  resources_1.envDetectorSync,
50
50
  resources_1.hostDetectorSync,
51
51
  resources_1.osDetectorSync,
52
52
  resources_1.processDetectorSync,
53
+ ];
54
+ const asyncDetectors = [
55
+ resource_detector_container_1.containerDetector,
53
56
  resource_detector_gcp_1.gcpDetector,
54
57
  ];
58
+ const asyncResources = await (0, resources_1.detectResources)({ detectors: asyncDetectors });
59
+ const syncResources = (0, resources_1.detectResourcesSync)({ detectors: syncDetectors });
60
+ // Combine async and sync resources
61
+ return syncResources.merge(asyncResources);
55
62
  }
56
- exports.getResourceDetectors = getResourceDetectors;
63
+ exports.getResource = getResource;
57
64
  //# sourceMappingURL=instrumentations.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"instrumentations.js","sourceRoot":"","sources":["../../src/telemetry/instrumentations.ts"],"names":[],"mappings":";;;AACA,4EAAwE;AACxE,oFAAgF;AAChF,uGAAgF;AAChF,8FAAyF;AACzF,8EAA0E;AAC1E,oFAAgF;AAChF,4EAAwE;AACxE,0EAAsE;AACtE,8EAA0E;AAC1E,4FAA+E;AAC/E,gFAAmE;AACnE,wDAOkC;AAElC,MAAM,kBAAkB,GAAG;IACzB,qCAAqC,EAAE,0CAAmB;IAC1D,oCAAoC,EAAE,wCAAkB;IACxD,wCAAwC,EAAE,gDAAsB;IAChE,0CAA0C,EAAE,+DAAoB;IAChE,6CAA6C,EAAE,yDAA0B;IACzE,wCAAwC,EAAE,gDAAsB;IAChE,oCAAoC,EAAE,wCAAkB;IACxD,mCAAmC,EAAE,sCAAiB;IACtD,qCAAqC,EAAE,0CAAmB;CAC3D,CAAC;AAQF,SAAgB,uBAAuB,CACrC,eAAyC,EAAE;IAE3C,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAA2C,CAAC;IACvF,OAAO,IAAI;SACR,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QACZ,MAAM,QAAQ,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC;QAC1C,qDAAqD;QACrD,MAAM,UAAU,GAAG,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;QAE5C,IAAI,CAAC;YACH,OAAO,IAAI,QAAQ,CAAC,UAAU,CAAC,CAAC;QAClC,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,sCAAsC;YACtC,OAAO,CAAC,KAAK,CAAC,kBAAkB,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC;YAC3C,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC,CAAC;SACD,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAsB,CAAC;AAC7C,CAAC;AAnBD,0DAmBC;AAED,SAAgB,oBAAoB;IAClC,OAAO;QACL,+CAAiB;QACjB,2BAAe;QACf,4BAAgB;QAChB,0BAAc;QACd,+BAAmB;QACnB,mCAAW;KACZ,CAAC;AACJ,CAAC;AATD,oDASC"}
1
+ {"version":3,"file":"instrumentations.js","sourceRoot":"","sources":["../../src/telemetry/instrumentations.ts"],"names":[],"mappings":";;;AACA,4EAAwE;AACxE,oFAAgF;AAChF,kFAA8E;AAC9E,8FAAyF;AACzF,8EAA0E;AAC1E,oFAAgF;AAChF,4EAAwE;AACxE,0EAAsE;AACtE,8EAA0E;AAC1E,4FAA+E;AAC/E,gFAAmE;AACnE,wDAQkC;AAElC,MAAM,kBAAkB,GAAG;IACzB,qCAAqC,EAAE,0CAAmB;IAC1D,oCAAoC,EAAE,wCAAkB;IACxD,wCAAwC,EAAE,gDAAsB;IAChE,uCAAuC,EAAE,8CAAqB;IAC9D,6CAA6C,EAAE,yDAA0B;IACzE,wCAAwC,EAAE,gDAAsB;IAChE,oCAAoC,EAAE,wCAAkB;IACxD,mCAAmC,EAAE,sCAAiB;IACtD,qCAAqC,EAAE,0CAAmB;CAC3D,CAAC;AAQF,SAAgB,uBAAuB,CACrC,eAAyC,EAAE;IAE3C,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAA2C,CAAC;IACvF,OAAO,IAAI;SACR,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QACZ,MAAM,QAAQ,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC;QAC1C,qDAAqD;QACrD,MAAM,UAAU,GAAG,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;QAE5C,IAAI,CAAC;YACH,OAAO,IAAI,QAAQ,CAAC,UAAU,CAAC,CAAC;QAClC,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,sCAAsC;YACtC,OAAO,CAAC,KAAK,CAAC,kBAAkB,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC;YAC3C,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC,CAAC;SACD,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAsB,CAAC;AAC7C,CAAC;AAnBD,0DAmBC;AAED,2CAA2C;AACpC,KAAK,UAAU,WAAW;IAC/B,MAAM,aAAa,GAAG;QACpB,2BAAe;QACf,4BAAgB;QAChB,0BAAc;QACd,+BAAmB;KACpB,CAAC;IACF,MAAM,cAAc,GAAG;QACrB,+CAAiB;QACjB,mCAAW;KACZ,CAAC;IAEF,MAAM,cAAc,GAAG,MAAM,IAAA,2BAAe,EAAC,EAAE,SAAS,EAAE,cAAc,EAAE,CAAC,CAAC;IAC5E,MAAM,aAAa,GAAG,IAAA,+BAAmB,EAAC,EAAE,SAAS,EAAE,aAAa,EAAE,CAAC,CAAC;IAExE,mCAAmC;IACnC,OAAO,aAAa,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;AAC7C,CAAC;AAjBD,kCAiBC"}