logixlysia 6.9.2 → 6.9.4

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.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,26 @@
1
1
  # Changelog
2
2
 
3
+ ## 6.9.4
4
+
5
+ ### Patch Changes
6
+
7
+ - 83e771c: `autoRedact` now masks values inside `Headers`, `URL`, `URLSearchParams`, `Map`, and `Set` objects. Before, these passed through unchanged and serialized with their original values. Compound key names such as `newPassword`, `apiSecret`, `aws_secret_access_key`, `authToken`, and `X-CSRF-Token` now count as sensitive. Every value of a repeated query parameter and every percent-encoded path segment is checked.
8
+ - d6e5b08: Correct the `useAsyncLocalStorage` documentation: the request-scoped `log` is always available on the handler context. The option only makes `useLogger()` return the current request's logger from anywhere in the request.
9
+ - e5acc3a: A request answered with Elysia's `status()` helper is now logged with the status the client received, not 200 or 500. This covers a returned `status()`, a thrown one, and one returned from `beforeHandle`. The message is the string body, or the status text when the body is not a string. A returned `Response` keeps its own status over `set.status` unless it is 200, as in Elysia. Requests that reach neither `onAfterHandle` nor `onError` now get their log line instead of none. These are an auth `resolve` that returns `status(401)` and an error that an app-wide `onError` registered before the plugin answers.
10
+ - a7ec6d2: Logging no longer fails a request. An error whose message is an object, such as `throw status(401, { error: 'unauthorized' })` in `onRequest`, no longer turns the response into a 500, and a BigInt or circular value in request context no longer crashes requests that print `{context}`. The Axiom, Better Stack, Datadog and Loki adapters write BigInts as strings and circular references as `"[Circular]"` instead of dropping the whole batch. Context-tree keys and structured error fields are sanitized like values. Any other failure while building a log record is reported to `onError` with the new `sink: 'format'`.
11
+ - c197893: WebSocket logging tracks each connection by Elysia's underlying socket (`ws.raw`) instead of the wrapper Elysia creates for every event. Message and close lines report the time since the connection opened instead of about 0 ms, context merged with `mergeContext(ws, …)` in one event is still there in the next, and the connection's state is released on close. `wrapWs` throws a `TypeError` when its first argument is not the route path.
12
+
13
+ ## 6.9.3
14
+
15
+ ### Patch Changes
16
+
17
+ - 54a5aeb: Internal cleanup from moving the repo's lint and format tooling from Biome to oxlint + oxfmt. Exported names and types are unchanged, apart from `resolveSampling`'s first parameter becoming optional, so `resolveSampling()` compiles and calls that pass `undefined` still do.
18
+
19
+ - Promise chains inside the batch queue, file sink and shutdown flush became `async` helpers that run their work in the same order.
20
+ - Deferred promises use `Promise.withResolvers`, so the package now declares `engines.node >=22`, the floor chalk 6 already set.
21
+ - Every regular expression carries the `u` flag. Two matches move on unusual input: the user-agent enricher's case-insensitive patterns also fold `ſ` (U+017F) to `s` and the Kelvin sign to `k`, and a `?` in a sampling glob matches one code point rather than one UTF-16 unit, which only differs for a decoded path containing an astral character such as an emoji.
22
+ - 54a5aeb: Adapters read `Retry-After` by RFC 9110's grammar. Only a bare digit string is delta-seconds, so `1e3` and `0x10` no longer read as 1 s and 0 s, and `+5` and `5.5` no longer read as 5 s. An HTTP-date already in the past is ignored instead of retrying with no delay. Either way the adapter falls back to its jittered backoff.
23
+
3
24
  ## 6.9.2
4
25
 
5
26
  ### Patch Changes
package/README.md CHANGED
@@ -17,7 +17,7 @@ import { Elysia } from 'elysia'
17
17
  import logixlysia from 'logixlysia' // or import { logixlysia } from 'logixlysia'
18
18
 
19
19
  const app = new Elysia({
20
- name: "Elysia with Logixlysia"
20
+ name: 'Elysia with Logixlysia'
21
21
  })
22
22
  .use(
23
23
  logixlysia({
@@ -33,12 +33,13 @@ const app = new Elysia({
33
33
  translateTime: 'yyyy-mm-dd HH:MM:ss.SSS'
34
34
  },
35
35
  ip: true
36
- }
37
- }))
38
- .get('/', () => {
39
- return { message: 'Welcome to Basic Elysia with Logixlysia' }
36
+ }
40
37
  })
41
-
38
+ )
39
+ .get('/', () => {
40
+ return { message: 'Welcome to Basic Elysia with Logixlysia' }
41
+ })
42
+
42
43
  app.listen(3000)
43
44
  ```
44
45
 
@@ -62,4 +63,4 @@ Check out the [website](https://logixlysia.vercel.app) for more detailed documen
62
63
 
63
64
  ## `📄` License
64
65
 
65
- Licensed under the [MIT License](LICENSE).
66
+ Licensed under the [MIT License](LICENSE).
package/dist/axiom.d.ts CHANGED
@@ -86,7 +86,7 @@ interface AxiomTransportOptions extends BatchTransportOptions {
86
86
  * Events keep their nested structure — Axiom indexes every field without a
87
87
  * schema, so `request.method`, `context.requestId`, etc. are all queryable.
88
88
  *
89
- * @throws When no API token or dataset is configured.
89
+ * @throws {Error} When no API token or dataset is configured.
90
90
  */
91
91
  declare const createAxiomTransport: (options?: AxiomTransportOptions) => AdapterTransport;
92
92
  export { createAxiomTransport, AxiomTransportOptions, AdapterTransport };
package/dist/axiom.js CHANGED
@@ -1,4 +1,4 @@
1
- import{c as G,d as k,e as q,g as J}from"./shared/Logixlysia-jvphdjgs.js";import"./shared/Logixlysia-nrt7tysy.js";var P="https://api.axiom.co",V=(j={})=>{let u=j.apiKey??k("AXIOM_API_KEY");if(!u)throw q("Axiom","missing API token. Set AXIOM_API_KEY or pass apiKey to createAxiomTransport()");let x=j.dataset??k("AXIOM_DATASET");if(!x)throw q("Axiom","missing dataset. Set AXIOM_DATASET or pass dataset to createAxiomTransport()");let N=G(j.baseUrl??k("AXIOM_URL")??P),z=j.orgId??k("AXIOM_ORG_ID"),C={Authorization:`Bearer ${u}`,"Content-Type":"application/json"};if(z)C["X-Axiom-Org-Id"]=z;return J({body:(O)=>JSON.stringify(O.map((m)=>({...m.meta,_time:m.timestamp.toISOString(),level:m.level,message:m.message}))),headers:C,name:"Axiom",options:j,url:`${N}/v1/datasets/${encodeURIComponent(x)}/ingest`})};export{V as createAxiomTransport};
1
+ import{c as O,d as m,e as x,g as P}from"./shared/Logixlysia-kwnc1c9b.js";import{k as N}from"./shared/Logixlysia-1ap5daz6.js";var W="https://api.axiom.co",Z=(k={})=>{let z=k.apiKey??m("AXIOM_API_KEY");if(!z)throw x("Axiom","missing API token. Set AXIOM_API_KEY or pass apiKey to createAxiomTransport()");let C=k.dataset??m("AXIOM_DATASET");if(!C)throw x("Axiom","missing dataset. Set AXIOM_DATASET or pass dataset to createAxiomTransport()");let Q=O(k.baseUrl??m("AXIOM_URL")??W),G=k.orgId??m("AXIOM_ORG_ID"),J={Authorization:`Bearer ${z}`,"Content-Type":"application/json"};if(G)J["X-Axiom-Org-Id"]=G;return P({body:(V)=>N(V.map((q)=>({...q.meta,_time:q.timestamp.toISOString(),level:q.level,message:q.message}))),headers:J,name:"Axiom",options:k,url:`${Q}/v1/datasets/${encodeURIComponent(C)}/ingest`})};export{Z as createAxiomTransport};
2
2
 
3
- //# debugId=0147D398D571443F64756E2164756E21
4
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsic3JjL2F4aW9tLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWwogICAgImltcG9ydCB7XG4gIHR5cGUgQWRhcHRlclRyYW5zcG9ydCxcbiAgdHlwZSBCYXRjaFRyYW5zcG9ydE9wdGlvbnMsXG4gIGNyZWF0ZUh0dHBUcmFuc3BvcnQsXG4gIGVudlN0cmluZyxcbiAgc3RyaXBUcmFpbGluZ1NsYXNoZXMsXG4gIHRyYW5zcG9ydEVycm9yXG59IGZyb20gJy4vYWRhcHRlcnMvc2hhcmVkJ1xuXG5jb25zdCBERUZBVUxUX0JBU0VfVVJMID0gJ2h0dHBzOi8vYXBpLmF4aW9tLmNvJ1xuXG5leHBvcnQgaW50ZXJmYWNlIEF4aW9tVHJhbnNwb3J0T3B0aW9ucyBleHRlbmRzIEJhdGNoVHJhbnNwb3J0T3B0aW9ucyB7XG4gIC8qKlxuICAgKiBBeGlvbSBBUEkgdG9rZW4gd2l0aCBpbmdlc3QgcGVybWlzc2lvbiAoYHhhYXQt4oCmYCkuXG4gICAqIEZhbGxzIGJhY2sgdG8gdGhlIGBBWElPTV9BUElfS0VZYCBlbnZpcm9ubWVudCB2YXJpYWJsZS5cbiAgICovXG4gIGFwaUtleT86IHN0cmluZ1xuICAvKipcbiAgICogQVBJIGJhc2UgVVJMLlxuICAgKiBGYWxscyBiYWNrIHRvIGBBWElPTV9VUkxgLlxuICAgKiBAZGVmYXVsdCAnaHR0cHM6Ly9hcGkuYXhpb20uY28nXG4gICAqL1xuICBiYXNlVXJsPzogc3RyaW5nXG4gIC8qKlxuICAgKiBUYXJnZXQgZGF0YXNldCBuYW1lLlxuICAgKiBGYWxscyBiYWNrIHRvIGBBWElPTV9EQVRBU0VUYC5cbiAgICovXG4gIGRhdGFzZXQ/OiBzdHJpbmdcbiAgLyoqXG4gICAqIE9yZ2FuaXphdGlvbiBJRCDigJQgcmVxdWlyZWQgd2hlbiB1c2luZyBhIHBlcnNvbmFsIGFjY2VzcyB0b2tlbi5cbiAgICogRmFsbHMgYmFjayB0byBgQVhJT01fT1JHX0lEYC5cbiAgICovXG4gIG9yZ0lkPzogc3RyaW5nXG59XG5cbi8qKlxuICogQ3JlYXRlcyBhIHRyYW5zcG9ydCB0aGF0IHNoaXBzIGxvZ3MgdG8gYW4gQXhpb20gZGF0YXNldCB2aWEgdGhlIGluZ2VzdCBBUEkuXG4gKiBFdmVudHMga2VlcCB0aGVpciBuZXN0ZWQgc3RydWN0dXJlIOKAlCBBeGlvbSBpbmRleGVzIGV2ZXJ5IGZpZWxkIHdpdGhvdXQgYVxuICogc2NoZW1hLCBzbyBgcmVxdWVzdC5tZXRob2RgLCBgY29udGV4dC5yZXF1ZXN0SWRgLCBldGMuIGFyZSBhbGwgcXVlcnlhYmxlLlxuICpcbiAqIEB0aHJvd3MgV2hlbiBubyBBUEkgdG9rZW4gb3IgZGF0YXNldCBpcyBjb25maWd1cmVkLlxuICovXG5leHBvcnQgY29uc3QgY3JlYXRlQXhpb21UcmFuc3BvcnQgPSAoXG4gIG9wdGlvbnM6IEF4aW9tVHJhbnNwb3J0T3B0aW9ucyA9IHt9XG4pOiBBZGFwdGVyVHJhbnNwb3J0ID0+IHtcbiAgY29uc3QgYXBpS2V5ID0gb3B0aW9ucy5hcGlLZXkgPz8gZW52U3RyaW5nKCdBWElPTV9BUElfS0VZJylcbiAgaWYgKCFhcGlLZXkpIHtcbiAgICB0aHJvdyB0cmFuc3BvcnRFcnJvcihcbiAgICAgICdBeGlvbScsXG4gICAgICAnbWlzc2luZyBBUEkgdG9rZW4uIFNldCBBWElPTV9BUElfS0VZIG9yIHBhc3MgYXBpS2V5IHRvIGNyZWF0ZUF4aW9tVHJhbnNwb3J0KCknXG4gICAgKVxuICB9XG4gIGNvbnN0IGRhdGFzZXQgPSBvcHRpb25zLmRhdGFzZXQgPz8gZW52U3RyaW5nKCdBWElPTV9EQVRBU0VUJylcbiAgaWYgKCFkYXRhc2V0KSB7XG4gICAgdGhyb3cgdHJhbnNwb3J0RXJyb3IoXG4gICAgICAnQXhpb20nLFxuICAgICAgJ21pc3NpbmcgZGF0YXNldC4gU2V0IEFYSU9NX0RBVEFTRVQgb3IgcGFzcyBkYXRhc2V0IHRvIGNyZWF0ZUF4aW9tVHJhbnNwb3J0KCknXG4gICAgKVxuICB9XG4gIGNvbnN0IGJhc2VVcmwgPSBzdHJpcFRyYWlsaW5nU2xhc2hlcyhcbiAgICBvcHRpb25zLmJhc2VVcmwgPz8gZW52U3RyaW5nKCdBWElPTV9VUkwnKSA/PyBERUZBVUxUX0JBU0VfVVJMXG4gIClcbiAgY29uc3Qgb3JnSWQgPSBvcHRpb25zLm9yZ0lkID8/IGVudlN0cmluZygnQVhJT01fT1JHX0lEJylcblxuICBjb25zdCBoZWFkZXJzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICAgIEF1dGhvcml6YXRpb246IGBCZWFyZXIgJHthcGlLZXl9YCxcbiAgICAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nXG4gIH1cbiAgaWYgKG9yZ0lkKSB7XG4gICAgaGVhZGVyc1snWC1BeGlvbS1PcmctSWQnXSA9IG9yZ0lkXG4gIH1cblxuICByZXR1cm4gY3JlYXRlSHR0cFRyYW5zcG9ydCh7XG4gICAgYm9keTogZW50cmllcyA9PlxuICAgICAgSlNPTi5zdHJpbmdpZnkoXG4gICAgICAgIC8vIE1ldGEgZmlyc3Qgc28gdGhlIGFkYXB0ZXItb3duZWQgZmllbGRzIGJlbG93IGFsd2F5cyB3aW4gb24gY29sbGlzaW9uLlxuICAgICAgICBlbnRyaWVzLm1hcChlbnRyeSA9PiAoe1xuICAgICAgICAgIC4uLmVudHJ5Lm1ldGEsXG4gICAgICAgICAgX3RpbWU6IGVudHJ5LnRpbWVzdGFtcC50b0lTT1N0cmluZygpLFxuICAgICAgICAgIGxldmVsOiBlbnRyeS5sZXZlbCxcbiAgICAgICAgICBtZXNzYWdlOiBlbnRyeS5tZXNzYWdlXG4gICAgICAgIH0pKVxuICAgICAgKSxcbiAgICBoZWFkZXJzLFxuICAgIG5hbWU6ICdBeGlvbScsXG4gICAgb3B0aW9ucyxcbiAgICB1cmw6IGAke2Jhc2VVcmx9L3YxL2RhdGFzZXRzLyR7ZW5jb2RlVVJJQ29tcG9uZW50KGRhdGFzZXQpfS9pbmdlc3RgXG4gIH0pXG59XG5cbmV4cG9ydCB0eXBlIHsgQWRhcHRlclRyYW5zcG9ydCB9IGZyb20gJy4vYWRhcHRlcnMvc2hhcmVkJ1xuIgogIF0sCiAgIm1hcHBpbmdzIjogIjJHQVNBLFVBQU0sRUFBbUIsdUJBaUNaLEVBQXVCLENBQ2xDLEVBQWlDLENBQUMsSUFDYixDQUNyQixJQUFNLEVBQVMsRUFBUSxRQUFVLEVBQVUsZUFBZSxFQUMxRCxHQUFJLENBQUMsRUFDSCxNQUFNLEVBQ0osUUFDQSwrRUFDRixFQUVGLElBQU0sRUFBVSxFQUFRLFNBQVcsRUFBVSxlQUFlLEVBQzVELEdBQUksQ0FBQyxFQUNILE1BQU0sRUFDSixRQUNBLDhFQUNGLEVBRUYsSUFBTSxFQUFVLEVBQ2QsRUFBUSxTQUFXLEVBQVUsV0FBVyxHQUFLLENBQy9DLEVBQ00sRUFBUSxFQUFRLE9BQVMsRUFBVSxjQUFjLEVBRWpELEVBQWtDLENBQ3RDLGNBQWUsVUFBVSxJQUN6QixlQUFnQixrQkFDbEIsRUFDQSxHQUFJLEVBQ0YsRUFBUSxrQkFBb0IsRUFHOUIsT0FBTyxFQUFvQixDQUN6QixLQUFNLEtBQ0osS0FBSyxVQUVILEVBQVEsSUFBSSxNQUFVLElBQ2pCLEVBQU0sS0FDVCxNQUFPLEVBQU0sVUFBVSxZQUFZLEVBQ25DLE1BQU8sRUFBTSxNQUNiLFFBQVMsRUFBTSxPQUNqQixFQUFFLENBQ0osRUFDRixVQUNBLEtBQU0sUUFDTixVQUNBLElBQUssR0FBRyxpQkFBdUIsbUJBQW1CLENBQU8sVUFDM0QsQ0FBQyIsCiAgImRlYnVnSWQiOiAiMDE0N0QzOThENTcxNDQzRjY0NzU2RTIxNjQ3NTZFMjEiLAogICJuYW1lcyI6IFtdCn0=
3
+ //# debugId=9DE441F47039740664756E2164756E21
4
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsic3JjL2F4aW9tLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWwogICAgImltcG9ydCB7XG4gIGNyZWF0ZUh0dHBUcmFuc3BvcnQsXG4gIGVudlN0cmluZyxcbiAgc3RyaXBUcmFpbGluZ1NsYXNoZXMsXG4gIHRyYW5zcG9ydEVycm9yXG59IGZyb20gJy4vYWRhcHRlcnMvc2hhcmVkJ1xuaW1wb3J0IHR5cGUgeyBBZGFwdGVyVHJhbnNwb3J0LCBCYXRjaFRyYW5zcG9ydE9wdGlvbnMgfSBmcm9tICcuL2FkYXB0ZXJzL3NoYXJlZCdcbmltcG9ydCB7IHN0cmluZ2lmeUZvckxvZyB9IGZyb20gJy4vdXRpbHMvanNvbidcblxuY29uc3QgREVGQVVMVF9CQVNFX1VSTCA9ICdodHRwczovL2FwaS5heGlvbS5jbydcblxuZXhwb3J0IGludGVyZmFjZSBBeGlvbVRyYW5zcG9ydE9wdGlvbnMgZXh0ZW5kcyBCYXRjaFRyYW5zcG9ydE9wdGlvbnMge1xuICAvKipcbiAgICogQXhpb20gQVBJIHRva2VuIHdpdGggaW5nZXN0IHBlcm1pc3Npb24gKGB4YWF0LeKApmApLlxuICAgKiBGYWxscyBiYWNrIHRvIHRoZSBgQVhJT01fQVBJX0tFWWAgZW52aXJvbm1lbnQgdmFyaWFibGUuXG4gICAqL1xuICBhcGlLZXk/OiBzdHJpbmdcbiAgLyoqXG4gICAqIEFQSSBiYXNlIFVSTC5cbiAgICogRmFsbHMgYmFjayB0byBgQVhJT01fVVJMYC5cbiAgICogQGRlZmF1bHQgJ2h0dHBzOi8vYXBpLmF4aW9tLmNvJ1xuICAgKi9cbiAgYmFzZVVybD86IHN0cmluZ1xuICAvKipcbiAgICogVGFyZ2V0IGRhdGFzZXQgbmFtZS5cbiAgICogRmFsbHMgYmFjayB0byBgQVhJT01fREFUQVNFVGAuXG4gICAqL1xuICBkYXRhc2V0Pzogc3RyaW5nXG4gIC8qKlxuICAgKiBPcmdhbml6YXRpb24gSUQg4oCUIHJlcXVpcmVkIHdoZW4gdXNpbmcgYSBwZXJzb25hbCBhY2Nlc3MgdG9rZW4uXG4gICAqIEZhbGxzIGJhY2sgdG8gYEFYSU9NX09SR19JRGAuXG4gICAqL1xuICBvcmdJZD86IHN0cmluZ1xufVxuXG4vKipcbiAqIENyZWF0ZXMgYSB0cmFuc3BvcnQgdGhhdCBzaGlwcyBsb2dzIHRvIGFuIEF4aW9tIGRhdGFzZXQgdmlhIHRoZSBpbmdlc3QgQVBJLlxuICogRXZlbnRzIGtlZXAgdGhlaXIgbmVzdGVkIHN0cnVjdHVyZSDigJQgQXhpb20gaW5kZXhlcyBldmVyeSBmaWVsZCB3aXRob3V0IGFcbiAqIHNjaGVtYSwgc28gYHJlcXVlc3QubWV0aG9kYCwgYGNvbnRleHQucmVxdWVzdElkYCwgZXRjLiBhcmUgYWxsIHF1ZXJ5YWJsZS5cbiAqXG4gKiBAdGhyb3dzIHtFcnJvcn0gV2hlbiBubyBBUEkgdG9rZW4gb3IgZGF0YXNldCBpcyBjb25maWd1cmVkLlxuICovXG5leHBvcnQgY29uc3QgY3JlYXRlQXhpb21UcmFuc3BvcnQgPSAoXG4gIG9wdGlvbnM6IEF4aW9tVHJhbnNwb3J0T3B0aW9ucyA9IHt9XG4pOiBBZGFwdGVyVHJhbnNwb3J0ID0+IHtcbiAgY29uc3QgYXBpS2V5ID0gb3B0aW9ucy5hcGlLZXkgPz8gZW52U3RyaW5nKCdBWElPTV9BUElfS0VZJylcbiAgaWYgKCFhcGlLZXkpIHtcbiAgICB0aHJvdyB0cmFuc3BvcnRFcnJvcihcbiAgICAgICdBeGlvbScsXG4gICAgICAnbWlzc2luZyBBUEkgdG9rZW4uIFNldCBBWElPTV9BUElfS0VZIG9yIHBhc3MgYXBpS2V5IHRvIGNyZWF0ZUF4aW9tVHJhbnNwb3J0KCknXG4gICAgKVxuICB9XG4gIGNvbnN0IGRhdGFzZXQgPSBvcHRpb25zLmRhdGFzZXQgPz8gZW52U3RyaW5nKCdBWElPTV9EQVRBU0VUJylcbiAgaWYgKCFkYXRhc2V0KSB7XG4gICAgdGhyb3cgdHJhbnNwb3J0RXJyb3IoXG4gICAgICAnQXhpb20nLFxuICAgICAgJ21pc3NpbmcgZGF0YXNldC4gU2V0IEFYSU9NX0RBVEFTRVQgb3IgcGFzcyBkYXRhc2V0IHRvIGNyZWF0ZUF4aW9tVHJhbnNwb3J0KCknXG4gICAgKVxuICB9XG4gIGNvbnN0IGJhc2VVcmwgPSBzdHJpcFRyYWlsaW5nU2xhc2hlcyhcbiAgICBvcHRpb25zLmJhc2VVcmwgPz8gZW52U3RyaW5nKCdBWElPTV9VUkwnKSA/PyBERUZBVUxUX0JBU0VfVVJMXG4gIClcbiAgY29uc3Qgb3JnSWQgPSBvcHRpb25zLm9yZ0lkID8/IGVudlN0cmluZygnQVhJT01fT1JHX0lEJylcblxuICBjb25zdCBoZWFkZXJzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICAgIEF1dGhvcml6YXRpb246IGBCZWFyZXIgJHthcGlLZXl9YCxcbiAgICAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nXG4gIH1cbiAgaWYgKG9yZ0lkKSB7XG4gICAgaGVhZGVyc1snWC1BeGlvbS1PcmctSWQnXSA9IG9yZ0lkXG4gIH1cblxuICByZXR1cm4gY3JlYXRlSHR0cFRyYW5zcG9ydCh7XG4gICAgYm9keTogZW50cmllcyA9PlxuICAgICAgc3RyaW5naWZ5Rm9yTG9nKFxuICAgICAgICAvLyBNZXRhIGZpcnN0IHNvIHRoZSBhZGFwdGVyLW93bmVkIGZpZWxkcyBiZWxvdyBhbHdheXMgd2luIG9uIGNvbGxpc2lvbi5cbiAgICAgICAgZW50cmllcy5tYXAoZW50cnkgPT4gKHtcbiAgICAgICAgICAuLi5lbnRyeS5tZXRhLFxuICAgICAgICAgIF90aW1lOiBlbnRyeS50aW1lc3RhbXAudG9JU09TdHJpbmcoKSxcbiAgICAgICAgICBsZXZlbDogZW50cnkubGV2ZWwsXG4gICAgICAgICAgbWVzc2FnZTogZW50cnkubWVzc2FnZVxuICAgICAgICB9KSlcbiAgICAgICksXG4gICAgaGVhZGVycyxcbiAgICBuYW1lOiAnQXhpb20nLFxuICAgIG9wdGlvbnMsXG4gICAgdXJsOiBgJHtiYXNlVXJsfS92MS9kYXRhc2V0cy8ke2VuY29kZVVSSUNvbXBvbmVudChkYXRhc2V0KX0vaW5nZXN0YFxuICB9KVxufVxuXG5leHBvcnQgdHlwZSB7IEFkYXB0ZXJUcmFuc3BvcnQgfSBmcm9tICcuL2FkYXB0ZXJzL3NoYXJlZCdcbiIKICBdLAogICJtYXBwaW5ncyI6ICJ1SEFTQSxVQUFNLEVBQW1CLHVCQWlDWixFQUF1QixDQUNsQyxFQUFpQyxDQUFDLElBQ2IsQ0FDckIsSUFBTSxFQUFTLEVBQVEsUUFBVSxFQUFVLGVBQWUsRUFDMUQsR0FBSSxDQUFDLEVBQ0gsTUFBTSxFQUNKLFFBQ0EsK0VBQ0YsRUFFRixJQUFNLEVBQVUsRUFBUSxTQUFXLEVBQVUsZUFBZSxFQUM1RCxHQUFJLENBQUMsRUFDSCxNQUFNLEVBQ0osUUFDQSw4RUFDRixFQUVGLElBQU0sRUFBVSxFQUNkLEVBQVEsU0FBVyxFQUFVLFdBQVcsR0FBSyxDQUMvQyxFQUNNLEVBQVEsRUFBUSxPQUFTLEVBQVUsY0FBYyxFQUVqRCxFQUFrQyxDQUN0QyxjQUFlLFVBQVUsSUFDekIsZUFBZ0Isa0JBQ2xCLEVBQ0EsR0FBSSxFQUNGLEVBQVEsa0JBQW9CLEVBRzlCLE9BQU8sRUFBb0IsQ0FDekIsS0FBTSxLQUNKLEVBRUUsRUFBUSxJQUFJLE1BQVUsSUFDakIsRUFBTSxLQUNULE1BQU8sRUFBTSxVQUFVLFlBQVksRUFDbkMsTUFBTyxFQUFNLE1BQ2IsUUFBUyxFQUFNLE9BQ2pCLEVBQUUsQ0FDSixFQUNGLFVBQ0EsS0FBTSxRQUNOLFVBQ0EsSUFBSyxHQUFHLGlCQUF1QixtQkFBbUIsQ0FBTyxVQUMzRCxDQUFDIiwKICAiZGVidWdJZCI6ICI5REU0NDFGNDcwMzk3NDA2NjQ3NTZFMjE2NDc1NkUyMSIsCiAgIm5hbWVzIjogW10KfQ==
@@ -77,7 +77,7 @@ interface BetterStackTransportOptions extends BatchTransportOptions {
77
77
  * Each log posts as JSON with a `dt` timestamp, `level`, `message`, and the
78
78
  * full meta object — all queryable in Live tail and SQL.
79
79
  *
80
- * @throws When no source token is configured.
80
+ * @throws {Error} When no source token is configured.
81
81
  */
82
82
  declare const createBetterStackTransport: (options?: BetterStackTransportOptions) => AdapterTransport;
83
83
  export { createBetterStackTransport, BetterStackTransportOptions, AdapterTransport };
@@ -1,4 +1,4 @@
1
- import{c as z,d as q,e as C,g as G,j as J}from"./shared/Logixlysia-jvphdjgs.js";import"./shared/Logixlysia-nrt7tysy.js";var Q="https://in.logs.betterstack.com",V=(m={})=>{let x=m.sourceToken??q("BETTER_STACK_SOURCE_TOKEN");if(!x)throw C("Better Stack","missing source token. Set BETTER_STACK_SOURCE_TOKEN or pass sourceToken to createBetterStackTransport()");return G({body:(K)=>JSON.stringify(K.map((j)=>({...j.meta,dt:j.timestamp.toISOString(),level:j.level,message:J(j)}))),headers:{Authorization:`Bearer ${x}`,"Content-Type":"application/json"},name:"Better Stack",options:m,url:z(m.endpoint??q("BETTER_STACK_INGESTING_HOST")??Q)})};export{V as createBetterStackTransport};
1
+ import{c as G,d as x,e as J,g as K,j as Q}from"./shared/Logixlysia-kwnc1c9b.js";import{k as C}from"./shared/Logixlysia-1ap5daz6.js";var V="https://in.logs.betterstack.com",Y=(q={})=>{let z=q.sourceToken??x("BETTER_STACK_SOURCE_TOKEN");if(!z)throw J("Better Stack","missing source token. Set BETTER_STACK_SOURCE_TOKEN or pass sourceToken to createBetterStackTransport()");return K({body:(R)=>C(R.map((m)=>({...m.meta,dt:m.timestamp.toISOString(),level:m.level,message:Q(m)}))),headers:{Authorization:`Bearer ${z}`,"Content-Type":"application/json"},name:"Better Stack",options:q,url:G(q.endpoint??x("BETTER_STACK_INGESTING_HOST")??V)})};export{Y as createBetterStackTransport};
2
2
 
3
- //# debugId=0B7C1B3FBF59798064756E2164756E21
4
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsic3JjL2JldHRlci1zdGFjay50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsKICAgICJpbXBvcnQge1xuICB0eXBlIEFkYXB0ZXJUcmFuc3BvcnQsXG4gIHR5cGUgQmF0Y2hUcmFuc3BvcnRPcHRpb25zLFxuICBjcmVhdGVIdHRwVHJhbnNwb3J0LFxuICBkZWZhdWx0Qm9keSxcbiAgZW52U3RyaW5nLFxuICBzdHJpcFRyYWlsaW5nU2xhc2hlcyxcbiAgdHJhbnNwb3J0RXJyb3Jcbn0gZnJvbSAnLi9hZGFwdGVycy9zaGFyZWQnXG5cbmNvbnN0IERFRkFVTFRfRU5EUE9JTlQgPSAnaHR0cHM6Ly9pbi5sb2dzLmJldHRlcnN0YWNrLmNvbSdcblxuZXhwb3J0IGludGVyZmFjZSBCZXR0ZXJTdGFja1RyYW5zcG9ydE9wdGlvbnMgZXh0ZW5kcyBCYXRjaFRyYW5zcG9ydE9wdGlvbnMge1xuICAvKipcbiAgICogSW5nZXN0aW5nIFVSTCBzaG93biBuZXh0IHRvIHRoZSBzb3VyY2UgdG9rZW4g4oCUIG5ld2VyIHNvdXJjZXMgZ2V0IGFcbiAgICogZGVkaWNhdGVkIGhvc3QgbGlrZSBgaHR0cHM6Ly9zMTIzNDU2LmV1LW5iZy0yLmJldHRlcnN0YWNrZGF0YS5jb21gLlxuICAgKiBGYWxscyBiYWNrIHRvIGBCRVRURVJfU1RBQ0tfSU5HRVNUSU5HX0hPU1RgLlxuICAgKiBAZGVmYXVsdCAnaHR0cHM6Ly9pbi5sb2dzLmJldHRlcnN0YWNrLmNvbSdcbiAgICovXG4gIGVuZHBvaW50Pzogc3RyaW5nXG4gIC8qKlxuICAgKiBTb3VyY2UgdG9rZW4gZnJvbSB0aGUgQmV0dGVyIFN0YWNrIHNvdXJjZSBzZXR0aW5ncywgc2VudCBhcyBhIEJlYXJlclxuICAgKiB0b2tlbi4gRmFsbHMgYmFjayB0byB0aGUgYEJFVFRFUl9TVEFDS19TT1VSQ0VfVE9LRU5gIGVudmlyb25tZW50IHZhcmlhYmxlLlxuICAgKi9cbiAgc291cmNlVG9rZW4/OiBzdHJpbmdcbn1cblxuLyoqXG4gKiBDcmVhdGVzIGEgdHJhbnNwb3J0IHRoYXQgc2hpcHMgbG9ncyB0byBCZXR0ZXIgU3RhY2sgKFRlbGVtZXRyeSAvIExvZ3MpLlxuICogRWFjaCBsb2cgcG9zdHMgYXMgSlNPTiB3aXRoIGEgYGR0YCB0aW1lc3RhbXAsIGBsZXZlbGAsIGBtZXNzYWdlYCwgYW5kIHRoZVxuICogZnVsbCBtZXRhIG9iamVjdCDigJQgYWxsIHF1ZXJ5YWJsZSBpbiBMaXZlIHRhaWwgYW5kIFNRTC5cbiAqXG4gKiBAdGhyb3dzIFdoZW4gbm8gc291cmNlIHRva2VuIGlzIGNvbmZpZ3VyZWQuXG4gKi9cbmV4cG9ydCBjb25zdCBjcmVhdGVCZXR0ZXJTdGFja1RyYW5zcG9ydCA9IChcbiAgb3B0aW9uczogQmV0dGVyU3RhY2tUcmFuc3BvcnRPcHRpb25zID0ge31cbik6IEFkYXB0ZXJUcmFuc3BvcnQgPT4ge1xuICBjb25zdCBzb3VyY2VUb2tlbiA9XG4gICAgb3B0aW9ucy5zb3VyY2VUb2tlbiA/PyBlbnZTdHJpbmcoJ0JFVFRFUl9TVEFDS19TT1VSQ0VfVE9LRU4nKVxuICBpZiAoIXNvdXJjZVRva2VuKSB7XG4gICAgdGhyb3cgdHJhbnNwb3J0RXJyb3IoXG4gICAgICAnQmV0dGVyIFN0YWNrJyxcbiAgICAgICdtaXNzaW5nIHNvdXJjZSB0b2tlbi4gU2V0IEJFVFRFUl9TVEFDS19TT1VSQ0VfVE9LRU4gb3IgcGFzcyBzb3VyY2VUb2tlbiB0byBjcmVhdGVCZXR0ZXJTdGFja1RyYW5zcG9ydCgpJ1xuICAgIClcbiAgfVxuXG4gIHJldHVybiBjcmVhdGVIdHRwVHJhbnNwb3J0KHtcbiAgICBib2R5OiBlbnRyaWVzID0+XG4gICAgICBKU09OLnN0cmluZ2lmeShcbiAgICAgICAgLy8gTWV0YSBmaXJzdCBzbyB0aGUgYWRhcHRlci1vd25lZCBmaWVsZHMgYmVsb3cgYWx3YXlzIHdpbiBvbiBjb2xsaXNpb24uXG4gICAgICAgIGVudHJpZXMubWFwKGVudHJ5ID0+ICh7XG4gICAgICAgICAgLi4uZW50cnkubWV0YSxcbiAgICAgICAgICBkdDogZW50cnkudGltZXN0YW1wLnRvSVNPU3RyaW5nKCksXG4gICAgICAgICAgbGV2ZWw6IGVudHJ5LmxldmVsLFxuICAgICAgICAgIG1lc3NhZ2U6IGRlZmF1bHRCb2R5KGVudHJ5KVxuICAgICAgICB9KSlcbiAgICAgICksXG4gICAgaGVhZGVyczoge1xuICAgICAgQXV0aG9yaXphdGlvbjogYEJlYXJlciAke3NvdXJjZVRva2VufWAsXG4gICAgICAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nXG4gICAgfSxcbiAgICBuYW1lOiAnQmV0dGVyIFN0YWNrJyxcbiAgICBvcHRpb25zLFxuICAgIHVybDogc3RyaXBUcmFpbGluZ1NsYXNoZXMoXG4gICAgICBvcHRpb25zLmVuZHBvaW50ID8/XG4gICAgICAgIGVudlN0cmluZygnQkVUVEVSX1NUQUNLX0lOR0VTVElOR19IT1NUJykgPz9cbiAgICAgICAgREVGQVVMVF9FTkRQT0lOVFxuICAgIClcbiAgfSlcbn1cblxuZXhwb3J0IHR5cGUgeyBBZGFwdGVyVHJhbnNwb3J0IH0gZnJvbSAnLi9hZGFwdGVycy9zaGFyZWQnXG4iCiAgXSwKICAibWFwcGluZ3MiOiAia0hBVUEsVUFBTSxFQUFtQixrQ0F3QlosRUFBNkIsQ0FDeEMsRUFBdUMsQ0FBQyxJQUNuQixDQUNyQixJQUFNLEVBQ0osRUFBUSxhQUFlLEVBQVUsMkJBQTJCLEVBQzlELEdBQUksQ0FBQyxFQUNILE1BQU0sRUFDSixlQUNBLHlHQUNGLEVBR0YsT0FBTyxFQUFvQixDQUN6QixLQUFNLEtBQ0osS0FBSyxVQUVILEVBQVEsSUFBSSxNQUFVLElBQ2pCLEVBQU0sS0FDVCxHQUFJLEVBQU0sVUFBVSxZQUFZLEVBQ2hDLE1BQU8sRUFBTSxNQUNiLFFBQVMsRUFBWSxDQUFLLENBQzVCLEVBQUUsQ0FDSixFQUNGLFFBQVMsQ0FDUCxjQUFlLFVBQVUsSUFDekIsZUFBZ0Isa0JBQ2xCLEVBQ0EsS0FBTSxlQUNOLFVBQ0EsSUFBSyxFQUNILEVBQVEsVUFDTixFQUFVLDZCQUE2QixHQUN2QyxDQUNKLENBQ0YsQ0FBQyIsCiAgImRlYnVnSWQiOiAiMEI3QzFCM0ZCRjU5Nzk4MDY0NzU2RTIxNjQ3NTZFMjEiLAogICJuYW1lcyI6IFtdCn0=
3
+ //# debugId=45939F6D5FC2E8D764756E2164756E21
4
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsic3JjL2JldHRlci1zdGFjay50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsKICAgICJpbXBvcnQge1xuICBjcmVhdGVIdHRwVHJhbnNwb3J0LFxuICBkZWZhdWx0Qm9keSxcbiAgZW52U3RyaW5nLFxuICBzdHJpcFRyYWlsaW5nU2xhc2hlcyxcbiAgdHJhbnNwb3J0RXJyb3Jcbn0gZnJvbSAnLi9hZGFwdGVycy9zaGFyZWQnXG5pbXBvcnQgdHlwZSB7IEFkYXB0ZXJUcmFuc3BvcnQsIEJhdGNoVHJhbnNwb3J0T3B0aW9ucyB9IGZyb20gJy4vYWRhcHRlcnMvc2hhcmVkJ1xuaW1wb3J0IHsgc3RyaW5naWZ5Rm9yTG9nIH0gZnJvbSAnLi91dGlscy9qc29uJ1xuXG5jb25zdCBERUZBVUxUX0VORFBPSU5UID0gJ2h0dHBzOi8vaW4ubG9ncy5iZXR0ZXJzdGFjay5jb20nXG5cbmV4cG9ydCBpbnRlcmZhY2UgQmV0dGVyU3RhY2tUcmFuc3BvcnRPcHRpb25zIGV4dGVuZHMgQmF0Y2hUcmFuc3BvcnRPcHRpb25zIHtcbiAgLyoqXG4gICAqIEluZ2VzdGluZyBVUkwgc2hvd24gbmV4dCB0byB0aGUgc291cmNlIHRva2VuIOKAlCBuZXdlciBzb3VyY2VzIGdldCBhXG4gICAqIGRlZGljYXRlZCBob3N0IGxpa2UgYGh0dHBzOi8vczEyMzQ1Ni5ldS1uYmctMi5iZXR0ZXJzdGFja2RhdGEuY29tYC5cbiAgICogRmFsbHMgYmFjayB0byBgQkVUVEVSX1NUQUNLX0lOR0VTVElOR19IT1NUYC5cbiAgICogQGRlZmF1bHQgJ2h0dHBzOi8vaW4ubG9ncy5iZXR0ZXJzdGFjay5jb20nXG4gICAqL1xuICBlbmRwb2ludD86IHN0cmluZ1xuICAvKipcbiAgICogU291cmNlIHRva2VuIGZyb20gdGhlIEJldHRlciBTdGFjayBzb3VyY2Ugc2V0dGluZ3MsIHNlbnQgYXMgYSBCZWFyZXJcbiAgICogdG9rZW4uIEZhbGxzIGJhY2sgdG8gdGhlIGBCRVRURVJfU1RBQ0tfU09VUkNFX1RPS0VOYCBlbnZpcm9ubWVudCB2YXJpYWJsZS5cbiAgICovXG4gIHNvdXJjZVRva2VuPzogc3RyaW5nXG59XG5cbi8qKlxuICogQ3JlYXRlcyBhIHRyYW5zcG9ydCB0aGF0IHNoaXBzIGxvZ3MgdG8gQmV0dGVyIFN0YWNrIChUZWxlbWV0cnkgLyBMb2dzKS5cbiAqIEVhY2ggbG9nIHBvc3RzIGFzIEpTT04gd2l0aCBhIGBkdGAgdGltZXN0YW1wLCBgbGV2ZWxgLCBgbWVzc2FnZWAsIGFuZCB0aGVcbiAqIGZ1bGwgbWV0YSBvYmplY3Qg4oCUIGFsbCBxdWVyeWFibGUgaW4gTGl2ZSB0YWlsIGFuZCBTUUwuXG4gKlxuICogQHRocm93cyB7RXJyb3J9IFdoZW4gbm8gc291cmNlIHRva2VuIGlzIGNvbmZpZ3VyZWQuXG4gKi9cbmV4cG9ydCBjb25zdCBjcmVhdGVCZXR0ZXJTdGFja1RyYW5zcG9ydCA9IChcbiAgb3B0aW9uczogQmV0dGVyU3RhY2tUcmFuc3BvcnRPcHRpb25zID0ge31cbik6IEFkYXB0ZXJUcmFuc3BvcnQgPT4ge1xuICBjb25zdCBzb3VyY2VUb2tlbiA9XG4gICAgb3B0aW9ucy5zb3VyY2VUb2tlbiA/PyBlbnZTdHJpbmcoJ0JFVFRFUl9TVEFDS19TT1VSQ0VfVE9LRU4nKVxuICBpZiAoIXNvdXJjZVRva2VuKSB7XG4gICAgdGhyb3cgdHJhbnNwb3J0RXJyb3IoXG4gICAgICAnQmV0dGVyIFN0YWNrJyxcbiAgICAgICdtaXNzaW5nIHNvdXJjZSB0b2tlbi4gU2V0IEJFVFRFUl9TVEFDS19TT1VSQ0VfVE9LRU4gb3IgcGFzcyBzb3VyY2VUb2tlbiB0byBjcmVhdGVCZXR0ZXJTdGFja1RyYW5zcG9ydCgpJ1xuICAgIClcbiAgfVxuXG4gIHJldHVybiBjcmVhdGVIdHRwVHJhbnNwb3J0KHtcbiAgICBib2R5OiBlbnRyaWVzID0+XG4gICAgICBzdHJpbmdpZnlGb3JMb2coXG4gICAgICAgIC8vIE1ldGEgZmlyc3Qgc28gdGhlIGFkYXB0ZXItb3duZWQgZmllbGRzIGJlbG93IGFsd2F5cyB3aW4gb24gY29sbGlzaW9uLlxuICAgICAgICBlbnRyaWVzLm1hcChlbnRyeSA9PiAoe1xuICAgICAgICAgIC4uLmVudHJ5Lm1ldGEsXG4gICAgICAgICAgZHQ6IGVudHJ5LnRpbWVzdGFtcC50b0lTT1N0cmluZygpLFxuICAgICAgICAgIGxldmVsOiBlbnRyeS5sZXZlbCxcbiAgICAgICAgICBtZXNzYWdlOiBkZWZhdWx0Qm9keShlbnRyeSlcbiAgICAgICAgfSkpXG4gICAgICApLFxuICAgIGhlYWRlcnM6IHtcbiAgICAgIEF1dGhvcml6YXRpb246IGBCZWFyZXIgJHtzb3VyY2VUb2tlbn1gLFxuICAgICAgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uJ1xuICAgIH0sXG4gICAgbmFtZTogJ0JldHRlciBTdGFjaycsXG4gICAgb3B0aW9ucyxcbiAgICB1cmw6IHN0cmlwVHJhaWxpbmdTbGFzaGVzKFxuICAgICAgb3B0aW9ucy5lbmRwb2ludCA/P1xuICAgICAgICBlbnZTdHJpbmcoJ0JFVFRFUl9TVEFDS19JTkdFU1RJTkdfSE9TVCcpID8/XG4gICAgICAgIERFRkFVTFRfRU5EUE9JTlRcbiAgICApXG4gIH0pXG59XG5cbmV4cG9ydCB0eXBlIHsgQWRhcHRlclRyYW5zcG9ydCB9IGZyb20gJy4vYWRhcHRlcnMvc2hhcmVkJ1xuIgogIF0sCiAgIm1hcHBpbmdzIjogIjhIQVVBLFVBQU0sRUFBbUIsa0NBd0JaLEVBQTZCLENBQ3hDLEVBQXVDLENBQUMsSUFDbkIsQ0FDckIsSUFBTSxFQUNKLEVBQVEsYUFBZSxFQUFVLDJCQUEyQixFQUM5RCxHQUFJLENBQUMsRUFDSCxNQUFNLEVBQ0osZUFDQSx5R0FDRixFQUdGLE9BQU8sRUFBb0IsQ0FDekIsS0FBTSxLQUNKLEVBRUUsRUFBUSxJQUFJLE1BQVUsSUFDakIsRUFBTSxLQUNULEdBQUksRUFBTSxVQUFVLFlBQVksRUFDaEMsTUFBTyxFQUFNLE1BQ2IsUUFBUyxFQUFZLENBQUssQ0FDNUIsRUFBRSxDQUNKLEVBQ0YsUUFBUyxDQUNQLGNBQWUsVUFBVSxJQUN6QixlQUFnQixrQkFDbEIsRUFDQSxLQUFNLGVBQ04sVUFDQSxJQUFLLEVBQ0gsRUFBUSxVQUNOLEVBQVUsNkJBQTZCLEdBQ3ZDLENBQ0osQ0FDRixDQUFDIiwKICAiZGVidWdJZCI6ICI0NTkzOUY2RDVGQzJFOEQ3NjQ3NTZFMjE2NDc1NkUyMSIsCiAgIm5hbWVzIjogW10KfQ==
@@ -96,7 +96,7 @@ interface ClickHouseTransportOptions extends BatchTransportOptions {
96
96
  * and an `attributes` map of the flattened meta (`request.method`,
97
97
  * `context.requestId`, …) with values rendered as strings.
98
98
  *
99
- * @throws When the database or table name is not a plain identifier.
99
+ * @throws {Error} When the database or table name is not a plain identifier.
100
100
  */
101
101
  declare const createClickHouseTransport: (options?: ClickHouseTransportOptions) => AdapterTransport;
102
102
  export { createClickHouseTransport, ClickHouseTransportOptions, AdapterTransport };
@@ -1,5 +1,5 @@
1
- import{c as $,d as G,e as x,g as J,h as M,j as O}from"./shared/Logixlysia-jvphdjgs.js";import"./shared/Logixlysia-nrt7tysy.js";var C="http://localhost:8123",N="default",q="logs",B=/^[A-Za-z0-9_]+$/,Z=(j,z)=>{if(!B.test(j))throw x("ClickHouse",`invalid ${z} '${j}'. Only letters, digits, and underscores are allowed`);return j},H=(j)=>{let z={};for(let[K,Q]of Object.entries(M(j.meta)))z[K]=String(Q);return JSON.stringify({attributes:z,level:j.level,message:O(j),timestamp:j.timestamp.toISOString()})},k=(j={})=>{let z=$(j.url??G("CLICKHOUSE_URL")??C),K=Z(j.database??G("CLICKHOUSE_DATABASE")??N,"database"),Q=Z(j.table??G("CLICKHOUSE_TABLE")??q,"table"),X=j.username??G("CLICKHOUSE_USERNAME"),Y=j.password??G("CLICKHOUSE_PASSWORD"),P=new URLSearchParams({date_time_input_format:"best_effort",query:`INSERT INTO ${K}.${Q} FORMAT JSONEachRow`}),V={"Content-Type":"application/json"};if(X)V["X-ClickHouse-User"]=X;if(Y)V["X-ClickHouse-Key"]=Y;return J({body:(W)=>W.map(H).join(`
1
+ import{c as $,d as G,e as x,g as J,h as M,j as O}from"./shared/Logixlysia-kwnc1c9b.js";import"./shared/Logixlysia-1ap5daz6.js";var C="http://localhost:8123",N="default",q="logs",B=/^[A-Za-z0-9_]+$/u,Z=(j,z)=>{if(!B.test(j))throw x("ClickHouse",`invalid ${z} '${j}'. Only letters, digits, and underscores are allowed`);return j},H=(j)=>{let z={};for(let[K,Q]of Object.entries(M(j.meta)))z[K]=String(Q);return JSON.stringify({attributes:z,level:j.level,message:O(j),timestamp:j.timestamp.toISOString()})},k=(j={})=>{let z=$(j.url??G("CLICKHOUSE_URL")??C),K=Z(j.database??G("CLICKHOUSE_DATABASE")??N,"database"),Q=Z(j.table??G("CLICKHOUSE_TABLE")??q,"table"),X=j.username??G("CLICKHOUSE_USERNAME"),Y=j.password??G("CLICKHOUSE_PASSWORD"),P=new URLSearchParams({date_time_input_format:"best_effort",query:`INSERT INTO ${K}.${Q} FORMAT JSONEachRow`}),V={"Content-Type":"application/json"};if(X)V["X-ClickHouse-User"]=X;if(Y)V["X-ClickHouse-Key"]=Y;return J({body:(W)=>W.map(H).join(`
2
2
  `),headers:V,name:"ClickHouse",options:j,url:`${z}/?${P.toString()}`})};export{k as createClickHouseTransport};
3
3
 
4
- //# debugId=4DC00EB3B0FBA04B64756E2164756E21
5
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsic3JjL2NsaWNraG91c2UudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbCiAgICAiaW1wb3J0IHtcbiAgdHlwZSBBZGFwdGVyVHJhbnNwb3J0LFxuICB0eXBlIEJhdGNoVHJhbnNwb3J0T3B0aW9ucyxcbiAgY3JlYXRlSHR0cFRyYW5zcG9ydCxcbiAgZGVmYXVsdEJvZHksXG4gIGVudlN0cmluZyxcbiAgZmxhdHRlbk1ldGEsXG4gIHR5cGUgTG9nRW50cnksXG4gIHN0cmlwVHJhaWxpbmdTbGFzaGVzLFxuICB0cmFuc3BvcnRFcnJvclxufSBmcm9tICcuL2FkYXB0ZXJzL3NoYXJlZCdcblxuY29uc3QgREVGQVVMVF9VUkwgPSAnaHR0cDovL2xvY2FsaG9zdDo4MTIzJ1xuY29uc3QgREVGQVVMVF9EQVRBQkFTRSA9ICdkZWZhdWx0J1xuY29uc3QgREVGQVVMVF9UQUJMRSA9ICdsb2dzJ1xuY29uc3QgSURFTlRJRklFUiA9IC9eW0EtWmEtejAtOV9dKyQvXG5cbmV4cG9ydCBpbnRlcmZhY2UgQ2xpY2tIb3VzZVRyYW5zcG9ydE9wdGlvbnMgZXh0ZW5kcyBCYXRjaFRyYW5zcG9ydE9wdGlvbnMge1xuICAvKipcbiAgICogVGFyZ2V0IGRhdGFiYXNlLlxuICAgKiBGYWxscyBiYWNrIHRvIGBDTElDS0hPVVNFX0RBVEFCQVNFYC5cbiAgICogQGRlZmF1bHQgJ2RlZmF1bHQnXG4gICAqL1xuICBkYXRhYmFzZT86IHN0cmluZ1xuICAvKipcbiAgICogUGFzc3dvcmQsIHNlbnQgYXMgdGhlIGBYLUNsaWNrSG91c2UtS2V5YCBoZWFkZXIuXG4gICAqIEZhbGxzIGJhY2sgdG8gYENMSUNLSE9VU0VfUEFTU1dPUkRgLlxuICAgKi9cbiAgcGFzc3dvcmQ/OiBzdHJpbmdcbiAgLyoqXG4gICAqIFRhcmdldCB0YWJsZS4gRXhwZWN0ZWQgY29sdW1uczogYHRpbWVzdGFtcCBEYXRlVGltZTY0KDMpYCxcbiAgICogYGxldmVsIExvd0NhcmRpbmFsaXR5KFN0cmluZylgLCBgbWVzc2FnZSBTdHJpbmdgLFxuICAgKiBgYXR0cmlidXRlcyBNYXAoU3RyaW5nLCBTdHJpbmcpYC5cbiAgICogRmFsbHMgYmFjayB0byBgQ0xJQ0tIT1VTRV9UQUJMRWAuXG4gICAqIEBkZWZhdWx0ICdsb2dzJ1xuICAgKi9cbiAgdGFibGU/OiBzdHJpbmdcbiAgLyoqXG4gICAqIENsaWNrSG91c2UgSFRUUCBpbnRlcmZhY2UgYmFzZSBVUkwuXG4gICAqIEZhbGxzIGJhY2sgdG8gYENMSUNLSE9VU0VfVVJMYC5cbiAgICogQGRlZmF1bHQgJ2h0dHA6Ly9sb2NhbGhvc3Q6ODEyMydcbiAgICovXG4gIHVybD86IHN0cmluZ1xuICAvKipcbiAgICogVXNlcm5hbWUsIHNlbnQgYXMgdGhlIGBYLUNsaWNrSG91c2UtVXNlcmAgaGVhZGVyLlxuICAgKiBGYWxscyBiYWNrIHRvIGBDTElDS0hPVVNFX1VTRVJOQU1FYC5cbiAgICovXG4gIHVzZXJuYW1lPzogc3RyaW5nXG59XG5cbmNvbnN0IHZhbGlkSWRlbnRpZmllciA9ICh2YWx1ZTogc3RyaW5nLCBraW5kOiBzdHJpbmcpOiBzdHJpbmcgPT4ge1xuICBpZiAoIUlERU5USUZJRVIudGVzdCh2YWx1ZSkpIHtcbiAgICB0aHJvdyB0cmFuc3BvcnRFcnJvcihcbiAgICAgICdDbGlja0hvdXNlJyxcbiAgICAgIGBpbnZhbGlkICR7a2luZH0gJyR7dmFsdWV9Jy4gT25seSBsZXR0ZXJzLCBkaWdpdHMsIGFuZCB1bmRlcnNjb3JlcyBhcmUgYWxsb3dlZGBcbiAgICApXG4gIH1cbiAgcmV0dXJuIHZhbHVlXG59XG5cbmNvbnN0IHRvUm93ID0gKGVudHJ5OiBMb2dFbnRyeSk6IHN0cmluZyA9PiB7XG4gIGNvbnN0IGF0dHJpYnV0ZXM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7fVxuICBmb3IgKGNvbnN0IFtrZXksIHZhbHVlXSBvZiBPYmplY3QuZW50cmllcyhmbGF0dGVuTWV0YShlbnRyeS5tZXRhKSkpIHtcbiAgICBhdHRyaWJ1dGVzW2tleV0gPSBTdHJpbmcodmFsdWUpXG4gIH1cbiAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KHtcbiAgICBhdHRyaWJ1dGVzLFxuICAgIGxldmVsOiBlbnRyeS5sZXZlbCxcbiAgICBtZXNzYWdlOiBkZWZhdWx0Qm9keShlbnRyeSksXG4gICAgdGltZXN0YW1wOiBlbnRyeS50aW1lc3RhbXAudG9JU09TdHJpbmcoKVxuICB9KVxufVxuXG4vKipcbiAqIENyZWF0ZXMgYSB0cmFuc3BvcnQgdGhhdCBpbnNlcnRzIGxvZ3MgaW50byBhIENsaWNrSG91c2UgdGFibGUgb3ZlciB0aGUgSFRUUFxuICogaW50ZXJmYWNlIHVzaW5nIGBKU09ORWFjaFJvd2AuIFJvd3MgY2FycnkgYHRpbWVzdGFtcGAsIGBsZXZlbGAsIGBtZXNzYWdlYCxcbiAqIGFuZCBhbiBgYXR0cmlidXRlc2AgbWFwIG9mIHRoZSBmbGF0dGVuZWQgbWV0YSAoYHJlcXVlc3QubWV0aG9kYCxcbiAqIGBjb250ZXh0LnJlcXVlc3RJZGAsIOKApikgd2l0aCB2YWx1ZXMgcmVuZGVyZWQgYXMgc3RyaW5ncy5cbiAqXG4gKiBAdGhyb3dzIFdoZW4gdGhlIGRhdGFiYXNlIG9yIHRhYmxlIG5hbWUgaXMgbm90IGEgcGxhaW4gaWRlbnRpZmllci5cbiAqL1xuZXhwb3J0IGNvbnN0IGNyZWF0ZUNsaWNrSG91c2VUcmFuc3BvcnQgPSAoXG4gIG9wdGlvbnM6IENsaWNrSG91c2VUcmFuc3BvcnRPcHRpb25zID0ge31cbik6IEFkYXB0ZXJUcmFuc3BvcnQgPT4ge1xuICBjb25zdCBiYXNlVXJsID0gc3RyaXBUcmFpbGluZ1NsYXNoZXMoXG4gICAgb3B0aW9ucy51cmwgPz8gZW52U3RyaW5nKCdDTElDS0hPVVNFX1VSTCcpID8/IERFRkFVTFRfVVJMXG4gIClcbiAgY29uc3QgZGF0YWJhc2UgPSB2YWxpZElkZW50aWZpZXIoXG4gICAgb3B0aW9ucy5kYXRhYmFzZSA/PyBlbnZTdHJpbmcoJ0NMSUNLSE9VU0VfREFUQUJBU0UnKSA/PyBERUZBVUxUX0RBVEFCQVNFLFxuICAgICdkYXRhYmFzZSdcbiAgKVxuICBjb25zdCB0YWJsZSA9IHZhbGlkSWRlbnRpZmllcihcbiAgICBvcHRpb25zLnRhYmxlID8/IGVudlN0cmluZygnQ0xJQ0tIT1VTRV9UQUJMRScpID8/IERFRkFVTFRfVEFCTEUsXG4gICAgJ3RhYmxlJ1xuICApXG4gIGNvbnN0IHVzZXJuYW1lID0gb3B0aW9ucy51c2VybmFtZSA/PyBlbnZTdHJpbmcoJ0NMSUNLSE9VU0VfVVNFUk5BTUUnKVxuICBjb25zdCBwYXNzd29yZCA9IG9wdGlvbnMucGFzc3dvcmQgPz8gZW52U3RyaW5nKCdDTElDS0hPVVNFX1BBU1NXT1JEJylcblxuICBjb25zdCBxdWVyeSA9IG5ldyBVUkxTZWFyY2hQYXJhbXMoe1xuICAgIGRhdGVfdGltZV9pbnB1dF9mb3JtYXQ6ICdiZXN0X2VmZm9ydCcsXG4gICAgcXVlcnk6IGBJTlNFUlQgSU5UTyAke2RhdGFiYXNlfS4ke3RhYmxlfSBGT1JNQVQgSlNPTkVhY2hSb3dgXG4gIH0pXG5cbiAgY29uc3QgaGVhZGVyczogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgICAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nXG4gIH1cbiAgaWYgKHVzZXJuYW1lKSB7XG4gICAgaGVhZGVyc1snWC1DbGlja0hvdXNlLVVzZXInXSA9IHVzZXJuYW1lXG4gIH1cbiAgaWYgKHBhc3N3b3JkKSB7XG4gICAgaGVhZGVyc1snWC1DbGlja0hvdXNlLUtleSddID0gcGFzc3dvcmRcbiAgfVxuXG4gIHJldHVybiBjcmVhdGVIdHRwVHJhbnNwb3J0KHtcbiAgICBib2R5OiBlbnRyaWVzID0+IGVudHJpZXMubWFwKHRvUm93KS5qb2luKCdcXG4nKSxcbiAgICBoZWFkZXJzLFxuICAgIG5hbWU6ICdDbGlja0hvdXNlJyxcbiAgICBvcHRpb25zLFxuICAgIHVybDogYCR7YmFzZVVybH0vPyR7cXVlcnkudG9TdHJpbmcoKX1gXG4gIH0pXG59XG5cbmV4cG9ydCB0eXBlIHsgQWRhcHRlclRyYW5zcG9ydCB9IGZyb20gJy4vYWRhcHRlcnMvc2hhcmVkJ1xuIgogIF0sCiAgIm1hcHBpbmdzIjogInlIQVlBLFVBQU0sRUFBYyx3QkFDZCxFQUFtQixVQUNuQixFQUFnQixPQUNoQixFQUFhLGtCQW1DYixFQUFrQixDQUFDLEVBQWUsSUFBeUIsQ0FDL0QsR0FBSSxDQUFDLEVBQVcsS0FBSyxDQUFLLEVBQ3hCLE1BQU0sRUFDSixhQUNBLFdBQVcsTUFBUyx1REFDdEIsRUFFRixPQUFPLEdBR0gsRUFBUSxDQUFDLElBQTRCLENBQ3pDLElBQU0sRUFBcUMsQ0FBQyxFQUM1QyxRQUFZLEVBQUssS0FBVSxPQUFPLFFBQVEsRUFBWSxFQUFNLElBQUksQ0FBQyxFQUMvRCxFQUFXLEdBQU8sT0FBTyxDQUFLLEVBRWhDLE9BQU8sS0FBSyxVQUFVLENBQ3BCLGFBQ0EsTUFBTyxFQUFNLE1BQ2IsUUFBUyxFQUFZLENBQUssRUFDMUIsVUFBVyxFQUFNLFVBQVUsWUFBWSxDQUN6QyxDQUFDLEdBV1UsRUFBNEIsQ0FDdkMsRUFBc0MsQ0FBQyxJQUNsQixDQUNyQixJQUFNLEVBQVUsRUFDZCxFQUFRLEtBQU8sRUFBVSxnQkFBZ0IsR0FBSyxDQUNoRCxFQUNNLEVBQVcsRUFDZixFQUFRLFVBQVksRUFBVSxxQkFBcUIsR0FBSyxFQUN4RCxVQUNGLEVBQ00sRUFBUSxFQUNaLEVBQVEsT0FBUyxFQUFVLGtCQUFrQixHQUFLLEVBQ2xELE9BQ0YsRUFDTSxFQUFXLEVBQVEsVUFBWSxFQUFVLHFCQUFxQixFQUM5RCxFQUFXLEVBQVEsVUFBWSxFQUFVLHFCQUFxQixFQUU5RCxFQUFRLElBQUksZ0JBQWdCLENBQ2hDLHVCQUF3QixjQUN4QixNQUFPLGVBQWUsS0FBWSxzQkFDcEMsQ0FBQyxFQUVLLEVBQWtDLENBQ3RDLGVBQWdCLGtCQUNsQixFQUNBLEdBQUksRUFDRixFQUFRLHFCQUF1QixFQUVqQyxHQUFJLEVBQ0YsRUFBUSxvQkFBc0IsRUFHaEMsT0FBTyxFQUFvQixDQUN6QixLQUFNLEtBQVcsRUFBUSxJQUFJLENBQUssRUFBRSxLQUFLO0FBQUEsQ0FBSSxFQUM3QyxVQUNBLEtBQU0sYUFDTixVQUNBLElBQUssR0FBRyxNQUFZLEVBQU0sU0FBUyxHQUNyQyxDQUFDIiwKICAiZGVidWdJZCI6ICI0REMwMEVCM0IwRkJBMDRCNjQ3NTZFMjE2NDc1NkUyMSIsCiAgIm5hbWVzIjogW10KfQ==
4
+ //# debugId=1B6FC943015B221464756E2164756E21
5
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsic3JjL2NsaWNraG91c2UudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbCiAgICAiaW1wb3J0IHtcbiAgY3JlYXRlSHR0cFRyYW5zcG9ydCxcbiAgZGVmYXVsdEJvZHksXG4gIGVudlN0cmluZyxcbiAgZmxhdHRlbk1ldGEsXG4gIHN0cmlwVHJhaWxpbmdTbGFzaGVzLFxuICB0cmFuc3BvcnRFcnJvclxufSBmcm9tICcuL2FkYXB0ZXJzL3NoYXJlZCdcbmltcG9ydCB0eXBlIHtcbiAgQWRhcHRlclRyYW5zcG9ydCxcbiAgQmF0Y2hUcmFuc3BvcnRPcHRpb25zLFxuICBMb2dFbnRyeVxufSBmcm9tICcuL2FkYXB0ZXJzL3NoYXJlZCdcblxuY29uc3QgREVGQVVMVF9VUkwgPSAnaHR0cDovL2xvY2FsaG9zdDo4MTIzJ1xuY29uc3QgREVGQVVMVF9EQVRBQkFTRSA9ICdkZWZhdWx0J1xuY29uc3QgREVGQVVMVF9UQUJMRSA9ICdsb2dzJ1xuY29uc3QgSURFTlRJRklFUiA9IC9eW0EtWmEtejAtOV9dKyQvdVxuXG5leHBvcnQgaW50ZXJmYWNlIENsaWNrSG91c2VUcmFuc3BvcnRPcHRpb25zIGV4dGVuZHMgQmF0Y2hUcmFuc3BvcnRPcHRpb25zIHtcbiAgLyoqXG4gICAqIFRhcmdldCBkYXRhYmFzZS5cbiAgICogRmFsbHMgYmFjayB0byBgQ0xJQ0tIT1VTRV9EQVRBQkFTRWAuXG4gICAqIEBkZWZhdWx0ICdkZWZhdWx0J1xuICAgKi9cbiAgZGF0YWJhc2U/OiBzdHJpbmdcbiAgLyoqXG4gICAqIFBhc3N3b3JkLCBzZW50IGFzIHRoZSBgWC1DbGlja0hvdXNlLUtleWAgaGVhZGVyLlxuICAgKiBGYWxscyBiYWNrIHRvIGBDTElDS0hPVVNFX1BBU1NXT1JEYC5cbiAgICovXG4gIHBhc3N3b3JkPzogc3RyaW5nXG4gIC8qKlxuICAgKiBUYXJnZXQgdGFibGUuIEV4cGVjdGVkIGNvbHVtbnM6IGB0aW1lc3RhbXAgRGF0ZVRpbWU2NCgzKWAsXG4gICAqIGBsZXZlbCBMb3dDYXJkaW5hbGl0eShTdHJpbmcpYCwgYG1lc3NhZ2UgU3RyaW5nYCxcbiAgICogYGF0dHJpYnV0ZXMgTWFwKFN0cmluZywgU3RyaW5nKWAuXG4gICAqIEZhbGxzIGJhY2sgdG8gYENMSUNLSE9VU0VfVEFCTEVgLlxuICAgKiBAZGVmYXVsdCAnbG9ncydcbiAgICovXG4gIHRhYmxlPzogc3RyaW5nXG4gIC8qKlxuICAgKiBDbGlja0hvdXNlIEhUVFAgaW50ZXJmYWNlIGJhc2UgVVJMLlxuICAgKiBGYWxscyBiYWNrIHRvIGBDTElDS0hPVVNFX1VSTGAuXG4gICAqIEBkZWZhdWx0ICdodHRwOi8vbG9jYWxob3N0OjgxMjMnXG4gICAqL1xuICB1cmw/OiBzdHJpbmdcbiAgLyoqXG4gICAqIFVzZXJuYW1lLCBzZW50IGFzIHRoZSBgWC1DbGlja0hvdXNlLVVzZXJgIGhlYWRlci5cbiAgICogRmFsbHMgYmFjayB0byBgQ0xJQ0tIT1VTRV9VU0VSTkFNRWAuXG4gICAqL1xuICB1c2VybmFtZT86IHN0cmluZ1xufVxuXG5jb25zdCB2YWxpZElkZW50aWZpZXIgPSAodmFsdWU6IHN0cmluZywga2luZDogc3RyaW5nKTogc3RyaW5nID0+IHtcbiAgaWYgKCFJREVOVElGSUVSLnRlc3QodmFsdWUpKSB7XG4gICAgdGhyb3cgdHJhbnNwb3J0RXJyb3IoXG4gICAgICAnQ2xpY2tIb3VzZScsXG4gICAgICBgaW52YWxpZCAke2tpbmR9ICcke3ZhbHVlfScuIE9ubHkgbGV0dGVycywgZGlnaXRzLCBhbmQgdW5kZXJzY29yZXMgYXJlIGFsbG93ZWRgXG4gICAgKVxuICB9XG4gIHJldHVybiB2YWx1ZVxufVxuXG5jb25zdCB0b1JvdyA9IChlbnRyeTogTG9nRW50cnkpOiBzdHJpbmcgPT4ge1xuICBjb25zdCBhdHRyaWJ1dGVzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge31cbiAgZm9yIChjb25zdCBba2V5LCB2YWx1ZV0gb2YgT2JqZWN0LmVudHJpZXMoZmxhdHRlbk1ldGEoZW50cnkubWV0YSkpKSB7XG4gICAgYXR0cmlidXRlc1trZXldID0gU3RyaW5nKHZhbHVlKVxuICB9XG4gIHJldHVybiBKU09OLnN0cmluZ2lmeSh7XG4gICAgYXR0cmlidXRlcyxcbiAgICBsZXZlbDogZW50cnkubGV2ZWwsXG4gICAgbWVzc2FnZTogZGVmYXVsdEJvZHkoZW50cnkpLFxuICAgIHRpbWVzdGFtcDogZW50cnkudGltZXN0YW1wLnRvSVNPU3RyaW5nKClcbiAgfSlcbn1cblxuLyoqXG4gKiBDcmVhdGVzIGEgdHJhbnNwb3J0IHRoYXQgaW5zZXJ0cyBsb2dzIGludG8gYSBDbGlja0hvdXNlIHRhYmxlIG92ZXIgdGhlIEhUVFBcbiAqIGludGVyZmFjZSB1c2luZyBgSlNPTkVhY2hSb3dgLiBSb3dzIGNhcnJ5IGB0aW1lc3RhbXBgLCBgbGV2ZWxgLCBgbWVzc2FnZWAsXG4gKiBhbmQgYW4gYGF0dHJpYnV0ZXNgIG1hcCBvZiB0aGUgZmxhdHRlbmVkIG1ldGEgKGByZXF1ZXN0Lm1ldGhvZGAsXG4gKiBgY29udGV4dC5yZXF1ZXN0SWRgLCDigKYpIHdpdGggdmFsdWVzIHJlbmRlcmVkIGFzIHN0cmluZ3MuXG4gKlxuICogQHRocm93cyB7RXJyb3J9IFdoZW4gdGhlIGRhdGFiYXNlIG9yIHRhYmxlIG5hbWUgaXMgbm90IGEgcGxhaW4gaWRlbnRpZmllci5cbiAqL1xuZXhwb3J0IGNvbnN0IGNyZWF0ZUNsaWNrSG91c2VUcmFuc3BvcnQgPSAoXG4gIG9wdGlvbnM6IENsaWNrSG91c2VUcmFuc3BvcnRPcHRpb25zID0ge31cbik6IEFkYXB0ZXJUcmFuc3BvcnQgPT4ge1xuICBjb25zdCBiYXNlVXJsID0gc3RyaXBUcmFpbGluZ1NsYXNoZXMoXG4gICAgb3B0aW9ucy51cmwgPz8gZW52U3RyaW5nKCdDTElDS0hPVVNFX1VSTCcpID8/IERFRkFVTFRfVVJMXG4gIClcbiAgY29uc3QgZGF0YWJhc2UgPSB2YWxpZElkZW50aWZpZXIoXG4gICAgb3B0aW9ucy5kYXRhYmFzZSA/PyBlbnZTdHJpbmcoJ0NMSUNLSE9VU0VfREFUQUJBU0UnKSA/PyBERUZBVUxUX0RBVEFCQVNFLFxuICAgICdkYXRhYmFzZSdcbiAgKVxuICBjb25zdCB0YWJsZSA9IHZhbGlkSWRlbnRpZmllcihcbiAgICBvcHRpb25zLnRhYmxlID8/IGVudlN0cmluZygnQ0xJQ0tIT1VTRV9UQUJMRScpID8/IERFRkFVTFRfVEFCTEUsXG4gICAgJ3RhYmxlJ1xuICApXG4gIGNvbnN0IHVzZXJuYW1lID0gb3B0aW9ucy51c2VybmFtZSA/PyBlbnZTdHJpbmcoJ0NMSUNLSE9VU0VfVVNFUk5BTUUnKVxuICBjb25zdCBwYXNzd29yZCA9IG9wdGlvbnMucGFzc3dvcmQgPz8gZW52U3RyaW5nKCdDTElDS0hPVVNFX1BBU1NXT1JEJylcblxuICBjb25zdCBxdWVyeSA9IG5ldyBVUkxTZWFyY2hQYXJhbXMoe1xuICAgIGRhdGVfdGltZV9pbnB1dF9mb3JtYXQ6ICdiZXN0X2VmZm9ydCcsXG4gICAgcXVlcnk6IGBJTlNFUlQgSU5UTyAke2RhdGFiYXNlfS4ke3RhYmxlfSBGT1JNQVQgSlNPTkVhY2hSb3dgXG4gIH0pXG5cbiAgY29uc3QgaGVhZGVyczogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgICAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nXG4gIH1cbiAgaWYgKHVzZXJuYW1lKSB7XG4gICAgaGVhZGVyc1snWC1DbGlja0hvdXNlLVVzZXInXSA9IHVzZXJuYW1lXG4gIH1cbiAgaWYgKHBhc3N3b3JkKSB7XG4gICAgaGVhZGVyc1snWC1DbGlja0hvdXNlLUtleSddID0gcGFzc3dvcmRcbiAgfVxuXG4gIHJldHVybiBjcmVhdGVIdHRwVHJhbnNwb3J0KHtcbiAgICBib2R5OiBlbnRyaWVzID0+IGVudHJpZXMubWFwKHRvUm93KS5qb2luKCdcXG4nKSxcbiAgICBoZWFkZXJzLFxuICAgIG5hbWU6ICdDbGlja0hvdXNlJyxcbiAgICBvcHRpb25zLFxuICAgIHVybDogYCR7YmFzZVVybH0vPyR7cXVlcnkudG9TdHJpbmcoKX1gXG4gIH0pXG59XG5cbmV4cG9ydCB0eXBlIHsgQWRhcHRlclRyYW5zcG9ydCB9IGZyb20gJy4vYWRhcHRlcnMvc2hhcmVkJ1xuIgogIF0sCiAgIm1hcHBpbmdzIjogInlIQWNBLFVBQU0sRUFBYyx3QkFDZCxFQUFtQixVQUNuQixFQUFnQixPQUNoQixFQUFhLG1CQW1DYixFQUFrQixDQUFDLEVBQWUsSUFBeUIsQ0FDL0QsR0FBSSxDQUFDLEVBQVcsS0FBSyxDQUFLLEVBQ3hCLE1BQU0sRUFDSixhQUNBLFdBQVcsTUFBUyx1REFDdEIsRUFFRixPQUFPLEdBR0gsRUFBUSxDQUFDLElBQTRCLENBQ3pDLElBQU0sRUFBcUMsQ0FBQyxFQUM1QyxRQUFZLEVBQUssS0FBVSxPQUFPLFFBQVEsRUFBWSxFQUFNLElBQUksQ0FBQyxFQUMvRCxFQUFXLEdBQU8sT0FBTyxDQUFLLEVBRWhDLE9BQU8sS0FBSyxVQUFVLENBQ3BCLGFBQ0EsTUFBTyxFQUFNLE1BQ2IsUUFBUyxFQUFZLENBQUssRUFDMUIsVUFBVyxFQUFNLFVBQVUsWUFBWSxDQUN6QyxDQUFDLEdBV1UsRUFBNEIsQ0FDdkMsRUFBc0MsQ0FBQyxJQUNsQixDQUNyQixJQUFNLEVBQVUsRUFDZCxFQUFRLEtBQU8sRUFBVSxnQkFBZ0IsR0FBSyxDQUNoRCxFQUNNLEVBQVcsRUFDZixFQUFRLFVBQVksRUFBVSxxQkFBcUIsR0FBSyxFQUN4RCxVQUNGLEVBQ00sRUFBUSxFQUNaLEVBQVEsT0FBUyxFQUFVLGtCQUFrQixHQUFLLEVBQ2xELE9BQ0YsRUFDTSxFQUFXLEVBQVEsVUFBWSxFQUFVLHFCQUFxQixFQUM5RCxFQUFXLEVBQVEsVUFBWSxFQUFVLHFCQUFxQixFQUU5RCxFQUFRLElBQUksZ0JBQWdCLENBQ2hDLHVCQUF3QixjQUN4QixNQUFPLGVBQWUsS0FBWSxzQkFDcEMsQ0FBQyxFQUVLLEVBQWtDLENBQ3RDLGVBQWdCLGtCQUNsQixFQUNBLEdBQUksRUFDRixFQUFRLHFCQUF1QixFQUVqQyxHQUFJLEVBQ0YsRUFBUSxvQkFBc0IsRUFHaEMsT0FBTyxFQUFvQixDQUN6QixLQUFNLEtBQVcsRUFBUSxJQUFJLENBQUssRUFBRSxLQUFLO0FBQUEsQ0FBSSxFQUM3QyxVQUNBLEtBQU0sYUFDTixVQUNBLElBQUssR0FBRyxNQUFZLEVBQU0sU0FBUyxHQUNyQyxDQUFDIiwKICAiZGVidWdJZCI6ICIxQjZGQzk0MzAxNUIyMjE0NjQ3NTZFMjE2NDc1NkUyMSIsCiAgIm5hbWVzIjogW10KfQ==
package/dist/datadog.d.ts CHANGED
@@ -92,7 +92,7 @@ interface DatadogTransportOptions extends BatchTransportOptions {
92
92
  * The log level lands in the `status` attribute (Datadog's default status
93
93
  * remapper), and the full meta object rides along as searchable attributes.
94
94
  *
95
- * @throws When no API key is configured.
95
+ * @throws {Error} When no API key is configured.
96
96
  */
97
97
  declare const createDatadogTransport: (options?: DatadogTransportOptions) => AdapterTransport;
98
98
  export { createDatadogTransport, DatadogTransportOptions, AdapterTransport };
package/dist/datadog.js CHANGED
@@ -1,4 +1,4 @@
1
- import{d as x,e as N,g as Q,j as V}from"./shared/Logixlysia-jvphdjgs.js";import"./shared/Logixlysia-nrt7tysy.js";var $="datadoghq.com",M="logixlysia",B=(q={})=>{let z=q.apiKey??x("DD_API_KEY");if(!z)throw N("Datadog","missing API key. Set DD_API_KEY or pass apiKey to createDatadogTransport()");let W=q.site??x("DD_SITE")??$,X=q.service??x("DD_SERVICE")??M,G=q.hostname??x("DD_HOSTNAME"),Y=q.source??M,J=Object.entries(q.tags??{}).map(([j,w])=>`${j}:${w}`).join(","),Z=(j)=>{let w={...j.meta,ddsource:Y,message:V(j),service:X,status:j.level.toLowerCase(),timestamp:j.timestamp.toISOString()};if(J)w.ddtags=J;if(G)w.hostname=G;if(typeof j.meta.status==="number")w.http={status_code:j.meta.status};return w};return Q({body:(j)=>JSON.stringify(j.map(Z)),headers:{"Content-Type":"application/json","DD-API-KEY":z},name:"Datadog",options:q,url:`https://http-intake.logs.${W}/api/v2/logs`})};export{B as createDatadogTransport};
1
+ import{d as z,e as V,g as W,j as X}from"./shared/Logixlysia-kwnc1c9b.js";import{k as Q}from"./shared/Logixlysia-1ap5daz6.js";var B="datadoghq.com",N="logixlysia",b=(w={})=>{let G=w.apiKey??z("DD_API_KEY");if(!G)throw V("Datadog","missing API key. Set DD_API_KEY or pass apiKey to createDatadogTransport()");let Y=w.site??z("DD_SITE")??B,Z=w.service??z("DD_SERVICE")??N,J=w.hostname??z("DD_HOSTNAME"),$=w.source??N,M=Object.entries(w.tags??{}).map(([q,x])=>`${q}:${x}`).join(","),j=(q)=>{let x={...q.meta,ddsource:$,message:X(q),service:Z,status:q.level.toLowerCase(),timestamp:q.timestamp.toISOString()};if(M)x.ddtags=M;if(J)x.hostname=J;if(typeof q.meta.status==="number")x.http={status_code:q.meta.status};return x};return W({body:(q)=>Q(q.map(j)),headers:{"Content-Type":"application/json","DD-API-KEY":G},name:"Datadog",options:w,url:`https://http-intake.logs.${Y}/api/v2/logs`})};export{b as createDatadogTransport};
2
2
 
3
- //# debugId=409B5062E931721164756E2164756E21
4
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsic3JjL2RhdGFkb2cudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbCiAgICAiaW1wb3J0IHtcbiAgdHlwZSBBZGFwdGVyVHJhbnNwb3J0LFxuICB0eXBlIEJhdGNoVHJhbnNwb3J0T3B0aW9ucyxcbiAgY3JlYXRlSHR0cFRyYW5zcG9ydCxcbiAgZGVmYXVsdEJvZHksXG4gIGVudlN0cmluZyxcbiAgdHlwZSBMb2dFbnRyeSxcbiAgdHJhbnNwb3J0RXJyb3Jcbn0gZnJvbSAnLi9hZGFwdGVycy9zaGFyZWQnXG5cbmNvbnN0IERFRkFVTFRfU0lURSA9ICdkYXRhZG9naHEuY29tJ1xuY29uc3QgREVGQVVMVF9TT1VSQ0UgPSAnbG9naXhseXNpYSdcblxuZXhwb3J0IGludGVyZmFjZSBEYXRhZG9nVHJhbnNwb3J0T3B0aW9ucyBleHRlbmRzIEJhdGNoVHJhbnNwb3J0T3B0aW9ucyB7XG4gIC8qKlxuICAgKiBEYXRhZG9nIEFQSSBrZXksIHNlbnQgYXMgdGhlIGBERC1BUEktS0VZYCBoZWFkZXIuXG4gICAqIEZhbGxzIGJhY2sgdG8gdGhlIGBERF9BUElfS0VZYCBlbnZpcm9ubWVudCB2YXJpYWJsZS5cbiAgICovXG4gIGFwaUtleT86IHN0cmluZ1xuICAvKipcbiAgICogSG9zdG5hbWUgcmVwb3J0ZWQgd2l0aCBlYWNoIGxvZy5cbiAgICogRmFsbHMgYmFjayB0byBgRERfSE9TVE5BTUVgOyBvbWl0dGVkIHdoZW4gdW5zZXQuXG4gICAqL1xuICBob3N0bmFtZT86IHN0cmluZ1xuICAvKipcbiAgICogYHNlcnZpY2VgIGZhY2V0IG9uIGVhY2ggbG9nLlxuICAgKiBGYWxscyBiYWNrIHRvIGBERF9TRVJWSUNFYC5cbiAgICogQGRlZmF1bHQgJ2xvZ2l4bHlzaWEnXG4gICAqL1xuICBzZXJ2aWNlPzogc3RyaW5nXG4gIC8qKlxuICAgKiBEYXRhZG9nIHNpdGU6IGBkYXRhZG9naHEuY29tYCAoVVMxKSwgYGRhdGFkb2docS5ldWAgKEVVKSxcbiAgICogYHVzMy5kYXRhZG9naHEuY29tYCwgYHVzNS5kYXRhZG9naHEuY29tYCwgYGFwMS5kYXRhZG9naHEuY29tYCwg4oCmXG4gICAqIEZhbGxzIGJhY2sgdG8gYEREX1NJVEVgLlxuICAgKiBAZGVmYXVsdCAnZGF0YWRvZ2hxLmNvbSdcbiAgICovXG4gIHNpdGU/OiBzdHJpbmdcbiAgLyoqIGBkZHNvdXJjZWAgZmFjZXQgb24gZWFjaCBsb2cuIEBkZWZhdWx0ICdsb2dpeGx5c2lhJyAqL1xuICBzb3VyY2U/OiBzdHJpbmdcbiAgLyoqIFRhZ3MgcmVuZGVyZWQgaW50byBgZGR0YWdzYCBhcyBga2V5OnZhbHVlLGtleTI6dmFsdWUyYC4gKi9cbiAgdGFncz86IFJlY29yZDxzdHJpbmcsIHN0cmluZz5cbn1cblxuLyoqXG4gKiBDcmVhdGVzIGEgdHJhbnNwb3J0IHRoYXQgc2hpcHMgbG9ncyB0byBEYXRhZG9nIHZpYSB0aGUgdjIgbG9ncyBpbnRha2UgQVBJLlxuICogVGhlIGxvZyBsZXZlbCBsYW5kcyBpbiB0aGUgYHN0YXR1c2AgYXR0cmlidXRlIChEYXRhZG9nJ3MgZGVmYXVsdCBzdGF0dXNcbiAqIHJlbWFwcGVyKSwgYW5kIHRoZSBmdWxsIG1ldGEgb2JqZWN0IHJpZGVzIGFsb25nIGFzIHNlYXJjaGFibGUgYXR0cmlidXRlcy5cbiAqXG4gKiBAdGhyb3dzIFdoZW4gbm8gQVBJIGtleSBpcyBjb25maWd1cmVkLlxuICovXG5leHBvcnQgY29uc3QgY3JlYXRlRGF0YWRvZ1RyYW5zcG9ydCA9IChcbiAgb3B0aW9uczogRGF0YWRvZ1RyYW5zcG9ydE9wdGlvbnMgPSB7fVxuKTogQWRhcHRlclRyYW5zcG9ydCA9PiB7XG4gIGNvbnN0IGFwaUtleSA9IG9wdGlvbnMuYXBpS2V5ID8/IGVudlN0cmluZygnRERfQVBJX0tFWScpXG4gIGlmICghYXBpS2V5KSB7XG4gICAgdGhyb3cgdHJhbnNwb3J0RXJyb3IoXG4gICAgICAnRGF0YWRvZycsXG4gICAgICAnbWlzc2luZyBBUEkga2V5LiBTZXQgRERfQVBJX0tFWSBvciBwYXNzIGFwaUtleSB0byBjcmVhdGVEYXRhZG9nVHJhbnNwb3J0KCknXG4gICAgKVxuICB9XG4gIGNvbnN0IHNpdGUgPSBvcHRpb25zLnNpdGUgPz8gZW52U3RyaW5nKCdERF9TSVRFJykgPz8gREVGQVVMVF9TSVRFXG4gIGNvbnN0IHNlcnZpY2UgPSBvcHRpb25zLnNlcnZpY2UgPz8gZW52U3RyaW5nKCdERF9TRVJWSUNFJykgPz8gREVGQVVMVF9TT1VSQ0VcbiAgY29uc3QgaG9zdG5hbWUgPSBvcHRpb25zLmhvc3RuYW1lID8/IGVudlN0cmluZygnRERfSE9TVE5BTUUnKVxuICBjb25zdCBzb3VyY2UgPSBvcHRpb25zLnNvdXJjZSA/PyBERUZBVUxUX1NPVVJDRVxuICBjb25zdCBkZHRhZ3MgPSBPYmplY3QuZW50cmllcyhvcHRpb25zLnRhZ3MgPz8ge30pXG4gICAgLm1hcCgoW2tleSwgdmFsdWVdKSA9PiBgJHtrZXl9OiR7dmFsdWV9YClcbiAgICAuam9pbignLCcpXG5cbiAgY29uc3QgdG9FdmVudCA9IChlbnRyeTogTG9nRW50cnkpOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiA9PiB7XG4gICAgLy8gTWV0YSBmaXJzdCBzbyB0aGUgYWRhcHRlci1vd25lZCBmYWNldHMgYmVsb3cgYWx3YXlzIHdpbiDigJQgYWNjZXNzLWxvZ1xuICAgIC8vIG1ldGEgY2FycmllcyBhbiBIVFRQIGBzdGF0dXNgIHRoYXQgbXVzdCBub3QgY2xvYmJlciBEYXRhZG9nJ3Mgc3RhdHVzLlxuICAgIGNvbnN0IGV2ZW50OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiA9IHtcbiAgICAgIC4uLmVudHJ5Lm1ldGEsXG4gICAgICBkZHNvdXJjZTogc291cmNlLFxuICAgICAgbWVzc2FnZTogZGVmYXVsdEJvZHkoZW50cnkpLFxuICAgICAgc2VydmljZSxcbiAgICAgIHN0YXR1czogZW50cnkubGV2ZWwudG9Mb3dlckNhc2UoKSxcbiAgICAgIHRpbWVzdGFtcDogZW50cnkudGltZXN0YW1wLnRvSVNPU3RyaW5nKClcbiAgICB9XG4gICAgaWYgKGRkdGFncykge1xuICAgICAgZXZlbnQuZGR0YWdzID0gZGR0YWdzXG4gICAgfVxuICAgIGlmIChob3N0bmFtZSkge1xuICAgICAgZXZlbnQuaG9zdG5hbWUgPSBob3N0bmFtZVxuICAgIH1cbiAgICBpZiAodHlwZW9mIGVudHJ5Lm1ldGEuc3RhdHVzID09PSAnbnVtYmVyJykge1xuICAgICAgZXZlbnQuaHR0cCA9IHsgc3RhdHVzX2NvZGU6IGVudHJ5Lm1ldGEuc3RhdHVzIH1cbiAgICB9XG4gICAgcmV0dXJuIGV2ZW50XG4gIH1cblxuICByZXR1cm4gY3JlYXRlSHR0cFRyYW5zcG9ydCh7XG4gICAgYm9keTogZW50cmllcyA9PiBKU09OLnN0cmluZ2lmeShlbnRyaWVzLm1hcCh0b0V2ZW50KSksXG4gICAgaGVhZGVyczoge1xuICAgICAgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uJyxcbiAgICAgICdERC1BUEktS0VZJzogYXBpS2V5XG4gICAgfSxcbiAgICBuYW1lOiAnRGF0YWRvZycsXG4gICAgb3B0aW9ucyxcbiAgICB1cmw6IGBodHRwczovL2h0dHAtaW50YWtlLmxvZ3MuJHtzaXRlfS9hcGkvdjIvbG9nc2BcbiAgfSlcbn1cblxuZXhwb3J0IHR5cGUgeyBBZGFwdGVyVHJhbnNwb3J0IH0gZnJvbSAnLi9hZGFwdGVycy9zaGFyZWQnXG4iCiAgXSwKICAibWFwcGluZ3MiOiAiMkdBVUEsVUFBTSxFQUFlLGdCQUNmLEVBQWlCLGFBdUNWLEVBQXlCLENBQ3BDLEVBQW1DLENBQUMsSUFDZixDQUNyQixJQUFNLEVBQVMsRUFBUSxRQUFVLEVBQVUsWUFBWSxFQUN2RCxHQUFJLENBQUMsRUFDSCxNQUFNLEVBQ0osVUFDQSw0RUFDRixFQUVGLElBQU0sRUFBTyxFQUFRLE1BQVEsRUFBVSxTQUFTLEdBQUssRUFDL0MsRUFBVSxFQUFRLFNBQVcsRUFBVSxZQUFZLEdBQUssRUFDeEQsRUFBVyxFQUFRLFVBQVksRUFBVSxhQUFhLEVBQ3RELEVBQVMsRUFBUSxRQUFVLEVBQzNCLEVBQVMsT0FBTyxRQUFRLEVBQVEsTUFBUSxDQUFDLENBQUMsRUFDN0MsSUFBSSxFQUFFLEVBQUssS0FBVyxHQUFHLEtBQU8sR0FBTyxFQUN2QyxLQUFLLEdBQUcsRUFFTCxFQUFVLENBQUMsSUFBNkMsQ0FHNUQsSUFBTSxFQUFpQyxJQUNsQyxFQUFNLEtBQ1QsU0FBVSxFQUNWLFFBQVMsRUFBWSxDQUFLLEVBQzFCLFVBQ0EsT0FBUSxFQUFNLE1BQU0sWUFBWSxFQUNoQyxVQUFXLEVBQU0sVUFBVSxZQUFZLENBQ3pDLEVBQ0EsR0FBSSxFQUNGLEVBQU0sT0FBUyxFQUVqQixHQUFJLEVBQ0YsRUFBTSxTQUFXLEVBRW5CLEdBQUksT0FBTyxFQUFNLEtBQUssU0FBVyxTQUMvQixFQUFNLEtBQU8sQ0FBRSxZQUFhLEVBQU0sS0FBSyxNQUFPLEVBRWhELE9BQU8sR0FHVCxPQUFPLEVBQW9CLENBQ3pCLEtBQU0sS0FBVyxLQUFLLFVBQVUsRUFBUSxJQUFJLENBQU8sQ0FBQyxFQUNwRCxRQUFTLENBQ1AsZUFBZ0IsbUJBQ2hCLGFBQWMsQ0FDaEIsRUFDQSxLQUFNLFVBQ04sVUFDQSxJQUFLLDRCQUE0QixlQUNuQyxDQUFDIiwKICAiZGVidWdJZCI6ICI0MDlCNTA2MkU5MzE3MjExNjQ3NTZFMjE2NDc1NkUyMSIsCiAgIm5hbWVzIjogW10KfQ==
3
+ //# debugId=2A62BE9F1CA2BFC064756E2164756E21
4
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsic3JjL2RhdGFkb2cudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbCiAgICAiaW1wb3J0IHtcbiAgY3JlYXRlSHR0cFRyYW5zcG9ydCxcbiAgZGVmYXVsdEJvZHksXG4gIGVudlN0cmluZyxcbiAgdHJhbnNwb3J0RXJyb3Jcbn0gZnJvbSAnLi9hZGFwdGVycy9zaGFyZWQnXG5pbXBvcnQgdHlwZSB7XG4gIEFkYXB0ZXJUcmFuc3BvcnQsXG4gIEJhdGNoVHJhbnNwb3J0T3B0aW9ucyxcbiAgTG9nRW50cnlcbn0gZnJvbSAnLi9hZGFwdGVycy9zaGFyZWQnXG5pbXBvcnQgeyBzdHJpbmdpZnlGb3JMb2cgfSBmcm9tICcuL3V0aWxzL2pzb24nXG5cbmNvbnN0IERFRkFVTFRfU0lURSA9ICdkYXRhZG9naHEuY29tJ1xuY29uc3QgREVGQVVMVF9TT1VSQ0UgPSAnbG9naXhseXNpYSdcblxuZXhwb3J0IGludGVyZmFjZSBEYXRhZG9nVHJhbnNwb3J0T3B0aW9ucyBleHRlbmRzIEJhdGNoVHJhbnNwb3J0T3B0aW9ucyB7XG4gIC8qKlxuICAgKiBEYXRhZG9nIEFQSSBrZXksIHNlbnQgYXMgdGhlIGBERC1BUEktS0VZYCBoZWFkZXIuXG4gICAqIEZhbGxzIGJhY2sgdG8gdGhlIGBERF9BUElfS0VZYCBlbnZpcm9ubWVudCB2YXJpYWJsZS5cbiAgICovXG4gIGFwaUtleT86IHN0cmluZ1xuICAvKipcbiAgICogSG9zdG5hbWUgcmVwb3J0ZWQgd2l0aCBlYWNoIGxvZy5cbiAgICogRmFsbHMgYmFjayB0byBgRERfSE9TVE5BTUVgOyBvbWl0dGVkIHdoZW4gdW5zZXQuXG4gICAqL1xuICBob3N0bmFtZT86IHN0cmluZ1xuICAvKipcbiAgICogYHNlcnZpY2VgIGZhY2V0IG9uIGVhY2ggbG9nLlxuICAgKiBGYWxscyBiYWNrIHRvIGBERF9TRVJWSUNFYC5cbiAgICogQGRlZmF1bHQgJ2xvZ2l4bHlzaWEnXG4gICAqL1xuICBzZXJ2aWNlPzogc3RyaW5nXG4gIC8qKlxuICAgKiBEYXRhZG9nIHNpdGU6IGBkYXRhZG9naHEuY29tYCAoVVMxKSwgYGRhdGFkb2docS5ldWAgKEVVKSxcbiAgICogYHVzMy5kYXRhZG9naHEuY29tYCwgYHVzNS5kYXRhZG9naHEuY29tYCwgYGFwMS5kYXRhZG9naHEuY29tYCwg4oCmXG4gICAqIEZhbGxzIGJhY2sgdG8gYEREX1NJVEVgLlxuICAgKiBAZGVmYXVsdCAnZGF0YWRvZ2hxLmNvbSdcbiAgICovXG4gIHNpdGU/OiBzdHJpbmdcbiAgLyoqIGBkZHNvdXJjZWAgZmFjZXQgb24gZWFjaCBsb2cuIEBkZWZhdWx0ICdsb2dpeGx5c2lhJyAqL1xuICBzb3VyY2U/OiBzdHJpbmdcbiAgLyoqIFRhZ3MgcmVuZGVyZWQgaW50byBgZGR0YWdzYCBhcyBga2V5OnZhbHVlLGtleTI6dmFsdWUyYC4gKi9cbiAgdGFncz86IFJlY29yZDxzdHJpbmcsIHN0cmluZz5cbn1cblxuLyoqXG4gKiBDcmVhdGVzIGEgdHJhbnNwb3J0IHRoYXQgc2hpcHMgbG9ncyB0byBEYXRhZG9nIHZpYSB0aGUgdjIgbG9ncyBpbnRha2UgQVBJLlxuICogVGhlIGxvZyBsZXZlbCBsYW5kcyBpbiB0aGUgYHN0YXR1c2AgYXR0cmlidXRlIChEYXRhZG9nJ3MgZGVmYXVsdCBzdGF0dXNcbiAqIHJlbWFwcGVyKSwgYW5kIHRoZSBmdWxsIG1ldGEgb2JqZWN0IHJpZGVzIGFsb25nIGFzIHNlYXJjaGFibGUgYXR0cmlidXRlcy5cbiAqXG4gKiBAdGhyb3dzIHtFcnJvcn0gV2hlbiBubyBBUEkga2V5IGlzIGNvbmZpZ3VyZWQuXG4gKi9cbmV4cG9ydCBjb25zdCBjcmVhdGVEYXRhZG9nVHJhbnNwb3J0ID0gKFxuICBvcHRpb25zOiBEYXRhZG9nVHJhbnNwb3J0T3B0aW9ucyA9IHt9XG4pOiBBZGFwdGVyVHJhbnNwb3J0ID0+IHtcbiAgY29uc3QgYXBpS2V5ID0gb3B0aW9ucy5hcGlLZXkgPz8gZW52U3RyaW5nKCdERF9BUElfS0VZJylcbiAgaWYgKCFhcGlLZXkpIHtcbiAgICB0aHJvdyB0cmFuc3BvcnRFcnJvcihcbiAgICAgICdEYXRhZG9nJyxcbiAgICAgICdtaXNzaW5nIEFQSSBrZXkuIFNldCBERF9BUElfS0VZIG9yIHBhc3MgYXBpS2V5IHRvIGNyZWF0ZURhdGFkb2dUcmFuc3BvcnQoKSdcbiAgICApXG4gIH1cbiAgY29uc3Qgc2l0ZSA9IG9wdGlvbnMuc2l0ZSA/PyBlbnZTdHJpbmcoJ0REX1NJVEUnKSA/PyBERUZBVUxUX1NJVEVcbiAgY29uc3Qgc2VydmljZSA9IG9wdGlvbnMuc2VydmljZSA/PyBlbnZTdHJpbmcoJ0REX1NFUlZJQ0UnKSA/PyBERUZBVUxUX1NPVVJDRVxuICBjb25zdCBob3N0bmFtZSA9IG9wdGlvbnMuaG9zdG5hbWUgPz8gZW52U3RyaW5nKCdERF9IT1NUTkFNRScpXG4gIGNvbnN0IHNvdXJjZSA9IG9wdGlvbnMuc291cmNlID8/IERFRkFVTFRfU09VUkNFXG4gIGNvbnN0IGRkdGFncyA9IE9iamVjdC5lbnRyaWVzKG9wdGlvbnMudGFncyA/PyB7fSlcbiAgICAubWFwKChba2V5LCB2YWx1ZV0pID0+IGAke2tleX06JHt2YWx1ZX1gKVxuICAgIC5qb2luKCcsJylcblxuICBjb25zdCB0b0V2ZW50ID0gKGVudHJ5OiBMb2dFbnRyeSk6IFJlY29yZDxzdHJpbmcsIHVua25vd24+ID0+IHtcbiAgICAvLyBNZXRhIGZpcnN0IHNvIHRoZSBhZGFwdGVyLW93bmVkIGZhY2V0cyBiZWxvdyBhbHdheXMgd2luIOKAlCBhY2Nlc3MtbG9nXG4gICAgLy8gbWV0YSBjYXJyaWVzIGFuIEhUVFAgYHN0YXR1c2AgdGhhdCBtdXN0IG5vdCBjbG9iYmVyIERhdGFkb2cncyBzdGF0dXMuXG4gICAgY29uc3QgZXZlbnQ6IFJlY29yZDxzdHJpbmcsIHVua25vd24+ID0ge1xuICAgICAgLi4uZW50cnkubWV0YSxcbiAgICAgIGRkc291cmNlOiBzb3VyY2UsXG4gICAgICBtZXNzYWdlOiBkZWZhdWx0Qm9keShlbnRyeSksXG4gICAgICBzZXJ2aWNlLFxuICAgICAgc3RhdHVzOiBlbnRyeS5sZXZlbC50b0xvd2VyQ2FzZSgpLFxuICAgICAgdGltZXN0YW1wOiBlbnRyeS50aW1lc3RhbXAudG9JU09TdHJpbmcoKVxuICAgIH1cbiAgICBpZiAoZGR0YWdzKSB7XG4gICAgICBldmVudC5kZHRhZ3MgPSBkZHRhZ3NcbiAgICB9XG4gICAgaWYgKGhvc3RuYW1lKSB7XG4gICAgICBldmVudC5ob3N0bmFtZSA9IGhvc3RuYW1lXG4gICAgfVxuICAgIGlmICh0eXBlb2YgZW50cnkubWV0YS5zdGF0dXMgPT09ICdudW1iZXInKSB7XG4gICAgICBldmVudC5odHRwID0geyBzdGF0dXNfY29kZTogZW50cnkubWV0YS5zdGF0dXMgfVxuICAgIH1cbiAgICByZXR1cm4gZXZlbnRcbiAgfVxuXG4gIHJldHVybiBjcmVhdGVIdHRwVHJhbnNwb3J0KHtcbiAgICBib2R5OiBlbnRyaWVzID0+IHN0cmluZ2lmeUZvckxvZyhlbnRyaWVzLm1hcCh0b0V2ZW50KSksXG4gICAgaGVhZGVyczoge1xuICAgICAgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uJyxcbiAgICAgICdERC1BUEktS0VZJzogYXBpS2V5XG4gICAgfSxcbiAgICBuYW1lOiAnRGF0YWRvZycsXG4gICAgb3B0aW9ucyxcbiAgICB1cmw6IGBodHRwczovL2h0dHAtaW50YWtlLmxvZ3MuJHtzaXRlfS9hcGkvdjIvbG9nc2BcbiAgfSlcbn1cblxuZXhwb3J0IHR5cGUgeyBBZGFwdGVyVHJhbnNwb3J0IH0gZnJvbSAnLi9hZGFwdGVycy9zaGFyZWQnXG4iCiAgXSwKICAibWFwcGluZ3MiOiAidUhBYUEsVUFBTSxFQUFlLGdCQUNmLEVBQWlCLGFBdUNWLEVBQXlCLENBQ3BDLEVBQW1DLENBQUMsSUFDZixDQUNyQixJQUFNLEVBQVMsRUFBUSxRQUFVLEVBQVUsWUFBWSxFQUN2RCxHQUFJLENBQUMsRUFDSCxNQUFNLEVBQ0osVUFDQSw0RUFDRixFQUVGLElBQU0sRUFBTyxFQUFRLE1BQVEsRUFBVSxTQUFTLEdBQUssRUFDL0MsRUFBVSxFQUFRLFNBQVcsRUFBVSxZQUFZLEdBQUssRUFDeEQsRUFBVyxFQUFRLFVBQVksRUFBVSxhQUFhLEVBQ3RELEVBQVMsRUFBUSxRQUFVLEVBQzNCLEVBQVMsT0FBTyxRQUFRLEVBQVEsTUFBUSxDQUFDLENBQUMsRUFDN0MsSUFBSSxFQUFFLEVBQUssS0FBVyxHQUFHLEtBQU8sR0FBTyxFQUN2QyxLQUFLLEdBQUcsRUFFTCxFQUFVLENBQUMsSUFBNkMsQ0FHNUQsSUFBTSxFQUFpQyxJQUNsQyxFQUFNLEtBQ1QsU0FBVSxFQUNWLFFBQVMsRUFBWSxDQUFLLEVBQzFCLFVBQ0EsT0FBUSxFQUFNLE1BQU0sWUFBWSxFQUNoQyxVQUFXLEVBQU0sVUFBVSxZQUFZLENBQ3pDLEVBQ0EsR0FBSSxFQUNGLEVBQU0sT0FBUyxFQUVqQixHQUFJLEVBQ0YsRUFBTSxTQUFXLEVBRW5CLEdBQUksT0FBTyxFQUFNLEtBQUssU0FBVyxTQUMvQixFQUFNLEtBQU8sQ0FBRSxZQUFhLEVBQU0sS0FBSyxNQUFPLEVBRWhELE9BQU8sR0FHVCxPQUFPLEVBQW9CLENBQ3pCLEtBQU0sS0FBVyxFQUFnQixFQUFRLElBQUksQ0FBTyxDQUFDLEVBQ3JELFFBQVMsQ0FDUCxlQUFnQixtQkFDaEIsYUFBYyxDQUNoQixFQUNBLEtBQU0sVUFDTixVQUNBLElBQUssNEJBQTRCLGVBQ25DLENBQUMiLAogICJkZWJ1Z0lkIjogIjJBNjJCRTlGMUNBMkJGQzA2NDc1NkUyMTY0NzU2RTIxIiwKICAibmFtZXMiOiBbXQp9
package/dist/desertant.js CHANGED
@@ -1,4 +1,4 @@
1
- var V=(B)=>Promise.resolve(typeof B==="function"?B():B),O=(B)=>{let H;return()=>{return H??=V(B),H}},R=(B,H)=>{if(B.withCallGroup===void 0)return H();return B.withCallGroup((I)=>H(I))},z=async(B,{callOptions:H,redactor:I})=>{if(B.length===0)return B;let{redactedText:J}=await I.redaction(B,H);return J},w=(B)=>{let H=Object.getPrototypeOf(B);return H===Object.prototype||H===null},C=async(B,H,I)=>{let J=Object.create(Object.getPrototypeOf(B));if(J.name=B.name,J.message=await z(B.message,H),B.stack!==void 0)J.stack=await z(B.stack,H);let U=B,W=Object.getOwnPropertyNames(B).filter((N)=>N!=="message"&&N!=="name"&&N!=="stack"),_=await Promise.all(W.map((N)=>D(U[N],H,I+1)));for(let[N,$]of W.entries())J[$]=_[N];return J},j=async(B,H,I)=>{let J=await Promise.all(Object.entries(B).map(async([U,W])=>[U,await D(W,H,I+1)]));return Object.fromEntries(J)},T=async(B,H,I)=>{if(H.seen.has(B))return"[Circular]";let J={...H,seen:new Set(H.seen).add(B)};if(Array.isArray(B))return await Promise.all(B.map((U)=>D(U,J,I+1)));if(B instanceof Error)return await C(B,J,I);if(w(B))return await j(B,J,I);return B},D=(B,H,I)=>{if(typeof B==="string")return z(B,H);if(B===null||typeof B!=="object")return Promise.resolve(B);if(I>=H.maxDepth)return Promise.resolve(B);return T(B,H,I)},b=(B)=>{let H=Promise.resolve(),I=0;return{drain:()=>H,push:(J)=>{if(I>=B)return!1;return I+=1,H=H.then(J).finally(()=>{I-=1}),!0}}},E=(B)=>Error(`[logixlysia] desertant: ${B} records already awaiting redaction; record dropped`),k=(B,H,I={})=>{let{includeMeta:J=!0,labels:U,maxDepth:W=4,maxQueue:_=1000,minimumConfidence:N,onError:$,onFailure:F="drop"}=I,K=O(H),G=b(_),f=(S)=>{if($===void 0)return;try{$(S)}catch{}},M=async(S,X,L)=>{await B.log(S,X,L)},q=async(S,X,L,P)=>{let Y={callOptions:{group:P,labels:U,minimumConfidence:N},maxDepth:W,redactor:S,seen:new Set(L===void 0?[]:[L])};return{message:await z(X,Y),meta:J&&L!==void 0?await j(L,Y,0):L}};return{flush:async()=>{await G.drain(),await B.flush?.()},log:(S,X,L)=>{if(!G.push(async()=>{let Y;try{let Z=await K();Y=await R(Z,(A)=>q(Z,X,L,A))}catch(Z){if(f(Z),F==="forward")try{await M(S,X,L)}catch(A){f(A)}return}try{await M(S,Y.message,Y.meta)}catch(Z){f(Z)}}))f(E(_))}}};export{k as withRedaction};
1
+ var K=(B)=>Promise.resolve(typeof B==="function"?B():B),q=(B)=>{let H;return()=>{return H??=K(B),H}},O=(B,H)=>{if(B.withCallGroup===void 0)return H();return B.withCallGroup((I)=>H(I))},z=async(B,{callOptions:H,redactor:I})=>{if(B.length===0)return B;let{redactedText:J}=await I.redaction(B,H);return J},E=(B)=>{let H=Object.getPrototypeOf(B);return H===Object.prototype||H===null},W={entries:async(B,H,I)=>{let J=await Promise.all(Object.entries(B).map(async([L,U])=>[L,await W.value(U,H,I+1)]));return Object.fromEntries(J)},error:async(B,H,I)=>{let J=Object.create(Object.getPrototypeOf(B));if(J.name=B.name,J.message=await z(B.message,H),B.stack!==void 0)J.stack=await z(B.stack,H);let L=B,U=Object.getOwnPropertyNames(B).filter((S)=>S!=="message"&&S!=="name"&&S!=="stack"),_=await Promise.all(U.map((S)=>W.value(L[S],H,I+1)));for(let[S,$]of U.entries())J[$]=_[S];return J},object:async(B,H,I)=>{if(H.seen.has(B))return"[Circular]";let J={...H,seen:new Set(H.seen).add(B)};if(Array.isArray(B))return await Promise.all(B.map((L)=>W.value(L,J,I+1)));if(B instanceof Error)return await W.error(B,J,I);if(E(B))return await W.entries(B,J,I);return B},value:(B,H,I)=>{if(typeof B==="string")return z(B,H);if(B===null||typeof B!=="object")return Promise.resolve(B);if(I>=H.maxDepth)return Promise.resolve(B);return W.object(B,H,I)}},R=(B)=>{let H=Promise.resolve(),I=0,J=async(L,U)=>{try{await L,await U()}finally{I-=1}};return{drain:()=>H,push:(L)=>{if(I>=B)return!1;return I+=1,H=J(H,L),!0}}},C=(B)=>Error(`[logixlysia] desertant: ${B} records already awaiting redaction; record dropped`),b=(B,H,I={})=>{let{includeMeta:J=!0,labels:L,maxDepth:U=4,maxQueue:_=1000,minimumConfidence:S,onError:$,onFailure:f="drop"}=I,A=q(H),G=R(_),j=(V)=>{if($===void 0)return;try{$(V)}catch{}},M=async(V,X,N)=>{await B.log(V,X,N)},F=async(V,X,N,P)=>{let Y={callOptions:{group:P,labels:L,minimumConfidence:S},maxDepth:U,redactor:V,seen:new Set(N===void 0?[]:[N])};return{message:await z(X,Y),meta:J&&N!==void 0?await W.entries(N,Y,0):N}};return{flush:async()=>{await G.drain(),await B.flush?.()},log:(V,X,N)=>{if(!G.push(async()=>{let Y;try{let Z=await A();Y=await O(Z,(D)=>F(Z,X,N,D))}catch(Z){if(j(Z),f==="forward")try{await M(V,X,N)}catch(D){j(D)}return}try{await M(V,Y.message,Y.meta)}catch(Z){j(Z)}}))j(C(_))}}};export{b as withRedaction};
2
2
 
3
- //# debugId=8F1FAD9388FD52B564756E2164756E21
4
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsic3JjL2Rlc2VydGFudC50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsKICAgICJpbXBvcnQgdHlwZSB7IEFkYXB0ZXJUcmFuc3BvcnQgfSBmcm9tICcuL2FkYXB0ZXJzL3NoYXJlZCdcbmltcG9ydCB0eXBlIHsgTG9nTGV2ZWwsIFRyYW5zcG9ydCB9IGZyb20gJy4vaW50ZXJmYWNlcydcblxuLyoqXG4gKiBOZXVyYWwgUElJIHJlZGFjdGlvbiBhdCB0aGUgdHJhbnNwb3J0IGJvdW5kYXJ5LCBmb3IgbW9kZWxzIHN1Y2ggYXNcbiAqIFtgQGRlc2VydC1hbnQtbGFicy9yZWRhY3RgXShodHRwczovL2Rlc2VydGFudC5jb20vbW9kZWxzL3JlZGFjdC8pLlxuICpcbiAqIFRoZSBidWlsdC1pbiBgYXV0b1JlZGFjdGAgcGFzcyBpcyBzeW5jaHJvbm91cyBhbmQgcGF0dGVybi1iYXNlZDogaXQgbWFza3NcbiAqIGVtYWlscywgSVBzLCBMdWhuLXZhbGlkIGNhcmQgbnVtYmVycywgSldUcyBhbmQgc2Vuc2l0aXZlIGtleXMsIGJ1dCBpdCBjYW5ub3RcbiAqIHNlZSBmcmVlLXRleHQgUElJIOKAlCBuYW1lcywgc3RyZWV0IGFkZHJlc3NlcywgcGhvbmUgbnVtYmVycywgbmF0aW9uYWwgSURzLiBBXG4gKiB0b2tlbi1jbGFzc2lmaWNhdGlvbiBtb2RlbCBjYW4sIGF0IHRoZSBjb3N0IG9mIGJlaW5nIGFzeW5jaHJvbm91cyBhbmQgb3JkZXJzXG4gKiBvZiBtYWduaXR1ZGUgc2xvd2VyIHBlciBzdHJpbmcsIHdoaWNoIHJ1bGVzIGl0IG91dCBvZiB0aGUgcGVyLXJlcXVlc3QgaG90XG4gKiBwYXRoIHRoYXQgZmVlZHMgdGhlIGNvbnNvbGUuXG4gKlxuICogVGhpcyBzdWJwYXRoIGFwcGxpZXMgc3VjaCBhIG1vZGVsIHdoZXJlIHRoZSBjb3N0IGlzIGFmZm9yZGFibGUgYW5kIHRoZSByaXNrXG4gKiBpcyByZWFsOiBvbiByZWNvcmRzIGxlYXZpbmcgdGhlIHByb2Nlc3MuIENvbnNvbGUgb3V0cHV0IHN0YXlzIGFzIGZhc3QgYXMgaXRcbiAqIHdhczsgZXZlcnl0aGluZyBzaGlwcGVkIHRvIGEgdHJhbnNwb3J0IGlzIG1hc2tlZCBmaXJzdC5cbiAqXG4gKiBUaGUgbW9kZWwgaXMgaW5qZWN0ZWQsIHNvIGxvZ2l4bHlzaWEgdGFrZXMgbm8gZGVwZW5kZW5jeSBvbiBpdCBhbmQgYW55XG4gKiBzdHJ1Y3R1cmFsbHkgY29tcGF0aWJsZSByZWRhY3RvciB3b3Jrcy5cbiAqXG4gKiBgYGB0c1xuICogaW1wb3J0IHsgUmVkYWN0IH0gZnJvbSAnQGRlc2VydC1hbnQtbGFicy9yZWRhY3QvbmF0aXZlJ1xuICogaW1wb3J0IHsgd2l0aFJlZGFjdGlvbiB9IGZyb20gJ2xvZ2l4bHlzaWEvZGVzZXJ0YW50J1xuICpcbiAqIGNvbnN0IGF4aW9tID0gY3JlYXRlQXhpb21UcmFuc3BvcnQoKVxuICpcbiAqIGxvZ2l4bHlzaWEoe1xuICogICBjb25maWc6IHtcbiAqICAgICBhdXRvUmVkYWN0OiB0cnVlLCAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gZmFzdCBwYXNzLCBldmVyeSByZWNvcmRcbiAqICAgICB0cmFuc3BvcnRzOiBbd2l0aFJlZGFjdGlvbihheGlvbSwgUmVkYWN0LmxvYWQpXSAvLyBtb2RlbCBwYXNzLCBzaGlwcGVkIHJlY29yZHNcbiAqICAgfVxuICogfSlcbiAqIGBgYFxuICovXG5cbi8qKiBOdW1iZXIgb2YgbmVzdGVkIGxldmVscyBvZiBgbWV0YWAgd2Fsa2VkIGJlZm9yZSB2YWx1ZXMgcGFzcyB0aHJvdWdoIGFzLWlzLiAqL1xuY29uc3QgREVGQVVMVF9NQVhfREVQVEggPSA0XG4vKiogUmVjb3JkcyBhbGxvd2VkIHRvIHdhaXQgZm9yIHRoZSBtb2RlbCBiZWZvcmUgbmV3IG9uZXMgYXJlIGRyb3BwZWQuICovXG5jb25zdCBERUZBVUxUX01BWF9RVUVVRSA9IDEwMDBcblxuY29uc3QgQ0lSQ1VMQVJfUkVGID0gJ1tDaXJjdWxhcl0nXG5cbi8qKiBEZXRlY3Rpb24gb3B0aW9ucyBwYXNzZWQgdGhyb3VnaCB0byB0aGUgbW9kZWwsIG1pcnJvcmluZyBSZWRhY3QncyBgT3B0aW9uc2AuICovXG5leHBvcnQgaW50ZXJmYWNlIE5ldXJhbENhbGxPcHRpb25zIHtcbiAgLyoqIENhbGwtZ3JvdXAgaWQsIHNvIG9uZSByZWNvcmQgYmlsbHMgYXMgYSBzaW5nbGUgY2FsbC4gU2V0IGJ5IHRoZSB3cmFwcGVyLiAqL1xuICBncm91cD86IHN0cmluZ1xuICAvKiogUmVzdHJpY3QgcmVkYWN0aW9uIHRvIHRoZXNlIFBJSSBsYWJlbHMuIE9taXQgZm9yIHRoZSBtb2RlbCdzIGRlZmF1bHRzLiAqL1xuICBsYWJlbHM/OiBJdGVyYWJsZTxzdHJpbmc+XG4gIC8qKiBOZXVyYWwgY29uZmlkZW5jZSB0aHJlc2hvbGQsIGAwLi4xYC4gRGV0ZXJtaW5pc3RpYyByZWNvZ25pemVycyBhbHdheXMgYXBwbHkuICovXG4gIG1pbmltdW1Db25maWRlbmNlPzogbnVtYmVyXG59XG5cbi8qKlxuICogVGhlIHBhcnQgb2YgYEBkZXNlcnQtYW50LWxhYnMvcmVkYWN0YCdzIGBSZWRhY3RgIHRoaXMgd3JhcHBlciB1c2VzLiBEZWNsYXJlZFxuICogc3RydWN0dXJhbGx5IHNvIHRoZSBwYWNrYWdlIGlzIG5ldmVyIGltcG9ydGVkIGhlcmUsIGFuZCBzbyBhIHN0dWIsIGFcbiAqIGRpZmZlcmVudCBtb2RlbCwgb3IgYSByZW1vdGUgc2VydmljZSBjYW4gYmUgc3Vic3RpdHV0ZWQgaW4gdGVzdHMuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTmV1cmFsUmVkYWN0b3Ige1xuICByZWRhY3Rpb246IChcbiAgICB0ZXh0OiBzdHJpbmcsXG4gICAgb3B0aW9ucz86IE5ldXJhbENhbGxPcHRpb25zXG4gICkgPT4gUHJvbWlzZTx7IHJlZGFjdGVkVGV4dDogc3RyaW5nIH0+XG4gIC8qKiBHcm91cHMgdGhlIGNhbGxzIG1hZGUgaW5zaWRlIGBib2R5YCBpbnRvIGEgc2luZ2xlIGJpbGxlZCBjYWxsLCB3aGVuIHN1cHBvcnRlZC4gKi9cbiAgd2l0aENhbGxHcm91cD86IDxUPihib2R5OiAoZ3JvdXA6IHN0cmluZykgPT4gUHJvbWlzZTxUPikgPT4gUHJvbWlzZTxUPlxufVxuXG4vKipcbiAqIEEgcmVkYWN0b3IsIGEgcHJvbWlzZSBmb3Igb25lLCBvciBhIGxvYWRlciBjYWxsZWQgb25jZSBvbiB0aGUgZmlyc3QgcmVjb3JkIOKAlFxuICogYFJlZGFjdC5sb2FkYCBjYW4gYmUgcGFzc2VkIGRpcmVjdGx5LCBrZWVwaW5nIG1vZGVsIGRvd25sb2FkIG9mZiB0aGUgYm9vdCBwYXRoLlxuICovXG5leHBvcnQgdHlwZSBOZXVyYWxSZWRhY3RvclNvdXJjZSA9XG4gIHwgKCgpID0+IE5ldXJhbFJlZGFjdG9yIHwgUHJvbWlzZTxOZXVyYWxSZWRhY3Rvcj4pXG4gIHwgTmV1cmFsUmVkYWN0b3JcbiAgfCBQcm9taXNlPE5ldXJhbFJlZGFjdG9yPlxuXG5leHBvcnQgaW50ZXJmYWNlIE5ldXJhbFJlZGFjdGlvbk9wdGlvbnMge1xuICAvKipcbiAgICogQWxzbyB3YWxrIGBtZXRhYCBhbmQgcmVkYWN0IHRoZSBzdHJpbmdzIGluc2lkZSBpdC4gVHVybmluZyB0aGlzIG9mZiBsZWF2ZXNcbiAgICogc3RydWN0dXJlZCBmaWVsZHMgdW50b3VjaGVkIGFuZCBvbmx5IG1hc2tzIHRoZSBsb2cgbWVzc2FnZS5cbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgaW5jbHVkZU1ldGE/OiBib29sZWFuXG4gIC8qKiBSZXN0cmljdCByZWRhY3Rpb24gdG8gdGhlc2UgUElJIGxhYmVscy4gT21pdCBmb3IgdGhlIG1vZGVsJ3MgZGVmYXVsdHMuICovXG4gIGxhYmVscz86IEl0ZXJhYmxlPHN0cmluZz5cbiAgLyoqXG4gICAqIE5lc3RlZCBsZXZlbHMgb2YgYG1ldGFgIHdhbGtlZC4gRGVlcGVyIHZhbHVlcyBwYXNzIHRocm91Z2ggdW5yZWRhY3RlZC5cbiAgICogQGRlZmF1bHQgNFxuICAgKi9cbiAgbWF4RGVwdGg/OiBudW1iZXJcbiAgLyoqXG4gICAqIFJlY29yZHMgYWxsb3dlZCB0byB3YWl0IGZvciB0aGUgbW9kZWwgYXQgb25jZS4gQmV5b25kIHRoaXMsIHJlY29yZHMgYXJlXG4gICAqIGRyb3BwZWQgYW5kIHJlcG9ydGVkIHRvIHtAbGluayBOZXVyYWxSZWRhY3Rpb25PcHRpb25zLm9uRXJyb3J9IHJhdGhlciB0aGFuXG4gICAqIHF1ZXVlZCB3aXRob3V0IGJvdW5kIOKAlCByZWRhY3Rpb24gaXMgZmFyIHNsb3dlciB0aGFuIGxvZ2dpbmcsIHNvIGEgYnVyc3RcbiAgICogbXVzdCBub3QgZ3JvdyB0aGUgcXVldWUgdW50aWwgdGhlIHByb2Nlc3MgcnVucyBvdXQgb2YgbWVtb3J5LiBBIGRyb3BwZWRcbiAgICogcmVjb3JkIGlzIG5ldmVyIGZvcndhcmRlZCB1bnJlZGFjdGVkLCB3aGF0ZXZlciBgb25GYWlsdXJlYCBzYXlzLlxuICAgKiBAZGVmYXVsdCAxMDAwXG4gICAqL1xuICBtYXhRdWV1ZT86IG51bWJlclxuICAvKiogTmV1cmFsIGNvbmZpZGVuY2UgdGhyZXNob2xkLCBgMC4uMWAuIERldGVybWluaXN0aWMgcmVjb2duaXplcnMgYWx3YXlzIGFwcGx5LiAqL1xuICBtaW5pbXVtQ29uZmlkZW5jZT86IG51bWJlclxuICAvKiogQ2FsbGVkIHdoZW4gbG9hZGluZyBvciByZWRhY3Rpb24gZmFpbHMsIGFuZCB3aGVuIGEgcmVjb3JkIGlzIGRyb3BwZWQuICovXG4gIG9uRXJyb3I/OiAoZXJyb3I6IHVua25vd24pID0+IHZvaWRcbiAgLyoqXG4gICAqIFdoYXQgdG8gZG8gd2l0aCBhIHJlY29yZCB0aGUgbW9kZWwgY291bGQgbm90IHByb2Nlc3MuIGAnZHJvcCdgIGtlZXBzIHRoZVxuICAgKiBmYWlsdXJlIGNsb3NlZDogYW4gdW5yZWRhY3RlZCByZWNvcmQgbmV2ZXIgcmVhY2hlcyB0aGUgdHJhbnNwb3J0LiBDaG9vc2VcbiAgICogYCdmb3J3YXJkJ2Agb25seSB3aGVuIGxvc2luZyB0aGUgbG9nIGlzIHdvcnNlIHRoYW4gc2hpcHBpbmcgcmF3IFBJSS5cbiAgICogQGRlZmF1bHQgJ2Ryb3AnXG4gICAqL1xuICBvbkZhaWx1cmU/OiAnZHJvcCcgfCAnZm9yd2FyZCdcbn1cblxuLyoqIEEge0BsaW5rIFRyYW5zcG9ydH0gd2hvc2UgcmVjb3JkcyBwYXNzIHRocm91Z2ggdGhlIG1vZGVsIGJlZm9yZSBkZWxpdmVyeS4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUmVkYWN0aW5nVHJhbnNwb3J0IGV4dGVuZHMgVHJhbnNwb3J0IHtcbiAgLyoqIEF3YWl0cyB0aGUgcmVjb3JkcyBhbHJlYWR5IHF1ZXVlZCwgdGhlbiBmbHVzaGVzIHRoZSB3cmFwcGVkIHRyYW5zcG9ydC4gKi9cbiAgZmx1c2g6ICgpID0+IFByb21pc2U8dm9pZD5cbn1cblxuaW50ZXJmYWNlIFdhbGtDb250ZXh0IHtcbiAgY2FsbE9wdGlvbnM6IE5ldXJhbENhbGxPcHRpb25zXG4gIG1heERlcHRoOiBudW1iZXJcbiAgcmVkYWN0b3I6IE5ldXJhbFJlZGFjdG9yXG4gIHNlZW46IFJlYWRvbmx5U2V0PG9iamVjdD5cbn1cblxuY29uc3QgcmVzb2x2ZVJlZGFjdG9yID0gKFxuICBzb3VyY2U6IE5ldXJhbFJlZGFjdG9yU291cmNlXG4pOiBQcm9taXNlPE5ldXJhbFJlZGFjdG9yPiA9PlxuICBQcm9taXNlLnJlc29sdmUodHlwZW9mIHNvdXJjZSA9PT0gJ2Z1bmN0aW9uJyA/IHNvdXJjZSgpIDogc291cmNlKVxuXG4vKipcbiAqIFJlc29sdmVzIHRoZSBzb3VyY2Ugb25jZS4gQSByZWplY3RlZCBsb2FkIHN0YXlzIHJlamVjdGVkOiByZXRyeWluZyBvbiBldmVyeVxuICogcmVjb3JkIHdvdWxkIGhhbW1lciB0aGUgbW9kZWwgaG9zdCwgYW5kIHRoZSBmYWlsdXJlIGlzIHJlcG9ydGVkIHBlciByZWNvcmRcbiAqIHRocm91Z2ggYG9uRXJyb3JgIGVpdGhlciB3YXkuXG4gKi9cbmNvbnN0IG1lbW9pemVSZWRhY3RvciA9IChcbiAgc291cmNlOiBOZXVyYWxSZWRhY3RvclNvdXJjZVxuKTogKCgpID0+IFByb21pc2U8TmV1cmFsUmVkYWN0b3I+KSA9PiB7XG4gIGxldCBjYWNoZWQ6IFByb21pc2U8TmV1cmFsUmVkYWN0b3I+IHwgdW5kZWZpbmVkXG4gIHJldHVybiAoKSA9PiB7XG4gICAgY2FjaGVkID8/PSByZXNvbHZlUmVkYWN0b3Ioc291cmNlKVxuICAgIHJldHVybiBjYWNoZWRcbiAgfVxufVxuXG5jb25zdCB3aXRoQ2FsbEdyb3VwID0gPFQ+KFxuICByZWRhY3RvcjogTmV1cmFsUmVkYWN0b3IsXG4gIGJvZHk6IChncm91cD86IHN0cmluZykgPT4gUHJvbWlzZTxUPlxuKTogUHJvbWlzZTxUPiA9PiB7XG4gIGlmIChyZWRhY3Rvci53aXRoQ2FsbEdyb3VwID09PSB1bmRlZmluZWQpIHtcbiAgICByZXR1cm4gYm9keSgpXG4gIH1cbiAgcmV0dXJuIHJlZGFjdG9yLndpdGhDYWxsR3JvdXAoZ3JvdXAgPT4gYm9keShncm91cCkpXG59XG5cbmNvbnN0IHJlZGFjdFRleHQgPSBhc3luYyAoXG4gIHRleHQ6IHN0cmluZyxcbiAgeyBjYWxsT3B0aW9ucywgcmVkYWN0b3IgfTogV2Fsa0NvbnRleHRcbik6IFByb21pc2U8c3RyaW5nPiA9PiB7XG4gIGlmICh0ZXh0Lmxlbmd0aCA9PT0gMCkge1xuICAgIHJldHVybiB0ZXh0XG4gIH1cbiAgY29uc3QgeyByZWRhY3RlZFRleHQgfSA9IGF3YWl0IHJlZGFjdG9yLnJlZGFjdGlvbih0ZXh0LCBjYWxsT3B0aW9ucylcbiAgcmV0dXJuIHJlZGFjdGVkVGV4dFxufVxuXG5jb25zdCBpc1BsYWluT2JqZWN0ID0gKHZhbHVlOiBvYmplY3QpOiBib29sZWFuID0+IHtcbiAgY29uc3QgcHJvdG8gPSBPYmplY3QuZ2V0UHJvdG90eXBlT2YodmFsdWUpIGFzIG9iamVjdCB8IG51bGxcbiAgcmV0dXJuIHByb3RvID09PSBPYmplY3QucHJvdG90eXBlIHx8IHByb3RvID09PSBudWxsXG59XG5cbi8qKlxuICogRXJyb3JzIGFyZSByZWJ1aWx0IHJhdGhlciB0aGFuIG11dGF0ZWQ6IHRoZSBtZXNzYWdlIGFuZCBzdGFjayBvZiBhIGZhaWxlZFxuICogcmVxdWVzdCBhcmUgZXhhY3RseSB3aGVyZSBmcmVlLXRleHQgUElJIChcInVzZXIgQW5uYSBNw7xsbGVyIG5vdCBmb3VuZFwiKSB0ZW5kc1xuICogdG8gc3VyZmFjZSwgYW5kIHRoZSBvcmlnaW5hbCBpbnN0YW5jZSBtdXN0IHN0YXkgdW50b3VjaGVkIGZvciB0aGUgcmVzdCBvZlxuICogdGhlIHBpcGVsaW5lLlxuICovXG5jb25zdCByZWRhY3RFcnJvciA9IGFzeW5jIChcbiAgZXJyb3I6IEVycm9yLFxuICBjb250ZXh0OiBXYWxrQ29udGV4dCxcbiAgZGVwdGg6IG51bWJlclxuKTogUHJvbWlzZTxFcnJvcj4gPT4ge1xuICBjb25zdCBjbG9uZSA9IE9iamVjdC5jcmVhdGUoT2JqZWN0LmdldFByb3RvdHlwZU9mKGVycm9yKSBhcyBvYmplY3QpIGFzIEVycm9yICZcbiAgICBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPlxuICBjbG9uZS5uYW1lID0gZXJyb3IubmFtZVxuICBjbG9uZS5tZXNzYWdlID0gYXdhaXQgcmVkYWN0VGV4dChlcnJvci5tZXNzYWdlLCBjb250ZXh0KVxuICBpZiAoZXJyb3Iuc3RhY2sgIT09IHVuZGVmaW5lZCkge1xuICAgIGNsb25lLnN0YWNrID0gYXdhaXQgcmVkYWN0VGV4dChlcnJvci5zdGFjaywgY29udGV4dClcbiAgfVxuXG4gIGNvbnN0IHJlY29yZCA9IGVycm9yIGFzIHVua25vd24gYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj5cbiAgY29uc3Qgb3duS2V5cyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKGVycm9yKS5maWx0ZXIoXG4gICAga2V5ID0+IGtleSAhPT0gJ21lc3NhZ2UnICYmIGtleSAhPT0gJ25hbWUnICYmIGtleSAhPT0gJ3N0YWNrJ1xuICApXG4gIGNvbnN0IHZhbHVlcyA9IGF3YWl0IFByb21pc2UuYWxsKFxuICAgIG93bktleXMubWFwKGtleSA9PiByZWRhY3RWYWx1ZShyZWNvcmRba2V5XSwgY29udGV4dCwgZGVwdGggKyAxKSlcbiAgKVxuICBmb3IgKGNvbnN0IFtpbmRleCwga2V5XSBvZiBvd25LZXlzLmVudHJpZXMoKSkge1xuICAgIGNsb25lW2tleV0gPSB2YWx1ZXNbaW5kZXhdXG4gIH1cbiAgcmV0dXJuIGNsb25lXG59XG5cbmNvbnN0IHJlZGFjdEVudHJpZXMgPSBhc3luYyAoXG4gIHJlY29yZDogUmVjb3JkPHN0cmluZywgdW5rbm93bj4sXG4gIGNvbnRleHQ6IFdhbGtDb250ZXh0LFxuICBkZXB0aDogbnVtYmVyXG4pOiBQcm9taXNlPFJlY29yZDxzdHJpbmcsIHVua25vd24+PiA9PiB7XG4gIGNvbnN0IGVudHJpZXMgPSBhd2FpdCBQcm9taXNlLmFsbChcbiAgICBPYmplY3QuZW50cmllcyhyZWNvcmQpLm1hcChcbiAgICAgIGFzeW5jIChba2V5LCB2YWx1ZV0pID0+XG4gICAgICAgIFtrZXksIGF3YWl0IHJlZGFjdFZhbHVlKHZhbHVlLCBjb250ZXh0LCBkZXB0aCArIDEpXSBhcyBjb25zdFxuICAgIClcbiAgKVxuICByZXR1cm4gT2JqZWN0LmZyb21FbnRyaWVzKGVudHJpZXMpXG59XG5cbmNvbnN0IHJlZGFjdE9iamVjdCA9IGFzeW5jIChcbiAgdmFsdWU6IG9iamVjdCxcbiAgY29udGV4dDogV2Fsa0NvbnRleHQsXG4gIGRlcHRoOiBudW1iZXJcbik6IFByb21pc2U8dW5rbm93bj4gPT4ge1xuICBpZiAoY29udGV4dC5zZWVuLmhhcyh2YWx1ZSkpIHtcbiAgICByZXR1cm4gQ0lSQ1VMQVJfUkVGXG4gIH1cblxuICBjb25zdCBjaGlsZENvbnRleHQ6IFdhbGtDb250ZXh0ID0ge1xuICAgIC4uLmNvbnRleHQsXG4gICAgc2VlbjogbmV3IFNldChjb250ZXh0LnNlZW4pLmFkZCh2YWx1ZSlcbiAgfVxuICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICByZXR1cm4gYXdhaXQgUHJvbWlzZS5hbGwoXG4gICAgICB2YWx1ZS5tYXAoaXRlbSA9PiByZWRhY3RWYWx1ZShpdGVtLCBjaGlsZENvbnRleHQsIGRlcHRoICsgMSkpXG4gICAgKVxuICB9XG4gIGlmICh2YWx1ZSBpbnN0YW5jZW9mIEVycm9yKSB7XG4gICAgcmV0dXJuIGF3YWl0IHJlZGFjdEVycm9yKHZhbHVlLCBjaGlsZENvbnRleHQsIGRlcHRoKVxuICB9XG4gIGlmIChpc1BsYWluT2JqZWN0KHZhbHVlKSkge1xuICAgIHJldHVybiBhd2FpdCByZWRhY3RFbnRyaWVzKFxuICAgICAgdmFsdWUgYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4sXG4gICAgICBjaGlsZENvbnRleHQsXG4gICAgICBkZXB0aFxuICAgIClcbiAgfVxuICAvLyBEYXRlcywgTWFwcywgY2xhc3MgaW5zdGFuY2VzIGFuZCB0aGUgbGlrZTogbm8gc2FmZSBnZW5lcmljIHdheSB0byByZWJ1aWxkXG4gIC8vIHRoZW0sIHNvIHRoZXkgcGFzcyB0aHJvdWdoLiBGbGF0dGVuIGFueXRoaW5nIHRoYXQgY2FuIGNhcnJ5IGZyZWUtdGV4dCBQSUlcbiAgLy8gaW50byBwbGFpbiBmaWVsZHMgYmVmb3JlIGl0IHJlYWNoZXMgdGhlIHRyYW5zcG9ydC5cbiAgcmV0dXJuIHZhbHVlXG59XG5cbmNvbnN0IHJlZGFjdFZhbHVlID0gKFxuICB2YWx1ZTogdW5rbm93bixcbiAgY29udGV4dDogV2Fsa0NvbnRleHQsXG4gIGRlcHRoOiBudW1iZXJcbik6IFByb21pc2U8dW5rbm93bj4gPT4ge1xuICBpZiAodHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJykge1xuICAgIHJldHVybiByZWRhY3RUZXh0KHZhbHVlLCBjb250ZXh0KVxuICB9XG4gIGlmICh2YWx1ZSA9PT0gbnVsbCB8fCB0eXBlb2YgdmFsdWUgIT09ICdvYmplY3QnKSB7XG4gICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSh2YWx1ZSlcbiAgfVxuICBpZiAoZGVwdGggPj0gY29udGV4dC5tYXhEZXB0aCkge1xuICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUodmFsdWUpXG4gIH1cbiAgcmV0dXJuIHJlZGFjdE9iamVjdCh2YWx1ZSwgY29udGV4dCwgZGVwdGgpXG59XG5cbmludGVyZmFjZSBRdWV1ZSB7XG4gIGRyYWluOiAoKSA9PiBQcm9taXNlPHZvaWQ+XG4gIHB1c2g6ICh0YXNrOiAoKSA9PiBQcm9taXNlPHZvaWQ+KSA9PiBib29sZWFuXG59XG5cbi8qKlxuICogU2VyaWFsaXplcyByZWRhY3Rpb24uIE9uZSBtb2RlbCBpbnN0YW5jZSBob2xkcyBvbmUgbmF0aXZlIGhhbmRsZSwgYW5kIHRoZVxuICogY29uc29sZSBoYXMgYWxyZWFkeSBwcmludGVkIHRoZXNlIHJlY29yZHMgaW4gb3JkZXIsIHNvIHRoZSB0cmFuc3BvcnQgc2hvdWxkXG4gKiByZWNlaXZlIHRoZW0gaW4gb3JkZXIgdG9vIHJhdGhlciB0aGFuIGluIHdoYXRldmVyIG9yZGVyIGluZmVyZW5jZSBmaW5pc2hlcy5cbiAqL1xuY29uc3QgY3JlYXRlUXVldWUgPSAobWF4UXVldWU6IG51bWJlcik6IFF1ZXVlID0+IHtcbiAgbGV0IHRhaWw6IFByb21pc2U8dm9pZD4gPSBQcm9taXNlLnJlc29sdmUoKVxuICBsZXQgcGVuZGluZyA9IDBcblxuICByZXR1cm4ge1xuICAgIGRyYWluOiAoKSA9PiB0YWlsLFxuICAgIHB1c2g6ICh0YXNrOiAoKSA9PiBQcm9taXNlPHZvaWQ+KTogYm9vbGVhbiA9PiB7XG4gICAgICBpZiAocGVuZGluZyA+PSBtYXhRdWV1ZSkge1xuICAgICAgICByZXR1cm4gZmFsc2VcbiAgICAgIH1cbiAgICAgIHBlbmRpbmcgKz0gMVxuICAgICAgdGFpbCA9IHRhaWwudGhlbih0YXNrKS5maW5hbGx5KCgpID0+IHtcbiAgICAgICAgcGVuZGluZyAtPSAxXG4gICAgICB9KVxuICAgICAgcmV0dXJuIHRydWVcbiAgICB9XG4gIH1cbn1cblxuY29uc3QgcXVldWVGdWxsRXJyb3IgPSAobWF4UXVldWU6IG51bWJlcik6IEVycm9yID0+XG4gIG5ldyBFcnJvcihcbiAgICBgW2xvZ2l4bHlzaWFdIGRlc2VydGFudDogJHttYXhRdWV1ZX0gcmVjb3JkcyBhbHJlYWR5IGF3YWl0aW5nIHJlZGFjdGlvbjsgcmVjb3JkIGRyb3BwZWRgXG4gIClcblxuLyoqXG4gKiBXcmFwcyBhIHRyYW5zcG9ydCBzbyBldmVyeSByZWNvcmQgaXMgcGFzc2VkIHRocm91Z2ggYSBQSUkgbW9kZWwgYmVmb3JlIGl0IGlzXG4gKiBkZWxpdmVyZWQuIFJlZGFjdGlvbiBydW5zIG9mZiB0aGUgcmVxdWVzdCBwYXRoIOKAlCB7QGxpbmsgVHJhbnNwb3J0LmxvZ31cbiAqIHJldHVybnMgaW1tZWRpYXRlbHkgYW5kIHRoZSByZWNvcmQgaXMgZGVsaXZlcmVkIG9uY2UgdGhlIG1vZGVsIGlzIGRvbmUsIGluXG4gKiB0aGUgb3JkZXIgaXQgd2FzIGxvZ2dlZC5cbiAqXG4gKiBUaGUgd3JhcHBlciBmYWlscyBjbG9zZWQgYnkgZGVmYXVsdDogYSByZWNvcmQgdGhlIG1vZGVsIGNvdWxkIG5vdCBwcm9jZXNzIGlzXG4gKiBkcm9wcGVkIGFuZCByZXBvcnRlZCB0aHJvdWdoIGBvbkVycm9yYCwgbmV2ZXIgZm9yd2FyZGVkIHVucmVkYWN0ZWQuXG4gKlxuICogQHBhcmFtIHRyYW5zcG9ydCBUaGUgdHJhbnNwb3J0IHRvIHByb3RlY3QuIEl0cyBgZmx1c2hgLCBpZiBhbnksIGlzIHByZXNlcnZlZC5cbiAqIEBwYXJhbSBzb3VyY2UgVGhlIG1vZGVsLCBhIHByb21pc2UgZm9yIGl0LCBvciBhIGxvYWRlciBydW4gb24gdGhlIGZpcnN0IHJlY29yZC5cbiAqL1xuZXhwb3J0IGNvbnN0IHdpdGhSZWRhY3Rpb24gPSAoXG4gIHRyYW5zcG9ydDogVHJhbnNwb3J0LFxuICBzb3VyY2U6IE5ldXJhbFJlZGFjdG9yU291cmNlLFxuICBvcHRpb25zOiBOZXVyYWxSZWRhY3Rpb25PcHRpb25zID0ge31cbik6IFJlZGFjdGluZ1RyYW5zcG9ydCA9PiB7XG4gIGNvbnN0IHtcbiAgICBpbmNsdWRlTWV0YSA9IHRydWUsXG4gICAgbGFiZWxzLFxuICAgIG1heERlcHRoID0gREVGQVVMVF9NQVhfREVQVEgsXG4gICAgbWF4UXVldWUgPSBERUZBVUxUX01BWF9RVUVVRSxcbiAgICBtaW5pbXVtQ29uZmlkZW5jZSxcbiAgICBvbkVycm9yLFxuICAgIG9uRmFpbHVyZSA9ICdkcm9wJ1xuICB9ID0gb3B0aW9uc1xuXG4gIGNvbnN0IGdldFJlZGFjdG9yID0gbWVtb2l6ZVJlZGFjdG9yKHNvdXJjZSlcbiAgY29uc3QgcXVldWUgPSBjcmVhdGVRdWV1ZShtYXhRdWV1ZSlcblxuICBjb25zdCByZXBvcnQgPSAoZXJyb3I6IHVua25vd24pOiB2b2lkID0+IHtcbiAgICBpZiAob25FcnJvciA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXR1cm5cbiAgICB9XG4gICAgdHJ5IHtcbiAgICAgIG9uRXJyb3IoZXJyb3IpXG4gICAgfSBjYXRjaCB7XG4gICAgICAvLyBBIHJlcG9ydGluZyBob29rIHRoYXQgdGhyb3dzIG11c3Qgbm90IHRha2UgdGhlIGxvZyBwaXBlbGluZSB3aXRoIGl0LlxuICAgIH1cbiAgfVxuXG4gIGNvbnN0IGRlbGl2ZXIgPSBhc3luYyAoXG4gICAgbGV2ZWw6IExvZ0xldmVsLFxuICAgIG1lc3NhZ2U6IHN0cmluZyxcbiAgICBtZXRhPzogUmVjb3JkPHN0cmluZywgdW5rbm93bj5cbiAgKTogUHJvbWlzZTx2b2lkPiA9PiB7XG4gICAgYXdhaXQgdHJhbnNwb3J0LmxvZyhsZXZlbCwgbWVzc2FnZSwgbWV0YSlcbiAgfVxuXG4gIGNvbnN0IHJlZGFjdFJlY29yZCA9IGFzeW5jIChcbiAgICByZWRhY3RvcjogTmV1cmFsUmVkYWN0b3IsXG4gICAgbWVzc2FnZTogc3RyaW5nLFxuICAgIG1ldGE6IFJlY29yZDxzdHJpbmcsIHVua25vd24+IHwgdW5kZWZpbmVkLFxuICAgIGdyb3VwPzogc3RyaW5nXG4gICk6IFByb21pc2U8eyBtZXNzYWdlOiBzdHJpbmc7IG1ldGE/OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiB9PiA9PiB7XG4gICAgY29uc3QgY29udGV4dDogV2Fsa0NvbnRleHQgPSB7XG4gICAgICBjYWxsT3B0aW9uczogeyBncm91cCwgbGFiZWxzLCBtaW5pbXVtQ29uZmlkZW5jZSB9LFxuICAgICAgbWF4RGVwdGgsXG4gICAgICByZWRhY3RvcixcbiAgICAgIHNlZW46IG5ldyBTZXQobWV0YSA9PT0gdW5kZWZpbmVkID8gW10gOiBbbWV0YV0pXG4gICAgfVxuICAgIHJldHVybiB7XG4gICAgICBtZXNzYWdlOiBhd2FpdCByZWRhY3RUZXh0KG1lc3NhZ2UsIGNvbnRleHQpLFxuICAgICAgbWV0YTpcbiAgICAgICAgaW5jbHVkZU1ldGEgJiYgbWV0YSAhPT0gdW5kZWZpbmVkXG4gICAgICAgICAgPyBhd2FpdCByZWRhY3RFbnRyaWVzKG1ldGEsIGNvbnRleHQsIDApXG4gICAgICAgICAgOiBtZXRhXG4gICAgfVxuICB9XG5cbiAgY29uc3QgbG9nID0gKFxuICAgIGxldmVsOiBMb2dMZXZlbCxcbiAgICBtZXNzYWdlOiBzdHJpbmcsXG4gICAgbWV0YT86IFJlY29yZDxzdHJpbmcsIHVua25vd24+XG4gICk6IHZvaWQgPT4ge1xuICAgIGNvbnN0IGFjY2VwdGVkID0gcXVldWUucHVzaChhc3luYyAoKSA9PiB7XG4gICAgICBsZXQgcmVkYWN0ZWQ6IHsgbWVzc2FnZTogc3RyaW5nOyBtZXRhPzogUmVjb3JkPHN0cmluZywgdW5rbm93bj4gfVxuICAgICAgdHJ5IHtcbiAgICAgICAgY29uc3QgcmVkYWN0b3IgPSBhd2FpdCBnZXRSZWRhY3RvcigpXG4gICAgICAgIHJlZGFjdGVkID0gYXdhaXQgd2l0aENhbGxHcm91cChyZWRhY3RvciwgZ3JvdXAgPT5cbiAgICAgICAgICByZWRhY3RSZWNvcmQocmVkYWN0b3IsIG1lc3NhZ2UsIG1ldGEsIGdyb3VwKVxuICAgICAgICApXG4gICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICByZXBvcnQoZXJyb3IpXG4gICAgICAgIGlmIChvbkZhaWx1cmUgPT09ICdmb3J3YXJkJykge1xuICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICBhd2FpdCBkZWxpdmVyKGxldmVsLCBtZXNzYWdlLCBtZXRhKVxuICAgICAgICAgIH0gY2F0Y2ggKGRlbGl2ZXJ5RXJyb3IpIHtcbiAgICAgICAgICAgIHJlcG9ydChkZWxpdmVyeUVycm9yKVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm5cbiAgICAgIH1cblxuICAgICAgdHJ5IHtcbiAgICAgICAgYXdhaXQgZGVsaXZlcihsZXZlbCwgcmVkYWN0ZWQubWVzc2FnZSwgcmVkYWN0ZWQubWV0YSlcbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIHJlcG9ydChlcnJvcilcbiAgICAgIH1cbiAgICB9KVxuXG4gICAgaWYgKCFhY2NlcHRlZCkge1xuICAgICAgcmVwb3J0KHF1ZXVlRnVsbEVycm9yKG1heFF1ZXVlKSlcbiAgICB9XG4gIH1cblxuICByZXR1cm4ge1xuICAgIGZsdXNoOiBhc3luYyAoKSA9PiB7XG4gICAgICBhd2FpdCBxdWV1ZS5kcmFpbigpXG4gICAgICBhd2FpdCAodHJhbnNwb3J0IGFzIFBhcnRpYWw8QWRhcHRlclRyYW5zcG9ydD4pLmZsdXNoPy4oKVxuICAgIH0sXG4gICAgbG9nXG4gIH1cbn1cbiIKICBdLAogICJtYXBwaW5ncyI6ICJBQTZIQSxJQUFNLEVBQWtCLENBQ3RCLElBRUEsUUFBUSxRQUFRLE9BQU8sSUFBVyxXQUFhLEVBQU8sRUFBSSxDQUFNLEVBTzVELEVBQWtCLENBQ3RCLElBQ29DLENBQ3BDLElBQUksRUFDSixNQUFPLElBQU0sQ0FFWCxPQURBLElBQVcsRUFBZ0IsQ0FBTSxFQUMxQixJQUlMLEVBQWdCLENBQ3BCLEVBQ0EsSUFDZSxDQUNmLEdBQUksRUFBUyxnQkFBa0IsT0FDN0IsT0FBTyxFQUFLLEVBRWQsT0FBTyxFQUFTLGNBQWMsS0FBUyxFQUFLLENBQUssQ0FBQyxHQUc5QyxFQUFhLE1BQ2pCLEdBQ0UsY0FBYSxjQUNLLENBQ3BCLEdBQUksRUFBSyxTQUFXLEVBQ2xCLE9B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
3
+ //# debugId=A6A2AD0E5AC875E964756E2164756E21
4
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsic3JjL2Rlc2VydGFudC50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsKICAgICJpbXBvcnQgdHlwZSB7IEFkYXB0ZXJUcmFuc3BvcnQgfSBmcm9tICcuL2FkYXB0ZXJzL3NoYXJlZCdcbmltcG9ydCB0eXBlIHsgTG9nTGV2ZWwsIFRyYW5zcG9ydCB9IGZyb20gJy4vaW50ZXJmYWNlcydcblxuLyoqXG4gKiBOZXVyYWwgUElJIHJlZGFjdGlvbiBhdCB0aGUgdHJhbnNwb3J0IGJvdW5kYXJ5LCBmb3IgbW9kZWxzIHN1Y2ggYXNcbiAqIFtgQGRlc2VydC1hbnQtbGFicy9yZWRhY3RgXShodHRwczovL2Rlc2VydGFudC5jb20vbW9kZWxzL3JlZGFjdC8pLlxuICpcbiAqIFRoZSBidWlsdC1pbiBgYXV0b1JlZGFjdGAgcGFzcyBpcyBzeW5jaHJvbm91cyBhbmQgcGF0dGVybi1iYXNlZDogaXQgbWFza3NcbiAqIGVtYWlscywgSVBzLCBMdWhuLXZhbGlkIGNhcmQgbnVtYmVycywgSldUcyBhbmQgc2Vuc2l0aXZlIGtleXMsIGJ1dCBpdCBjYW5ub3RcbiAqIHNlZSBmcmVlLXRleHQgUElJIOKAlCBuYW1lcywgc3RyZWV0IGFkZHJlc3NlcywgcGhvbmUgbnVtYmVycywgbmF0aW9uYWwgSURzLiBBXG4gKiB0b2tlbi1jbGFzc2lmaWNhdGlvbiBtb2RlbCBjYW4sIGF0IHRoZSBjb3N0IG9mIGJlaW5nIGFzeW5jaHJvbm91cyBhbmQgb3JkZXJzXG4gKiBvZiBtYWduaXR1ZGUgc2xvd2VyIHBlciBzdHJpbmcsIHdoaWNoIHJ1bGVzIGl0IG91dCBvZiB0aGUgcGVyLXJlcXVlc3QgaG90XG4gKiBwYXRoIHRoYXQgZmVlZHMgdGhlIGNvbnNvbGUuXG4gKlxuICogVGhpcyBzdWJwYXRoIGFwcGxpZXMgc3VjaCBhIG1vZGVsIHdoZXJlIHRoZSBjb3N0IGlzIGFmZm9yZGFibGUgYW5kIHRoZSByaXNrXG4gKiBpcyByZWFsOiBvbiByZWNvcmRzIGxlYXZpbmcgdGhlIHByb2Nlc3MuIENvbnNvbGUgb3V0cHV0IHN0YXlzIGFzIGZhc3QgYXMgaXRcbiAqIHdhczsgZXZlcnl0aGluZyBzaGlwcGVkIHRvIGEgdHJhbnNwb3J0IGlzIG1hc2tlZCBmaXJzdC5cbiAqXG4gKiBUaGUgbW9kZWwgaXMgaW5qZWN0ZWQsIHNvIGxvZ2l4bHlzaWEgdGFrZXMgbm8gZGVwZW5kZW5jeSBvbiBpdCBhbmQgYW55XG4gKiBzdHJ1Y3R1cmFsbHkgY29tcGF0aWJsZSByZWRhY3RvciB3b3Jrcy5cbiAqXG4gKiBgYGB0c1xuICogaW1wb3J0IHsgUmVkYWN0IH0gZnJvbSAnQGRlc2VydC1hbnQtbGFicy9yZWRhY3QvbmF0aXZlJ1xuICogaW1wb3J0IHsgd2l0aFJlZGFjdGlvbiB9IGZyb20gJ2xvZ2l4bHlzaWEvZGVzZXJ0YW50J1xuICpcbiAqIGNvbnN0IGF4aW9tID0gY3JlYXRlQXhpb21UcmFuc3BvcnQoKVxuICpcbiAqIGxvZ2l4bHlzaWEoe1xuICogICBjb25maWc6IHtcbiAqICAgICBhdXRvUmVkYWN0OiB0cnVlLCAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gZmFzdCBwYXNzLCBldmVyeSByZWNvcmRcbiAqICAgICB0cmFuc3BvcnRzOiBbd2l0aFJlZGFjdGlvbihheGlvbSwgUmVkYWN0LmxvYWQpXSAvLyBtb2RlbCBwYXNzLCBzaGlwcGVkIHJlY29yZHNcbiAqICAgfVxuICogfSlcbiAqIGBgYFxuICovXG5cbi8qKiBOdW1iZXIgb2YgbmVzdGVkIGxldmVscyBvZiBgbWV0YWAgd2Fsa2VkIGJlZm9yZSB2YWx1ZXMgcGFzcyB0aHJvdWdoIGFzLWlzLiAqL1xuY29uc3QgREVGQVVMVF9NQVhfREVQVEggPSA0XG4vKiogUmVjb3JkcyBhbGxvd2VkIHRvIHdhaXQgZm9yIHRoZSBtb2RlbCBiZWZvcmUgbmV3IG9uZXMgYXJlIGRyb3BwZWQuICovXG5jb25zdCBERUZBVUxUX01BWF9RVUVVRSA9IDEwMDBcblxuY29uc3QgQ0lSQ1VMQVJfUkVGID0gJ1tDaXJjdWxhcl0nXG5cbi8qKiBEZXRlY3Rpb24gb3B0aW9ucyBwYXNzZWQgdGhyb3VnaCB0byB0aGUgbW9kZWwsIG1pcnJvcmluZyBSZWRhY3QncyBgT3B0aW9uc2AuICovXG5leHBvcnQgaW50ZXJmYWNlIE5ldXJhbENhbGxPcHRpb25zIHtcbiAgLyoqIENhbGwtZ3JvdXAgaWQsIHNvIG9uZSByZWNvcmQgYmlsbHMgYXMgYSBzaW5nbGUgY2FsbC4gU2V0IGJ5IHRoZSB3cmFwcGVyLiAqL1xuICBncm91cD86IHN0cmluZ1xuICAvKiogUmVzdHJpY3QgcmVkYWN0aW9uIHRvIHRoZXNlIFBJSSBsYWJlbHMuIE9taXQgZm9yIHRoZSBtb2RlbCdzIGRlZmF1bHRzLiAqL1xuICBsYWJlbHM/OiBJdGVyYWJsZTxzdHJpbmc+XG4gIC8qKiBOZXVyYWwgY29uZmlkZW5jZSB0aHJlc2hvbGQsIGAwLi4xYC4gRGV0ZXJtaW5pc3RpYyByZWNvZ25pemVycyBhbHdheXMgYXBwbHkuICovXG4gIG1pbmltdW1Db25maWRlbmNlPzogbnVtYmVyXG59XG5cbi8qKlxuICogVGhlIHBhcnQgb2YgYEBkZXNlcnQtYW50LWxhYnMvcmVkYWN0YCdzIGBSZWRhY3RgIHRoaXMgd3JhcHBlciB1c2VzLiBEZWNsYXJlZFxuICogc3RydWN0dXJhbGx5IHNvIHRoZSBwYWNrYWdlIGlzIG5ldmVyIGltcG9ydGVkIGhlcmUsIGFuZCBzbyBhIHN0dWIsIGFcbiAqIGRpZmZlcmVudCBtb2RlbCwgb3IgYSByZW1vdGUgc2VydmljZSBjYW4gYmUgc3Vic3RpdHV0ZWQgaW4gdGVzdHMuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTmV1cmFsUmVkYWN0b3Ige1xuICByZWRhY3Rpb246IChcbiAgICB0ZXh0OiBzdHJpbmcsXG4gICAgb3B0aW9ucz86IE5ldXJhbENhbGxPcHRpb25zXG4gICkgPT4gUHJvbWlzZTx7IHJlZGFjdGVkVGV4dDogc3RyaW5nIH0+XG4gIC8qKiBHcm91cHMgdGhlIGNhbGxzIG1hZGUgaW5zaWRlIGBib2R5YCBpbnRvIGEgc2luZ2xlIGJpbGxlZCBjYWxsLCB3aGVuIHN1cHBvcnRlZC4gKi9cbiAgd2l0aENhbGxHcm91cD86IDxUPihib2R5OiAoZ3JvdXA6IHN0cmluZykgPT4gUHJvbWlzZTxUPikgPT4gUHJvbWlzZTxUPlxufVxuXG4vKipcbiAqIEEgcmVkYWN0b3IsIGEgcHJvbWlzZSBmb3Igb25lLCBvciBhIGxvYWRlciBjYWxsZWQgb25jZSBvbiB0aGUgZmlyc3QgcmVjb3JkIOKAlFxuICogYFJlZGFjdC5sb2FkYCBjYW4gYmUgcGFzc2VkIGRpcmVjdGx5LCBrZWVwaW5nIG1vZGVsIGRvd25sb2FkIG9mZiB0aGUgYm9vdCBwYXRoLlxuICovXG5leHBvcnQgdHlwZSBOZXVyYWxSZWRhY3RvclNvdXJjZSA9XG4gIHwgKCgpID0+IE5ldXJhbFJlZGFjdG9yIHwgUHJvbWlzZTxOZXVyYWxSZWRhY3Rvcj4pXG4gIHwgTmV1cmFsUmVkYWN0b3JcbiAgfCBQcm9taXNlPE5ldXJhbFJlZGFjdG9yPlxuXG5leHBvcnQgaW50ZXJmYWNlIE5ldXJhbFJlZGFjdGlvbk9wdGlvbnMge1xuICAvKipcbiAgICogQWxzbyB3YWxrIGBtZXRhYCBhbmQgcmVkYWN0IHRoZSBzdHJpbmdzIGluc2lkZSBpdC4gVHVybmluZyB0aGlzIG9mZiBsZWF2ZXNcbiAgICogc3RydWN0dXJlZCBmaWVsZHMgdW50b3VjaGVkIGFuZCBvbmx5IG1hc2tzIHRoZSBsb2cgbWVzc2FnZS5cbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgaW5jbHVkZU1ldGE/OiBib29sZWFuXG4gIC8qKiBSZXN0cmljdCByZWRhY3Rpb24gdG8gdGhlc2UgUElJIGxhYmVscy4gT21pdCBmb3IgdGhlIG1vZGVsJ3MgZGVmYXVsdHMuICovXG4gIGxhYmVscz86IEl0ZXJhYmxlPHN0cmluZz5cbiAgLyoqXG4gICAqIE5lc3RlZCBsZXZlbHMgb2YgYG1ldGFgIHdhbGtlZC4gRGVlcGVyIHZhbHVlcyBwYXNzIHRocm91Z2ggdW5yZWRhY3RlZC5cbiAgICogQGRlZmF1bHQgNFxuICAgKi9cbiAgbWF4RGVwdGg/OiBudW1iZXJcbiAgLyoqXG4gICAqIFJlY29yZHMgYWxsb3dlZCB0byB3YWl0IGZvciB0aGUgbW9kZWwgYXQgb25jZS4gQmV5b25kIHRoaXMsIHJlY29yZHMgYXJlXG4gICAqIGRyb3BwZWQgYW5kIHJlcG9ydGVkIHRvIHtAbGluayBOZXVyYWxSZWRhY3Rpb25PcHRpb25zLm9uRXJyb3J9IHJhdGhlciB0aGFuXG4gICAqIHF1ZXVlZCB3aXRob3V0IGJvdW5kIOKAlCByZWRhY3Rpb24gaXMgZmFyIHNsb3dlciB0aGFuIGxvZ2dpbmcsIHNvIGEgYnVyc3RcbiAgICogbXVzdCBub3QgZ3JvdyB0aGUgcXVldWUgdW50aWwgdGhlIHByb2Nlc3MgcnVucyBvdXQgb2YgbWVtb3J5LiBBIGRyb3BwZWRcbiAgICogcmVjb3JkIGlzIG5ldmVyIGZvcndhcmRlZCB1bnJlZGFjdGVkLCB3aGF0ZXZlciBgb25GYWlsdXJlYCBzYXlzLlxuICAgKiBAZGVmYXVsdCAxMDAwXG4gICAqL1xuICBtYXhRdWV1ZT86IG51bWJlclxuICAvKiogTmV1cmFsIGNvbmZpZGVuY2UgdGhyZXNob2xkLCBgMC4uMWAuIERldGVybWluaXN0aWMgcmVjb2duaXplcnMgYWx3YXlzIGFwcGx5LiAqL1xuICBtaW5pbXVtQ29uZmlkZW5jZT86IG51bWJlclxuICAvKiogQ2FsbGVkIHdoZW4gbG9hZGluZyBvciByZWRhY3Rpb24gZmFpbHMsIGFuZCB3aGVuIGEgcmVjb3JkIGlzIGRyb3BwZWQuICovXG4gIG9uRXJyb3I/OiAoZXJyb3I6IHVua25vd24pID0+IHZvaWRcbiAgLyoqXG4gICAqIFdoYXQgdG8gZG8gd2l0aCBhIHJlY29yZCB0aGUgbW9kZWwgY291bGQgbm90IHByb2Nlc3MuIGAnZHJvcCdgIGtlZXBzIHRoZVxuICAgKiBmYWlsdXJlIGNsb3NlZDogYW4gdW5yZWRhY3RlZCByZWNvcmQgbmV2ZXIgcmVhY2hlcyB0aGUgdHJhbnNwb3J0LiBDaG9vc2VcbiAgICogYCdmb3J3YXJkJ2Agb25seSB3aGVuIGxvc2luZyB0aGUgbG9nIGlzIHdvcnNlIHRoYW4gc2hpcHBpbmcgcmF3IFBJSS5cbiAgICogQGRlZmF1bHQgJ2Ryb3AnXG4gICAqL1xuICBvbkZhaWx1cmU/OiAnZHJvcCcgfCAnZm9yd2FyZCdcbn1cblxuLyoqIEEge0BsaW5rIFRyYW5zcG9ydH0gd2hvc2UgcmVjb3JkcyBwYXNzIHRocm91Z2ggdGhlIG1vZGVsIGJlZm9yZSBkZWxpdmVyeS4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUmVkYWN0aW5nVHJhbnNwb3J0IGV4dGVuZHMgVHJhbnNwb3J0IHtcbiAgLyoqIEF3YWl0cyB0aGUgcmVjb3JkcyBhbHJlYWR5IHF1ZXVlZCwgdGhlbiBmbHVzaGVzIHRoZSB3cmFwcGVkIHRyYW5zcG9ydC4gKi9cbiAgZmx1c2g6ICgpID0+IFByb21pc2U8dm9pZD5cbn1cblxuaW50ZXJmYWNlIFdhbGtDb250ZXh0IHtcbiAgY2FsbE9wdGlvbnM6IE5ldXJhbENhbGxPcHRpb25zXG4gIG1heERlcHRoOiBudW1iZXJcbiAgcmVkYWN0b3I6IE5ldXJhbFJlZGFjdG9yXG4gIHNlZW46IFJlYWRvbmx5U2V0PG9iamVjdD5cbn1cblxuY29uc3QgcmVzb2x2ZVJlZGFjdG9yID0gKFxuICBzb3VyY2U6IE5ldXJhbFJlZGFjdG9yU291cmNlXG4pOiBQcm9taXNlPE5ldXJhbFJlZGFjdG9yPiA9PlxuICBQcm9taXNlLnJlc29sdmUodHlwZW9mIHNvdXJjZSA9PT0gJ2Z1bmN0aW9uJyA/IHNvdXJjZSgpIDogc291cmNlKVxuXG4vKipcbiAqIFJlc29sdmVzIHRoZSBzb3VyY2Ugb25jZS4gQSByZWplY3RlZCBsb2FkIHN0YXlzIHJlamVjdGVkOiByZXRyeWluZyBvbiBldmVyeVxuICogcmVjb3JkIHdvdWxkIGhhbW1lciB0aGUgbW9kZWwgaG9zdCwgYW5kIHRoZSBmYWlsdXJlIGlzIHJlcG9ydGVkIHBlciByZWNvcmRcbiAqIHRocm91Z2ggYG9uRXJyb3JgIGVpdGhlciB3YXkuXG4gKi9cbmNvbnN0IG1lbW9pemVSZWRhY3RvciA9IChcbiAgc291cmNlOiBOZXVyYWxSZWRhY3RvclNvdXJjZVxuKTogKCgpID0+IFByb21pc2U8TmV1cmFsUmVkYWN0b3I+KSA9PiB7XG4gIGxldCBjYWNoZWQ6IFByb21pc2U8TmV1cmFsUmVkYWN0b3I+IHwgdW5kZWZpbmVkXG4gIHJldHVybiAoKSA9PiB7XG4gICAgY2FjaGVkID8/PSByZXNvbHZlUmVkYWN0b3Ioc291cmNlKVxuICAgIHJldHVybiBjYWNoZWRcbiAgfVxufVxuXG5jb25zdCB3aXRoQ2FsbEdyb3VwID0gPFQ+KFxuICByZWRhY3RvcjogTmV1cmFsUmVkYWN0b3IsXG4gIGJvZHk6IChncm91cD86IHN0cmluZykgPT4gUHJvbWlzZTxUPlxuKTogUHJvbWlzZTxUPiA9PiB7XG4gIGlmIChyZWRhY3Rvci53aXRoQ2FsbEdyb3VwID09PSB1bmRlZmluZWQpIHtcbiAgICByZXR1cm4gYm9keSgpXG4gIH1cbiAgcmV0dXJuIHJlZGFjdG9yLndpdGhDYWxsR3JvdXAoZ3JvdXAgPT4gYm9keShncm91cCkpXG59XG5cbmNvbnN0IHJlZGFjdFRleHQgPSBhc3luYyAoXG4gIHRleHQ6IHN0cmluZyxcbiAgeyBjYWxsT3B0aW9ucywgcmVkYWN0b3IgfTogV2Fsa0NvbnRleHRcbik6IFByb21pc2U8c3RyaW5nPiA9PiB7XG4gIGlmICh0ZXh0Lmxlbmd0aCA9PT0gMCkge1xuICAgIHJldHVybiB0ZXh0XG4gIH1cbiAgY29uc3QgeyByZWRhY3RlZFRleHQgfSA9IGF3YWl0IHJlZGFjdG9yLnJlZGFjdGlvbih0ZXh0LCBjYWxsT3B0aW9ucylcbiAgcmV0dXJuIHJlZGFjdGVkVGV4dFxufVxuXG5jb25zdCBpc1BsYWluT2JqZWN0ID0gKHZhbHVlOiBvYmplY3QpOiB2YWx1ZSBpcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiA9PiB7XG4gIGNvbnN0IHByb3RvID0gT2JqZWN0LmdldFByb3RvdHlwZU9mKHZhbHVlKSBhcyBvYmplY3QgfCBudWxsXG4gIHJldHVybiBwcm90byA9PT0gT2JqZWN0LnByb3RvdHlwZSB8fCBwcm90byA9PT0gbnVsbFxufVxuXG4vKipcbiAqIE11dHVhbGx5IHJlY3Vyc2l2ZS4gT25lIG9iamVjdCBsZXRzIGVhY2ggd2Fsa2VyIHJlYWNoIHRoZSBvdGhlcnMgYnlcbiAqIHByb3BlcnR5IGluc3RlYWQgb2YgYnkgYSBiaW5kaW5nIGRlY2xhcmVkIGxhdGVyIGluIHRoZSBmaWxlLlxuICovXG5jb25zdCB3YWxrZXIgPSB7XG4gIGVudHJpZXM6IGFzeW5jIChcbiAgICByZWNvcmQ6IFJlY29yZDxzdHJpbmcsIHVua25vd24+LFxuICAgIGNvbnRleHQ6IFdhbGtDb250ZXh0LFxuICAgIGRlcHRoOiBudW1iZXJcbiAgKTogUHJvbWlzZTxSZWNvcmQ8c3RyaW5nLCB1bmtub3duPj4gPT4ge1xuICAgIGNvbnN0IGVudHJpZXMgPSBhd2FpdCBQcm9taXNlLmFsbChcbiAgICAgIE9iamVjdC5lbnRyaWVzKHJlY29yZCkubWFwKFxuICAgICAgICBhc3luYyAoW2tleSwgdmFsdWVdKSA9PlxuICAgICAgICAgIFtrZXksIGF3YWl0IHdhbGtlci52YWx1ZSh2YWx1ZSwgY29udGV4dCwgZGVwdGggKyAxKV0gYXMgY29uc3RcbiAgICAgIClcbiAgICApXG4gICAgcmV0dXJuIE9iamVjdC5mcm9tRW50cmllcyhlbnRyaWVzKVxuICB9LFxuXG4gIC8qKlxuICAgKiBFcnJvcnMgYXJlIHJlYnVpbHQgcmF0aGVyIHRoYW4gbXV0YXRlZDogdGhlIG1lc3NhZ2UgYW5kIHN0YWNrIG9mIGEgZmFpbGVkXG4gICAqIHJlcXVlc3QgYXJlIGV4YWN0bHkgd2hlcmUgZnJlZS10ZXh0IFBJSSAoXCJ1c2VyIEFubmEgTcO8bGxlciBub3QgZm91bmRcIikgdGVuZHNcbiAgICogdG8gc3VyZmFjZSwgYW5kIHRoZSBvcmlnaW5hbCBpbnN0YW5jZSBtdXN0IHN0YXkgdW50b3VjaGVkIGZvciB0aGUgcmVzdCBvZlxuICAgKiB0aGUgcGlwZWxpbmUuXG4gICAqL1xuICBlcnJvcjogYXN5bmMgKFxuICAgIG9yaWdpbmFsOiBFcnJvcixcbiAgICBjb250ZXh0OiBXYWxrQ29udGV4dCxcbiAgICBkZXB0aDogbnVtYmVyXG4gICk6IFByb21pc2U8RXJyb3I+ID0+IHtcbiAgICBjb25zdCBjbG9uZSA9IE9iamVjdC5jcmVhdGUoXG4gICAgICBPYmplY3QuZ2V0UHJvdG90eXBlT2Yob3JpZ2luYWwpIGFzIG9iamVjdFxuICAgICkgYXMgRXJyb3IgJiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPlxuICAgIGNsb25lLm5hbWUgPSBvcmlnaW5hbC5uYW1lXG4gICAgY2xvbmUubWVzc2FnZSA9IGF3YWl0IHJlZGFjdFRleHQob3JpZ2luYWwubWVzc2FnZSwgY29udGV4dClcbiAgICBpZiAob3JpZ2luYWwuc3RhY2sgIT09IHVuZGVmaW5lZCkge1xuICAgICAgY2xvbmUuc3RhY2sgPSBhd2FpdCByZWRhY3RUZXh0KG9yaWdpbmFsLnN0YWNrLCBjb250ZXh0KVxuICAgIH1cblxuICAgIGNvbnN0IHJlY29yZCA9IG9yaWdpbmFsIGFzIHVua25vd24gYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj5cbiAgICBjb25zdCBvd25LZXlzID0gT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMob3JpZ2luYWwpLmZpbHRlcihcbiAgICAgIGtleSA9PiBrZXkgIT09ICdtZXNzYWdlJyAmJiBrZXkgIT09ICduYW1lJyAmJiBrZXkgIT09ICdzdGFjaydcbiAgICApXG4gICAgY29uc3QgdmFsdWVzID0gYXdhaXQgUHJvbWlzZS5hbGwoXG4gICAgICBvd25LZXlzLm1hcChrZXkgPT4gd2Fsa2VyLnZhbHVlKHJlY29yZFtrZXldLCBjb250ZXh0LCBkZXB0aCArIDEpKVxuICAgIClcbiAgICBmb3IgKGNvbnN0IFtpbmRleCwga2V5XSBvZiBvd25LZXlzLmVudHJpZXMoKSkge1xuICAgICAgY2xvbmVba2V5XSA9IHZhbHVlc1tpbmRleF1cbiAgICB9XG4gICAgcmV0dXJuIGNsb25lXG4gIH0sXG5cbiAgb2JqZWN0OiBhc3luYyAoXG4gICAgdmFsdWU6IG9iamVjdCxcbiAgICBjb250ZXh0OiBXYWxrQ29udGV4dCxcbiAgICBkZXB0aDogbnVtYmVyXG4gICk6IFByb21pc2U8dW5rbm93bj4gPT4ge1xuICAgIGlmIChjb250ZXh0LnNlZW4uaGFzKHZhbHVlKSkge1xuICAgICAgcmV0dXJuIENJUkNVTEFSX1JFRlxuICAgIH1cblxuICAgIGNvbnN0IGNoaWxkQ29udGV4dDogV2Fsa0NvbnRleHQgPSB7XG4gICAgICAuLi5jb250ZXh0LFxuICAgICAgc2VlbjogbmV3IFNldChjb250ZXh0LnNlZW4pLmFkZCh2YWx1ZSlcbiAgICB9XG4gICAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgICByZXR1cm4gYXdhaXQgUHJvbWlzZS5hbGwoXG4gICAgICAgIHZhbHVlLm1hcChpdGVtID0+IHdhbGtlci52YWx1ZShpdGVtLCBjaGlsZENvbnRleHQsIGRlcHRoICsgMSkpXG4gICAgICApXG4gICAgfVxuICAgIGlmICh2YWx1ZSBpbnN0YW5jZW9mIEVycm9yKSB7XG4gICAgICByZXR1cm4gYXdhaXQgd2Fsa2VyLmVycm9yKHZhbHVlLCBjaGlsZENvbnRleHQsIGRlcHRoKVxuICAgIH1cbiAgICBpZiAoaXNQbGFpbk9iamVjdCh2YWx1ZSkpIHtcbiAgICAgIHJldHVybiBhd2FpdCB3YWxrZXIuZW50cmllcyh2YWx1ZSwgY2hpbGRDb250ZXh0LCBkZXB0aClcbiAgICB9XG4gICAgLy8gRGF0ZXMsIE1hcHMsIGNsYXNzIGluc3RhbmNlcyBhbmQgdGhlIGxpa2U6IG5vIHNhZmUgZ2VuZXJpYyB3YXkgdG8gcmVidWlsZFxuICAgIC8vIHRoZW0sIHNvIHRoZXkgcGFzcyB0aHJvdWdoLiBGbGF0dGVuIGFueXRoaW5nIHRoYXQgY2FuIGNhcnJ5IGZyZWUtdGV4dCBQSUlcbiAgICAvLyBpbnRvIHBsYWluIGZpZWxkcyBiZWZvcmUgaXQgcmVhY2hlcyB0aGUgdHJhbnNwb3J0LlxuICAgIHJldHVybiB2YWx1ZVxuICB9LFxuXG4gIHZhbHVlOiAoXG4gICAgdmFsdWU6IHVua25vd24sXG4gICAgY29udGV4dDogV2Fsa0NvbnRleHQsXG4gICAgZGVwdGg6IG51bWJlclxuICApOiBQcm9taXNlPHVua25vd24+ID0+IHtcbiAgICBpZiAodHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJykge1xuICAgICAgcmV0dXJuIHJlZGFjdFRleHQodmFsdWUsIGNvbnRleHQpXG4gICAgfVxuICAgIGlmICh2YWx1ZSA9PT0gbnVsbCB8fCB0eXBlb2YgdmFsdWUgIT09ICdvYmplY3QnKSB7XG4gICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHZhbHVlKVxuICAgIH1cbiAgICBpZiAoZGVwdGggPj0gY29udGV4dC5tYXhEZXB0aCkge1xuICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSh2YWx1ZSlcbiAgICB9XG4gICAgcmV0dXJuIHdhbGtlci5vYmplY3QodmFsdWUsIGNvbnRleHQsIGRlcHRoKVxuICB9XG59XG5cbmludGVyZmFjZSBRdWV1ZSB7XG4gIGRyYWluOiAoKSA9PiBQcm9taXNlPHZvaWQ+XG4gIHB1c2g6ICh0YXNrOiAoKSA9PiBQcm9taXNlPHZvaWQ+KSA9PiBib29sZWFuXG59XG5cbi8qKlxuICogU2VyaWFsaXplcyByZWRhY3Rpb24uIE9uZSBtb2RlbCBpbnN0YW5jZSBob2xkcyBvbmUgbmF0aXZlIGhhbmRsZSwgYW5kIHRoZVxuICogY29uc29sZSBoYXMgYWxyZWFkeSBwcmludGVkIHRoZXNlIHJlY29yZHMgaW4gb3JkZXIsIHNvIHRoZSB0cmFuc3BvcnQgc2hvdWxkXG4gKiByZWNlaXZlIHRoZW0gaW4gb3JkZXIgdG9vIHJhdGhlciB0aGFuIGluIHdoYXRldmVyIG9yZGVyIGluZmVyZW5jZSBmaW5pc2hlcy5cbiAqL1xuY29uc3QgY3JlYXRlUXVldWUgPSAobWF4UXVldWU6IG51bWJlcik6IFF1ZXVlID0+IHtcbiAgbGV0IHRhaWw6IFByb21pc2U8dm9pZD4gPSBQcm9taXNlLnJlc29sdmUoKVxuICBsZXQgcGVuZGluZyA9IDBcblxuICAvLyBMaWtlIGBwcmlvci50aGVuKHRhc2spYDogYSByZWplY3RlZCBgcHJpb3JgIHNraXBzIGB0YXNrYC5cbiAgY29uc3QgcnVuQWZ0ZXIgPSBhc3luYyAoXG4gICAgcHJpb3I6IFByb21pc2U8dm9pZD4sXG4gICAgdGFzazogKCkgPT4gUHJvbWlzZTx2b2lkPlxuICApOiBQcm9taXNlPHZvaWQ+ID0+IHtcbiAgICB0cnkge1xuICAgICAgYXdhaXQgcHJpb3JcbiAgICAgIGF3YWl0IHRhc2soKVxuICAgIH0gZmluYWxseSB7XG4gICAgICBwZW5kaW5nIC09IDFcbiAgICB9XG4gIH1cblxuICByZXR1cm4ge1xuICAgIGRyYWluOiAoKSA9PiB0YWlsLFxuICAgIHB1c2g6ICh0YXNrOiAoKSA9PiBQcm9taXNlPHZvaWQ+KTogYm9vbGVhbiA9PiB7XG4gICAgICBpZiAocGVuZGluZyA+PSBtYXhRdWV1ZSkge1xuICAgICAgICByZXR1cm4gZmFsc2VcbiAgICAgIH1cbiAgICAgIHBlbmRpbmcgKz0gMVxuICAgICAgdGFpbCA9IHJ1bkFmdGVyKHRhaWwsIHRhc2spXG4gICAgICByZXR1cm4gdHJ1ZVxuICAgIH1cbiAgfVxufVxuXG5jb25zdCBxdWV1ZUZ1bGxFcnJvciA9IChtYXhRdWV1ZTogbnVtYmVyKTogRXJyb3IgPT5cbiAgbmV3IEVycm9yKFxuICAgIGBbbG9naXhseXNpYV0gZGVzZXJ0YW50OiAke21heFF1ZXVlfSByZWNvcmRzIGFscmVhZHkgYXdhaXRpbmcgcmVkYWN0aW9uOyByZWNvcmQgZHJvcHBlZGBcbiAgKVxuXG4vKipcbiAqIFdyYXBzIGEgdHJhbnNwb3J0IHNvIGV2ZXJ5IHJlY29yZCBpcyBwYXNzZWQgdGhyb3VnaCBhIFBJSSBtb2RlbCBiZWZvcmUgaXQgaXNcbiAqIGRlbGl2ZXJlZC4gUmVkYWN0aW9uIHJ1bnMgb2ZmIHRoZSByZXF1ZXN0IHBhdGgg4oCUIHtAbGluayBUcmFuc3BvcnQubG9nfVxuICogcmV0dXJucyBpbW1lZGlhdGVseSBhbmQgdGhlIHJlY29yZCBpcyBkZWxpdmVyZWQgb25jZSB0aGUgbW9kZWwgaXMgZG9uZSwgaW5cbiAqIHRoZSBvcmRlciBpdCB3YXMgbG9nZ2VkLlxuICpcbiAqIFRoZSB3cmFwcGVyIGZhaWxzIGNsb3NlZCBieSBkZWZhdWx0OiBhIHJlY29yZCB0aGUgbW9kZWwgY291bGQgbm90IHByb2Nlc3MgaXNcbiAqIGRyb3BwZWQgYW5kIHJlcG9ydGVkIHRocm91Z2ggYG9uRXJyb3JgLCBuZXZlciBmb3J3YXJkZWQgdW5yZWRhY3RlZC5cbiAqXG4gKiBAcGFyYW0gdHJhbnNwb3J0IFRoZSB0cmFuc3BvcnQgdG8gcHJvdGVjdC4gSXRzIGBmbHVzaGAsIGlmIGFueSwgaXMgcHJlc2VydmVkLlxuICogQHBhcmFtIHNvdXJjZSBUaGUgbW9kZWwsIGEgcHJvbWlzZSBmb3IgaXQsIG9yIGEgbG9hZGVyIHJ1biBvbiB0aGUgZmlyc3QgcmVjb3JkLlxuICovXG5leHBvcnQgY29uc3Qgd2l0aFJlZGFjdGlvbiA9IChcbiAgdHJhbnNwb3J0OiBUcmFuc3BvcnQsXG4gIHNvdXJjZTogTmV1cmFsUmVkYWN0b3JTb3VyY2UsXG4gIG9wdGlvbnM6IE5ldXJhbFJlZGFjdGlvbk9wdGlvbnMgPSB7fVxuKTogUmVkYWN0aW5nVHJhbnNwb3J0ID0+IHtcbiAgY29uc3Qge1xuICAgIGluY2x1ZGVNZXRhID0gdHJ1ZSxcbiAgICBsYWJlbHMsXG4gICAgbWF4RGVwdGggPSBERUZBVUxUX01BWF9ERVBUSCxcbiAgICBtYXhRdWV1ZSA9IERFRkFVTFRfTUFYX1FVRVVFLFxuICAgIG1pbmltdW1Db25maWRlbmNlLFxuICAgIG9uRXJyb3IsXG4gICAgb25GYWlsdXJlID0gJ2Ryb3AnXG4gIH0gPSBvcHRpb25zXG5cbiAgY29uc3QgZ2V0UmVkYWN0b3IgPSBtZW1vaXplUmVkYWN0b3Ioc291cmNlKVxuICBjb25zdCBxdWV1ZSA9IGNyZWF0ZVF1ZXVlKG1heFF1ZXVlKVxuXG4gIGNvbnN0IHJlcG9ydCA9IChlcnJvcjogdW5rbm93bik6IHZvaWQgPT4ge1xuICAgIGlmIChvbkVycm9yID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHJldHVyblxuICAgIH1cbiAgICB0cnkge1xuICAgICAgb25FcnJvcihlcnJvcilcbiAgICB9IGNhdGNoIHtcbiAgICAgIC8vIEEgcmVwb3J0aW5nIGhvb2sgdGhhdCB0aHJvd3MgbXVzdCBub3QgdGFrZSB0aGUgbG9nIHBpcGVsaW5lIHdpdGggaXQuXG4gICAgfVxuICB9XG5cbiAgY29uc3QgZGVsaXZlciA9IGFzeW5jIChcbiAgICBsZXZlbDogTG9nTGV2ZWwsXG4gICAgbWVzc2FnZTogc3RyaW5nLFxuICAgIG1ldGE/OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPlxuICApOiBQcm9taXNlPHZvaWQ+ID0+IHtcbiAgICBhd2FpdCB0cmFuc3BvcnQubG9nKGxldmVsLCBtZXNzYWdlLCBtZXRhKVxuICB9XG5cbiAgY29uc3QgcmVkYWN0UmVjb3JkID0gYXN5bmMgKFxuICAgIHJlZGFjdG9yOiBOZXVyYWxSZWRhY3RvcixcbiAgICBtZXNzYWdlOiBzdHJpbmcsXG4gICAgbWV0YTogUmVjb3JkPHN0cmluZywgdW5rbm93bj4gfCB1bmRlZmluZWQsXG4gICAgZ3JvdXA/OiBzdHJpbmdcbiAgKTogUHJvbWlzZTx7IG1lc3NhZ2U6IHN0cmluZzsgbWV0YT86IFJlY29yZDxzdHJpbmcsIHVua25vd24+IH0+ID0+IHtcbiAgICBjb25zdCBjb250ZXh0OiBXYWxrQ29udGV4dCA9IHtcbiAgICAgIGNhbGxPcHRpb25zOiB7IGdyb3VwLCBsYWJlbHMsIG1pbmltdW1Db25maWRlbmNlIH0sXG4gICAgICBtYXhEZXB0aCxcbiAgICAgIHJlZGFjdG9yLFxuICAgICAgc2VlbjogbmV3IFNldChtZXRhID09PSB1bmRlZmluZWQgPyBbXSA6IFttZXRhXSlcbiAgICB9XG4gICAgcmV0dXJuIHtcbiAgICAgIG1lc3NhZ2U6IGF3YWl0IHJlZGFjdFRleHQobWVzc2FnZSwgY29udGV4dCksXG4gICAgICBtZXRhOlxuICAgICAgICBpbmNsdWRlTWV0YSAmJiBtZXRhICE9PSB1bmRlZmluZWRcbiAgICAgICAgICA/IGF3YWl0IHdhbGtlci5lbnRyaWVzKG1ldGEsIGNvbnRleHQsIDApXG4gICAgICAgICAgOiBtZXRhXG4gICAgfVxuICB9XG5cbiAgY29uc3QgbG9nID0gKFxuICAgIGxldmVsOiBMb2dMZXZlbCxcbiAgICBtZXNzYWdlOiBzdHJpbmcsXG4gICAgbWV0YT86IFJlY29yZDxzdHJpbmcsIHVua25vd24+XG4gICk6IHZvaWQgPT4ge1xuICAgIGNvbnN0IGFjY2VwdGVkID0gcXVldWUucHVzaChhc3luYyAoKSA9PiB7XG4gICAgICBsZXQgcmVkYWN0ZWQ6IHsgbWVzc2FnZTogc3RyaW5nOyBtZXRhPzogUmVjb3JkPHN0cmluZywgdW5rbm93bj4gfVxuICAgICAgdHJ5IHtcbiAgICAgICAgY29uc3QgcmVkYWN0b3IgPSBhd2FpdCBnZXRSZWRhY3RvcigpXG4gICAgICAgIHJlZGFjdGVkID0gYXdhaXQgd2l0aENhbGxHcm91cChyZWRhY3RvciwgZ3JvdXAgPT5cbiAgICAgICAgICByZWRhY3RSZWNvcmQocmVkYWN0b3IsIG1lc3NhZ2UsIG1ldGEsIGdyb3VwKVxuICAgICAgICApXG4gICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICByZXBvcnQoZXJyb3IpXG4gICAgICAgIGlmIChvbkZhaWx1cmUgPT09ICdmb3J3YXJkJykge1xuICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICBhd2FpdCBkZWxpdmVyKGxldmVsLCBtZXNzYWdlLCBtZXRhKVxuICAgICAgICAgIH0gY2F0Y2ggKGRlbGl2ZXJ5RXJyb3IpIHtcbiAgICAgICAgICAgIHJlcG9ydChkZWxpdmVyeUVycm9yKVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm5cbiAgICAgIH1cblxuICAgICAgdHJ5IHtcbiAgICAgICAgYXdhaXQgZGVsaXZlcihsZXZlbCwgcmVkYWN0ZWQubWVzc2FnZSwgcmVkYWN0ZWQubWV0YSlcbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIHJlcG9ydChlcnJvcilcbiAgICAgIH1cbiAgICB9KVxuXG4gICAgaWYgKCFhY2NlcHRlZCkge1xuICAgICAgcmVwb3J0KHF1ZXVlRnVsbEVycm9yKG1heFF1ZXVlKSlcbiAgICB9XG4gIH1cblxuICByZXR1cm4ge1xuICAgIGZsdXNoOiBhc3luYyAoKSA9PiB7XG4gICAgICBhd2FpdCBxdWV1ZS5kcmFpbigpXG4gICAgICBhd2FpdCAodHJhbnNwb3J0IGFzIFBhcnRpYWw8QWRhcHRlclRyYW5zcG9ydD4pLmZsdXNoPy4oKVxuICAgIH0sXG4gICAgbG9nXG4gIH1cbn1cbiIKICBdLAogICJtYXBwaW5ncyI6ICJBQTZIQSxJQUFNLEVBQWtCLENBQ3RCLElBRUEsUUFBUSxRQUFRLE9BQU8sSUFBVyxXQUFhLEVBQU8sRUFBSSxDQUFNLEVBTzVELEVBQWtCLENBQ3RCLElBQ29DLENBQ3BDLElBQUksRUFDSixNQUFPLElBQU0sQ0FFWCxPQURBLElBQVcsRUFBZ0IsQ0FBTSxFQUMxQixJQUlMLEVBQWdCLENBQ3BCLEVBQ0EsSUFDZSxDQUNmLEdBQUksRUFBUyxnQkFBa0IsT0FDN0IsT0FBTyxFQUFLLEVBRWQsT0FBTyxFQUFTLGNBQWMsS0FBUyxFQUFLLENBQUssQ0FBQyxHQUc5QyxFQUFhLE1BQ2pCLEdBQ0UsY0FBYSxjQUNLLENBQ3BCLEdBQUksRUFBSyxTQUFXLEVBQ2xCLE9BQU8sRUFFVCxJQUFRLGdCQUFpQixNQUFNLEVBQVMsVUFBVSxFQUFNLENBQVcsRUFDbkUsT0FBTyxHQUdILEVBQWdCLENBQUMsSUFBb0QsQ0FDekUsSUFBTSxFQUFRLE9BQU8sZUFBZSxDQUFLLEVBQ3pDLE9BQU8sSUFBVSxPQUFPLFdBQWEsSUFBVSxNQU8zQyxFQUFTLENBQ2IsUUFBUyxNQUNQLEVBQ0EsRUFDQSxJQUNxQyxDQUNyQyxJQUFNLEVBQVUsTUFBTSxRQUFRLElBQzVCLE9BQU8sUUFBUSxDQUFNLEVBQUUsSUFDckIsT0FBUSxFQUFLLEtBQ1gsQ0FBQyxFQUFLLE1BQU0sRUFBTyxNQUFNLEVBQU8sRUFBUyxFQUFRLENBQUMsQ0FBQyxDQUN2RCxDQUNGLEVBQ0EsT0FBTyxPQUFPLFlBQVksQ0FBTyxHQVNuQyxNQUFPLE1BQ0wsRUFDQSxFQUNB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QU8sQ0FDTCxRQUFTLE1BQU0sRUFBVyxFQUFTLENBQU8sRUFDMUMsS0FDRSxHQUFlLElBQVMsT0FDcEIsTUFBTSxFQUFPLFFBQVEsRUFBTSxFQUFTLENBQUMsRUFDckMsQ0FDUixHQXVDRixNQUFPLENBQ0wsTUFBTyxTQUFZLENBQ2pCLE1BQU0sRUFBTSxNQUFNLEVBQ2xCLE1BQU8sRUFBd0MsUUFBUSxHQUV6RCxJQXpDVSxDQUNWLEVBQ0EsRUFDQSxJQUNTLENBMkJULEdBQUksQ0ExQmEsRUFBTSxLQUFLLFNBQVksQ0FDdEMsSUFBSSxFQUNKLEdBQUksQ0FDRixJQUFNLEVBQVcsTUFBTSxFQUFZLEVBQ25DLEVBQVcsTUFBTSxFQUFjLEVBQVUsS0FDdkMsRUFBYSxFQUFVLEVBQVMsRUFBTSxDQUFLLENBQzdDLEVBQ0EsTUFBTyxFQUFPLENBRWQsR0FEQSxFQUFPLENBQUssRUFDUixJQUFjLFVBQ2hCLEdBQUksQ0FDRixNQUFNLEVBQVEsRUFBTyxFQUFTLENBQUksRUFDbEMsTUFBTyxFQUFlLENBQ3RCLEVBQU8sQ0FBYSxFQUd4QixPQUdGLEdBQUksQ0FDRixNQUFNLEVBQVEsRUFBTyxFQUFTLFFBQVMsRUFBUyxJQUFJLEVBQ3BELE1BQU8sRUFBTyxDQUNkLEVBQU8sQ0FBSyxHQUVmLEVBR0MsRUFBTyxFQUFlLENBQVEsQ0FBQyxFQVVuQyIsCiAgImRlYnVnSWQiOiAiQTZBMkFEMEU1QUM4NzVFOTY0NzU2RTIxNjQ3NTZFMjEiLAogICJuYW1lcyI6IFtdCn0=
package/dist/enrichers.js CHANGED
@@ -1,4 +1,4 @@
1
- var H=/^([\da-f]{2})-([\da-f]{32})-([\da-f]{16})-([\da-f]{2})(?:-.+)?$/,L="0".repeat(32),T="0".repeat(16);var c=(j={})=>{let J=j.header??"traceparent";return{request(Q){let K=Q.headers.get(J);if(!K)return;let $=K.trim(),U=H.exec($);if(!U)return;let[,W,V,z,Z]=U;if(W==="ff"||V===L||z===T||W==="00"&&$.length!==55)return;let x={span_id:z,trace_flags:Z,trace_id:V,trace_sampled:Number.parseInt(Z,16)%2===1};if(j.tracestate){let F=Q.headers.get("tracestate");if(F)x.tracestate=F.slice(0,512)}return x}}},B=/bot|crawl|spider|slurp|facebookexternalhit|preview|headless/i,C=/ipad|tablet|playbook|silk|kindle/i,N=/mobi|iphone|ipod|windows phone/i,A=/android.*mobile/i,S=[["Edge",/edg(?:a|ios)?\/([\d.]+)/i],["Opera",/(?:opr|opios|opera)\/([\d.]+)/i],["Samsung Internet",/samsungbrowser\/([\d.]+)/i],["Firefox",/(?:firefox|fxios)\/([\d.]+)/i],["Chrome",/(?:chrome|crios)\/([\d.]+)/i],["Safari",/version\/([\d.]+).*safari/i]],w=[["iOS",/iphone|ipad|ipod/i],["Android",/android/i],["ChromeOS",/cros/i],["Windows",/windows nt/i],["macOS",/mac os x/i],["Linux",/linux/i]],P=(j,J)=>{for(let[Q,K]of j){let $=K.exec(J);if($)return{name:Q,version:$[1]}}},D=(j,J)=>{if(J)return"bot";if(C.test(j))return"tablet";if(N.test(j)||A.test(j))return"mobile";return"desktop"},m=()=>({request(j){let J=j.headers.get("user-agent");if(!J)return;let Q=B.test(J),K=P(S,J),$=P(w,J);return{ua:{bot:Q,...K?{browser:K.name}:{},...K?.version?{browserVersion:K.version}:{},device:D(J,Q),...$?{os:$.name}:{}}}}}),G=[["city",["x-vercel-ip-city","cf-ipcity"]],["country",["x-vercel-ip-country","cf-ipcountry"]],["region",["x-vercel-ip-country-region","cf-region-code","cf-region"]],["timezone",["x-vercel-ip-timezone","cf-timezone"]]],b=[["latitude",["x-vercel-ip-latitude","cf-iplatitude"],[-90,90]],["longitude",["x-vercel-ip-longitude","cf-iplongitude"],[-180,180]]];var Y=/^[A-Za-z0-9-]{1,10}$/,M=(j,J)=>{for(let Q of J){let K=j.headers.get(Q);if(K)return K}},y=(j)=>{try{return decodeURIComponent(j).slice(0,128)}catch{return j.slice(0,128)}},k=(j,J,Q)=>j>=J&&j<=Q,I=(j)=>{let J=j.headers.get("x-nf-geo");if(!J||J.length>2048)return;let Q;try{Q=JSON.parse(atob(J))}catch{return}if(Q===null||typeof Q!=="object")return;let K=Q,$={};if(K.city)$.city=K.city.slice(0,128);if(K.country?.code&&Y.test(K.country.code))$.country=K.country.code;if(K.subdivision?.code&&Y.test(K.subdivision.code))$.region=K.subdivision.code;if(K.timezone)$.timezone=K.timezone.slice(0,128);if(typeof K.latitude==="number"&&k(K.latitude,-90,90))$.latitude=K.latitude;if(typeof K.longitude==="number"&&k(K.longitude,-180,180))$.longitude=K.longitude;return Object.keys($).length>0?$:void 0},f=new Set(["country","region"]),_=(j,J)=>{for(let[Q,K]of G){let $=M(j,K);if(!$)continue;let U=y($);if(!f.has(Q)||Y.test(U))J[Q]=U}},O=(j,J)=>{for(let[Q,K,[$,U]]of b){let W=M(j,K),V=W===void 0?Number.NaN:Number(W);if(Number.isFinite(V)&&k(V,$,U))J[Q]=V}},q=()=>({request(j){let J={};if(_(j,J),O(j,J),Object.keys(J).length>0)return{geo:J};let Q=I(j);return Q?{geo:Q}:void 0}}),X=(j)=>{if(typeof j==="number"&&Number.isFinite(j)&&j>=0)return j;if(typeof j!=="string"||j.length===0)return;let J=Number(j);return Number.isFinite(J)&&J>=0?J:void 0},R=(j,J)=>{for(let[Q,K]of Object.entries(j))if(Q.toLowerCase()===J)return K},p=()=>({request(j){let J=X(j.headers.get("content-length"));return J===void 0?void 0:{requestBytes:J}},response(j){let J=X(R(j.headers,"content-length"));return J===void 0?void 0:{responseBytes:J}}});export{m as userAgentEnricher,c as traceparentEnricher,p as sizeEnricher,q as geoEnricher};
1
+ var H=/^(?<version>[\da-f]{2})-(?<traceId>[\da-f]{32})-(?<spanId>[\da-f]{16})-(?<flags>[\da-f]{2})(?:-.+)?$/u,L="0".repeat(32),T="0".repeat(16);var c=(j={})=>{let J=j.header??"traceparent";return{request(Q){let K=Q.headers.get(J);if(!K)return;let $=K.trim(),U=H.exec($);if(!U)return;let[,W,V,z,Z]=U;if(W==="ff"||V===L||z===T||W==="00"&&$.length!==55)return;let x={span_id:z,trace_flags:Z,trace_id:V,trace_sampled:Number.parseInt(Z,16)%2===1};if(j.tracestate){let F=Q.headers.get("tracestate");if(F)x.tracestate=F.slice(0,512)}return x}}},B=/bot|crawl|spider|slurp|facebookexternalhit|preview|headless/iu,C=/ipad|tablet|playbook|silk|kindle/iu,N=/mobi|iphone|ipod|windows phone/iu,A=/android.*mobile/iu,S=[["Edge",/edg(?:a|ios)?\/(?<version>[\d.]+)/iu],["Opera",/(?:opr|opios|opera)\/(?<version>[\d.]+)/iu],["Samsung Internet",/samsungbrowser\/(?<version>[\d.]+)/iu],["Firefox",/(?:firefox|fxios)\/(?<version>[\d.]+)/iu],["Chrome",/(?:chrome|crios)\/(?<version>[\d.]+)/iu],["Safari",/version\/(?<version>[\d.]+).*safari/iu]],w=[["iOS",/iphone|ipad|ipod/iu],["Android",/android/iu],["ChromeOS",/cros/iu],["Windows",/windows nt/iu],["macOS",/mac os x/iu],["Linux",/linux/iu]],P=(j,J)=>{for(let[Q,K]of j){let $=K.exec(J);if($)return{name:Q,version:$[1]}}},D=(j,J)=>{if(J)return"bot";if(C.test(j))return"tablet";if(N.test(j)||A.test(j))return"mobile";return"desktop"},m=()=>({request(j){let J=j.headers.get("user-agent");if(!J)return;let Q=B.test(J),K=P(S,J),$=P(w,J);return{ua:{bot:Q,...K?{browser:K.name}:{},...K?.version?{browserVersion:K.version}:{},device:D(J,Q),...$?{os:$.name}:{}}}}}),G=[["city",["x-vercel-ip-city","cf-ipcity"]],["country",["x-vercel-ip-country","cf-ipcountry"]],["region",["x-vercel-ip-country-region","cf-region-code","cf-region"]],["timezone",["x-vercel-ip-timezone","cf-timezone"]]],b=[["latitude",["x-vercel-ip-latitude","cf-iplatitude"],[-90,90]],["longitude",["x-vercel-ip-longitude","cf-iplongitude"],[-180,180]]];var Y=/^[A-Za-z0-9-]{1,10}$/u,M=(j,J)=>{for(let Q of J){let K=j.headers.get(Q);if(K)return K}},y=(j)=>{try{return decodeURIComponent(j).slice(0,128)}catch{return j.slice(0,128)}},k=(j,J,Q)=>j>=J&&j<=Q,I=(j)=>{let J=j.headers.get("x-nf-geo");if(!J||J.length>2048)return;let Q;try{Q=JSON.parse(atob(J))}catch{return}if(Q===null||typeof Q!=="object")return;let K=Q,$={};if(K.city)$.city=K.city.slice(0,128);if(K.country?.code&&Y.test(K.country.code))$.country=K.country.code;if(K.subdivision?.code&&Y.test(K.subdivision.code))$.region=K.subdivision.code;if(K.timezone)$.timezone=K.timezone.slice(0,128);if(typeof K.latitude==="number"&&k(K.latitude,-90,90))$.latitude=K.latitude;if(typeof K.longitude==="number"&&k(K.longitude,-180,180))$.longitude=K.longitude;return Object.keys($).length>0?$:void 0},f=new Set(["country","region"]),_=(j,J)=>{for(let[Q,K]of G){let $=M(j,K);if(!$)continue;let U=y($);if(!f.has(Q)||Y.test(U))J[Q]=U}},O=(j,J)=>{for(let[Q,K,[$,U]]of b){let W=M(j,K),V=W===void 0?Number.NaN:Number(W);if(Number.isFinite(V)&&k(V,$,U))J[Q]=V}},q=()=>({request(j){let J={};if(_(j,J),O(j,J),Object.keys(J).length>0)return{geo:J};let Q=I(j);return Q?{geo:Q}:void 0}}),X=(j)=>{if(typeof j==="number"&&Number.isFinite(j)&&j>=0)return j;if(typeof j!=="string"||j.length===0)return;let J=Number(j);return Number.isFinite(J)&&J>=0?J:void 0},R=(j,J)=>{for(let[Q,K]of Object.entries(j))if(Q.toLowerCase()===J)return K},p=()=>({request(j){let J=X(j.headers.get("content-length"));return J===void 0?void 0:{requestBytes:J}},response(j){let J=X(R(j.headers,"content-length"));return J===void 0?void 0:{responseBytes:J}}});export{m as userAgentEnricher,c as traceparentEnricher,p as sizeEnricher,q as geoEnricher};
2
2
 
3
- //# debugId=3A6056FDB4A7835D64756E2164756E21
4
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsic3JjL2VucmljaGVycy50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsKICAgICJpbXBvcnQgdHlwZSB7XG4gIEVucmljaGVyLFxuICBFbnJpY2hlckZpZWxkcyxcbiAgRW5yaWNoZXJSZXNwb25zZUlucHV0XG59IGZyb20gJy4vdHlwZXMvZW5yaWNoZXInXG5cbmV4cG9ydCB0eXBlIHtcbiAgRW5yaWNoZXIsXG4gIEVucmljaGVyRmllbGRzLFxuICBFbnJpY2hlckxpa2UsXG4gIEVucmljaGVyUmVzcG9uc2VJbnB1dFxufSBmcm9tICcuL3R5cGVzL2VucmljaGVyJ1xuXG5jb25zdCBIRVhfUkFESVggPSAxNlxuY29uc3QgTUFYX1RSQUNFU1RBVEVfTEVOR1RIID0gNTEyXG5cbi8vIHZlcnNpb24tdHJhY2VfaWQtcGFyZW50X2lkLWZsYWdzLCB3aXRoIGFuIG9wdGlvbmFsIHRhaWwgZm9yIHZlcnNpb25zID4gMDAuXG5jb25zdCBUUkFDRVBBUkVOVCA9XG4gIC9eKFtcXGRhLWZdezJ9KS0oW1xcZGEtZl17MzJ9KS0oW1xcZGEtZl17MTZ9KS0oW1xcZGEtZl17Mn0pKD86LS4rKT8kL1xuY29uc3QgWkVST19UUkFDRV9JRCA9ICcwJy5yZXBlYXQoMzIpXG5jb25zdCBaRVJPX1NQQU5fSUQgPSAnMCcucmVwZWF0KDE2KVxuY29uc3QgSU5WQUxJRF9WRVJTSU9OID0gJ2ZmJ1xuY29uc3QgQ1VSUkVOVF9WRVJTSU9OID0gJzAwJ1xuLyoqIGAwMC1gICsgMzIgKyBgLWAgKyAxNiArIGAtYCArIDI6IHZlcnNpb24gMDAgaXMgZXhhY3RseSB0aGVzZSBmb3VyIGZpZWxkcy4gKi9cbmNvbnN0IFZFUlNJT05fMDBfTEVOR1RIID0gNTVcblxuZXhwb3J0IGludGVyZmFjZSBUcmFjZXBhcmVudEVucmljaGVyT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBIZWFkZXIgdG8gcmVhZCB0aGUgdHJhY2UgY29udGV4dCBmcm9tLlxuICAgKiBAZGVmYXVsdCAndHJhY2VwYXJlbnQnXG4gICAqL1xuICBoZWFkZXI/OiBzdHJpbmdcbiAgLyoqXG4gICAqIEFsc28gcmVjb3JkIHRoZSByYXcgYHRyYWNlc3RhdGVgIGhlYWRlciAodHJ1bmNhdGVkIHRvIDUxMiBjaGFyYWN0ZXJzKS5cbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIHRyYWNlc3RhdGU/OiBib29sZWFuXG59XG5cbi8qKlxuICogUmVhZHMgVzNDIHRyYWNlIGNvbnRleHQgc3RyYWlnaHQgb2ZmIHRoZSByZXF1ZXN0IGhlYWRlcnMsIHNvIGxvZ3MgbGluayB0b1xuICogdHJhY2VzIGluIFNlbnRyeSwgSHlwZXJEWCwgb3IgYW55IE9UTFAgYmFja2VuZCB3aXRob3V0IGFuIE9wZW5UZWxlbWV0cnkgU0RLXG4gKiBpbiB0aGUgcHJvY2Vzcy5cbiAqXG4gKiBVc2UgYGxvZ2l4bHlzaWEvb3RlbGAgaW5zdGVhZCB3aGVuIHlvdSBhbHJlYWR5IHJ1biB0aGUgU0RLIGFuZCB3YW50IHRoZSBpZHNcbiAqIG9mIHRoZSAqYWN0aXZlIHNwYW4qIHJhdGhlciB0aGFuIHRoZSBpZHMgdGhlIGNhbGxlciBwcm9wYWdhdGVkLlxuICpcbiAqIEFkZHMgYHRyYWNlX2lkYCwgYHNwYW5faWRgLCBgdHJhY2VfZmxhZ3NgLCBhbmQgYHRyYWNlX3NhbXBsZWRgLlxuICovXG5leHBvcnQgY29uc3QgdHJhY2VwYXJlbnRFbnJpY2hlciA9IChcbiAgb3B0aW9uczogVHJhY2VwYXJlbnRFbnJpY2hlck9wdGlvbnMgPSB7fVxuKTogRW5yaWNoZXIgPT4ge1xuICBjb25zdCBoZWFkZXIgPSBvcHRpb25zLmhlYWRlciA/PyAndHJhY2VwYXJlbnQnXG5cbiAgcmV0dXJuIHtcbiAgICByZXF1ZXN0KHJlcXVlc3QpIHtcbiAgICAgIGNvbnN0IHJhdyA9IHJlcXVlc3QuaGVhZGVycy5nZXQoaGVhZGVyKVxuICAgICAgaWYgKCFyYXcpIHtcbiAgICAgICAgcmV0dXJuXG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHZhbHVlID0gcmF3LnRyaW0oKVxuICAgICAgY29uc3QgbWF0Y2ggPSBUUkFDRVBBUkVOVC5leGVjKHZhbHVlKVxuICAgICAgaWYgKCFtYXRjaCkge1xuICAgICAgICByZXR1cm5cbiAgICAgIH1cblxuICAgICAgY29uc3QgWywgdmVyc2lvbiwgdHJhY2VJZCwgc3BhbklkLCBmbGFnc10gPSBtYXRjaFxuXG4gICAgICAvLyBgZmZgIGlzIHJlc2VydmVkLCBhbGwtemVybyBpZHMgYXJlIGludmFsaWQsIGFuZCBhIHZlcnNpb24tMDAgaGVhZGVyXG4gICAgICAvLyBjYXJyeWluZyBleHRyYSBmaWVsZHMgaXMgbWFsZm9ybWVkIHJhdGhlciB0aGFuIGZvcndhcmQtY29tcGF0aWJsZS5cbiAgICAgIGlmIChcbiAgICAgICAgdmVyc2lvbiA9PT0gSU5WQUxJRF9WRVJTSU9OIHx8XG4gICAgICAgIHRyYWNlSWQgPT09IFpFUk9fVFJBQ0VfSUQgfHxcbiAgICAgICAgc3BhbklkID09PSBaRVJPX1NQQU5fSUQgfHxcbiAgICAgICAgKHZlcnNpb24gPT09IENVUlJFTlRfVkVSU0lPTiAmJiB2YWx1ZS5sZW5ndGggIT09IFZFUlNJT05fMDBfTEVOR1RIKVxuICAgICAgKSB7XG4gICAgICAgIHJldHVyblxuICAgICAgfVxuXG4gICAgICBjb25zdCBmaWVsZHM6IFJlY29yZDxzdHJpbmcsIHVua25vd24+ID0ge1xuICAgICAgICBzcGFuX2lkOiBzcGFuSWQsXG4gICAgICAgIHRyYWNlX2ZsYWdzOiBmbGFncyxcbiAgICAgICAgdHJhY2VfaWQ6IHRyYWNlSWQsXG4gICAgICAgIC8vIGBzYW1wbGVkYCBpcyB0aGUgbG93IGJpdCBvZiB0aGUgZmxhZ3MgYnl0ZSwgc28gYW4gb2RkIHZhbHVlIGlzIHNldC5cbiAgICAgICAgdHJhY2Vfc2FtcGxlZDogTnVtYmVyLnBhcnNlSW50KGZsYWdzLCBIRVhfUkFESVgpICUgMiA9PT0gMVxuICAgICAgfVxuXG4gICAgICBpZiAob3B0aW9ucy50cmFjZXN0YXRlKSB7XG4gICAgICAgIGNvbnN0IHN0YXRlID0gcmVxdWVzdC5oZWFkZXJzLmdldCgndHJhY2VzdGF0ZScpXG4gICAgICAgIGlmIChzdGF0ZSkge1xuICAgICAgICAgIGZpZWxkcy50cmFjZXN0YXRlID0gc3RhdGUuc2xpY2UoMCwgTUFYX1RSQUNFU1RBVEVfTEVOR1RIKVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBmaWVsZHNcbiAgICB9XG4gIH1cbn1cblxuY29uc3QgQk9UID0gL2JvdHxjcmF3bHxzcGlkZXJ8c2x1cnB8ZmFjZWJvb2tleHRlcm5hbGhpdHxwcmV2aWV3fGhlYWRsZXNzL2lcbmNvbnN0IFRBQkxFVCA9IC9pcGFkfHRhYmxldHxwbGF5Ym9va3xzaWxrfGtpbmRsZS9pXG5jb25zdCBNT0JJTEUgPSAvbW9iaXxpcGhvbmV8aXBvZHx3aW5kb3dzIHBob25lL2lcbmNvbnN0IEFORFJPSURfTU9CSUxFID0gL2FuZHJvaWQuKm1vYmlsZS9pXG5cbi8qKiBGaXJzdCBtYXRjaCB3aW5zLCBzbyBtb3JlIHNwZWNpZmljIGVuZ2luZXMgYXJlIGxpc3RlZCBiZWZvcmUgdGhlaXIgYmFzZS4gKi9cbmNvbnN0IEJST1dTRVJTOiByZWFkb25seSBbbmFtZTogc3RyaW5nLCBwYXR0ZXJuOiBSZWdFeHBdW10gPSBbXG4gIFsnRWRnZScsIC9lZGcoPzphfGlvcyk/XFwvKFtcXGQuXSspL2ldLFxuICBbJ09wZXJhJywgLyg/Om9wcnxvcGlvc3xvcGVyYSlcXC8oW1xcZC5dKykvaV0sXG4gIFsnU2Ftc3VuZyBJbnRlcm5ldCcsIC9zYW1zdW5nYnJvd3NlclxcLyhbXFxkLl0rKS9pXSxcbiAgWydGaXJlZm94JywgLyg/OmZpcmVmb3h8Znhpb3MpXFwvKFtcXGQuXSspL2ldLFxuICBbJ0Nocm9tZScsIC8oPzpjaHJvbWV8Y3Jpb3MpXFwvKFtcXGQuXSspL2ldLFxuICBbJ1NhZmFyaScsIC92ZXJzaW9uXFwvKFtcXGQuXSspLipzYWZhcmkvaV1cbl1cblxuY29uc3QgT1BFUkFUSU5HX1NZU1RFTVM6IHJlYWRvbmx5IFtuYW1lOiBzdHJpbmcsIHBhdHRlcm46IFJlZ0V4cF1bXSA9IFtcbiAgWydpT1MnLCAvaXBob25lfGlwYWR8aXBvZC9pXSxcbiAgWydBbmRyb2lkJywgL2FuZHJvaWQvaV0sXG4gIFsnQ2hyb21lT1MnLCAvY3Jvcy9pXSxcbiAgWydXaW5kb3dzJywgL3dpbmRvd3MgbnQvaV0sXG4gIFsnbWFjT1MnLCAvbWFjIG9zIHgvaV0sXG4gIFsnTGludXgnLCAvbGludXgvaV1cbl1cblxuY29uc3QgbWF0Y2hOYW1lID0gKFxuICBjYW5kaWRhdGVzOiByZWFkb25seSBbc3RyaW5nLCBSZWdFeHBdW10sXG4gIHZhbHVlOiBzdHJpbmdcbik6IHsgbmFtZTogc3RyaW5nOyB2ZXJzaW9uPzogc3RyaW5nIH0gfCB1bmRlZmluZWQgPT4ge1xuICBmb3IgKGNvbnN0IFtuYW1lLCBwYXR0ZXJuXSBvZiBjYW5kaWRhdGVzKSB7XG4gICAgY29uc3QgbWF0Y2ggPSBwYXR0ZXJuLmV4ZWModmFsdWUpXG4gICAgaWYgKG1hdGNoKSB7XG4gICAgICByZXR1cm4geyBuYW1lLCB2ZXJzaW9uOiBtYXRjaFsxXSB9XG4gICAgfVxuICB9XG59XG5cbmNvbnN0IHJlc29sdmVEZXZpY2UgPSAodmFsdWU6IHN0cmluZywgYm90OiBib29sZWFuKTogc3RyaW5nID0+IHtcbiAgaWYgKGJvdCkge1xuICAgIHJldHVybiAnYm90J1xuICB9XG4gIGlmIChUQUJMRVQudGVzdCh2YWx1ZSkpIHtcbiAgICByZXR1cm4gJ3RhYmxldCdcbiAgfVxuICBpZiAoTU9CSUxFLnRlc3QodmFsdWUpIHx8IEFORFJPSURfTU9CSUxFLnRlc3QodmFsdWUpKSB7XG4gICAgcmV0dXJuICdtb2JpbGUnXG4gIH1cbiAgcmV0dXJuICdkZXNrdG9wJ1xufVxuXG4vKipcbiAqIFR1cm5zIHRoZSBgdXNlci1hZ2VudGAgaGVhZGVyIGludG8gcXVlcnlhYmxlIGZpZWxkcyB1bmRlciBgdWFgOiBgYnJvd3NlcmAsXG4gKiBgYnJvd3NlclZlcnNpb25gLCBgb3NgLCBgZGV2aWNlYCAoYGRlc2t0b3BgIHwgYG1vYmlsZWAgfCBgdGFibGV0YCB8IGBib3RgKSxcbiAqIGFuZCBgYm90YC5cbiAqXG4gKiBEZWxpYmVyYXRlbHkgYSBoZXVyaXN0aWMg4oCUIHVzZXIgYWdlbnRzIGFyZSBub3QgYSBwYXJzZWFibGUgZ3JhbW1hci4gSXQgaXNcbiAqIGJ1aWx0IGZvciBncm91cGluZyB0cmFmZmljIGluIGEgZGFzaGJvYXJkLCBub3QgZm9yIG1ha2luZyBhY2Nlc3MgZGVjaXNpb25zLlxuICovXG5leHBvcnQgY29uc3QgdXNlckFnZW50RW5yaWNoZXIgPSAoKTogRW5yaWNoZXIgPT4gKHtcbiAgcmVxdWVzdChyZXF1ZXN0KSB7XG4gICAgY29uc3QgdmFsdWUgPSByZXF1ZXN0LmhlYWRlcnMuZ2V0KCd1c2VyLWFnZW50JylcbiAgICBpZiAoIXZhbHVlKSB7XG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICBjb25zdCBib3QgPSBCT1QudGVzdCh2YWx1ZSlcbiAgICBjb25zdCBicm93c2VyID0gbWF0Y2hOYW1lKEJST1dTRVJTLCB2YWx1ZSlcbiAgICBjb25zdCBvcyA9IG1hdGNoTmFtZShPUEVSQVRJTkdfU1lTVEVNUywgdmFsdWUpXG5cbiAgICByZXR1cm4ge1xuICAgICAgdWE6IHtcbiAgICAgICAgYm90LFxuICAgICAgICAuLi4oYnJvd3NlciA/IHsgYnJvd3NlcjogYnJvd3Nlci5uYW1lIH0gOiB7fSksXG4gICAgICAgIC4uLihicm93c2VyPy52ZXJzaW9uID8geyBicm93c2VyVmVyc2lvbjogYnJvd3Nlci52ZXJzaW9uIH0gOiB7fSksXG4gICAgICAgIGRldmljZTogcmVzb2x2ZURldmljZSh2YWx1ZSwgYm90KSxcbiAgICAgICAgLi4uKG9zID8geyBvczogb3MubmFtZSB9IDoge30pXG4gICAgICB9XG4gICAgfVxuICB9XG59KVxuXG4vKiogSGVhZGVyIGNhbmRpZGF0ZXMgcGVyIGdlbyBmaWVsZCwgaW4gcHJpb3JpdHkgb3JkZXIgYWNyb3NzIHBsYXRmb3Jtcy4gKi9cbmNvbnN0IEdFT19IRUFERVJTOiByZWFkb25seSBbZmllbGQ6IHN0cmluZywgaGVhZGVyczogcmVhZG9ubHkgc3RyaW5nW11dW10gPSBbXG4gIFsnY2l0eScsIFsneC12ZXJjZWwtaXAtY2l0eScsICdjZi1pcGNpdHknXV0sXG4gIFsnY291bnRyeScsIFsneC12ZXJjZWwtaXAtY291bnRyeScsICdjZi1pcGNvdW50cnknXV0sXG4gIFsncmVnaW9uJywgWyd4LXZlcmNlbC1pcC1jb3VudHJ5LXJlZ2lvbicsICdjZi1yZWdpb24tY29kZScsICdjZi1yZWdpb24nXV0sXG4gIFsndGltZXpvbmUnLCBbJ3gtdmVyY2VsLWlwLXRpbWV6b25lJywgJ2NmLXRpbWV6b25lJ11dXG5dXG5cbmNvbnN0IEdFT19OVU1FUklDX0hFQURFUlM6IHJlYWRvbmx5IFtcbiAgZmllbGQ6IHN0cmluZyxcbiAgaGVhZGVyczogcmVhZG9ubHkgc3RyaW5nW10sXG4gIHJhbmdlOiByZWFkb25seSBbbnVtYmVyLCBudW1iZXJdXG5dW10gPSBbXG4gIFsnbGF0aXR1ZGUnLCBbJ3gtdmVyY2VsLWlwLWxhdGl0dWRlJywgJ2NmLWlwbGF0aXR1ZGUnXSwgWy05MCwgOTBdXSxcbiAgWydsb25naXR1ZGUnLCBbJ3gtdmVyY2VsLWlwLWxvbmdpdHVkZScsICdjZi1pcGxvbmdpdHVkZSddLCBbLTE4MCwgMTgwXV1cbl1cblxuY29uc3QgTkVUTElGWV9HRU9fSEVBREVSID0gJ3gtbmYtZ2VvJ1xuY29uc3QgR0VPX1NUUklOR19NQVggPSAxMjhcbmNvbnN0IEdFT19SQVdfSEVBREVSX01BWCA9IDIwNDhcbi8qKiBJU08tMzE2Ni1pc2ggY291bnRyeS9yZWdpb24gY29kZXM6IHNob3J0IGFscGhhbnVtZXJpYyB0b2tlbnMsIG5ldmVyIGZyZWUgdGV4dC4gKi9cbmNvbnN0IEdFT19DT0RFX1JFR0VYID0gL15bQS1aYS16MC05LV17MSwxMH0kL1xuXG5jb25zdCBmaXJzdEhlYWRlciA9IChcbiAgcmVxdWVzdDogUmVxdWVzdCxcbiAgaGVhZGVyczogcmVhZG9ubHkgc3RyaW5nW11cbik6IHN0cmluZyB8IHVuZGVmaW5lZCA9PiB7XG4gIGZvciAoY29uc3QgaGVhZGVyIG9mIGhlYWRlcnMpIHtcbiAgICBjb25zdCB2YWx1ZSA9IHJlcXVlc3QuaGVhZGVycy5nZXQoaGVhZGVyKVxuICAgIGlmICh2YWx1ZSkge1xuICAgICAgcmV0dXJuIHZhbHVlXG4gICAgfVxuICB9XG59XG5cbi8qKiBWZXJjZWwgcGVyY2VudC1lbmNvZGVzIGNpdHkgbmFtZXMsIHNvIGBTJUMzJUEzbyUyMFBhdWxvYCBtdXN0IGJlIGRlY29kZWQuICovXG5jb25zdCBkZWNvZGVIZWFkZXJWYWx1ZSA9ICh2YWx1ZTogc3RyaW5nKTogc3RyaW5nID0+IHtcbiAgdHJ5IHtcbiAgICByZXR1cm4gZGVjb2RlVVJJQ29tcG9uZW50KHZhbHVlKS5zbGljZSgwLCBHRU9fU1RSSU5HX01BWClcbiAgfSBjYXRjaCB7XG4gICAgcmV0dXJuIHZhbHVlLnNsaWNlKDAsIEdFT19TVFJJTkdfTUFYKVxuICB9XG59XG5cbmNvbnN0IGlzSW5SYW5nZSA9ICh2YWx1ZTogbnVtYmVyLCBtaW46IG51bWJlciwgbWF4OiBudW1iZXIpOiBib29sZWFuID0+XG4gIHZhbHVlID49IG1pbiAmJiB2YWx1ZSA8PSBtYXhcblxuaW50ZXJmYWNlIE5ldGxpZnlHZW8ge1xuICBjaXR5Pzogc3RyaW5nXG4gIGNvdW50cnk/OiB7IGNvZGU/OiBzdHJpbmcgfVxuICBsYXRpdHVkZT86IG51bWJlclxuICBsb25naXR1ZGU/OiBudW1iZXJcbiAgc3ViZGl2aXNpb24/OiB7IGNvZGU/OiBzdHJpbmcgfVxuICB0aW1lem9uZT86IHN0cmluZ1xufVxuXG5jb25zdCByZWFkTmV0bGlmeUdlbyA9IChcbiAgcmVxdWVzdDogUmVxdWVzdFxuKTogUmVjb3JkPHN0cmluZywgdW5rbm93bj4gfCB1bmRlZmluZWQgPT4ge1xuICBjb25zdCByYXcgPSByZXF1ZXN0LmhlYWRlcnMuZ2V0KE5FVExJRllfR0VPX0hFQURFUilcbiAgaWYgKCFyYXcgfHwgcmF3Lmxlbmd0aCA+IEdFT19SQVdfSEVBREVSX01BWCkge1xuICAgIHJldHVyblxuICB9XG5cbiAgbGV0IHBhcnNlZDogdW5rbm93blxuICB0cnkge1xuICAgIHBhcnNlZCA9IEpTT04ucGFyc2UoYXRvYihyYXcpKVxuICB9IGNhdGNoIHtcbiAgICByZXR1cm5cbiAgfVxuXG4gIGlmIChwYXJzZWQgPT09IG51bGwgfHwgdHlwZW9mIHBhcnNlZCAhPT0gJ29iamVjdCcpIHtcbiAgICByZXR1cm5cbiAgfVxuXG4gIGNvbnN0IGRhdGEgPSBwYXJzZWQgYXMgTmV0bGlmeUdlb1xuICBjb25zdCBnZW86IFJlY29yZDxzdHJpbmcsIHVua25vd24+ID0ge31cbiAgaWYgKGRhdGEuY2l0eSkge1xuICAgIGdlby5jaXR5ID0gZGF0YS5jaXR5LnNsaWNlKDAsIEdFT19TVFJJTkdfTUFYKVxuICB9XG4gIGlmIChkYXRhLmNvdW50cnk/LmNvZGUgJiYgR0VPX0NPREVfUkVHRVgudGVzdChkYXRhLmNvdW50cnkuY29kZSkpIHtcbiAgICBnZW8uY291bnRyeSA9IGRhdGEuY291bnRyeS5jb2RlXG4gIH1cbiAgaWYgKGRhdGEuc3ViZGl2aXNpb24/LmNvZGUgJiYgR0VPX0NPREVfUkVHRVgudGVzdChkYXRhLnN1YmRpdmlzaW9uLmNvZGUpKSB7XG4gICAgZ2VvLnJlZ2lvbiA9IGRhdGEuc3ViZGl2aXNpb24uY29kZVxuICB9XG4gIGlmIChkYXRhLnRpbWV6b25lKSB7XG4gICAgZ2VvLnRpbWV6b25lID0gZGF0YS50aW1lem9uZS5zbGljZSgwLCBHRU9fU1RSSU5HX01BWClcbiAgfVxuICBpZiAodHlwZW9mIGRhdGEubGF0aXR1ZGUgPT09ICdudW1iZXInICYmIGlzSW5SYW5nZShkYXRhLmxhdGl0dWRlLCAtOTAsIDkwKSkge1xuICAgIGdlby5sYXRpdHVkZSA9IGRhdGEubGF0aXR1ZGVcbiAgfVxuICBpZiAoXG4gICAgdHlwZW9mIGRhdGEubG9uZ2l0dWRlID09PSAnbnVtYmVyJyAmJlxuICAgIGlzSW5SYW5nZShkYXRhLmxvbmdpdHVkZSwgLTE4MCwgMTgwKVxuICApIHtcbiAgICBnZW8ubG9uZ2l0dWRlID0gZGF0YS5sb25naXR1ZGVcbiAgfVxuXG4gIHJldHVybiBPYmplY3Qua2V5cyhnZW8pLmxlbmd0aCA+IDAgPyBnZW8gOiB1bmRlZmluZWRcbn1cblxuLyoqIEZpZWxkcyB3aG9zZSB2YWx1ZSBtdXN0IGxvb2sgbGlrZSBhIHNob3J0IGNvdW50cnkvcmVnaW9uIGNvZGUsIG5vdCBmcmVlIHRleHQuICovXG5jb25zdCBHRU9fQ09ERV9GSUVMRFMgPSBuZXcgU2V0KFsnY291bnRyeScsICdyZWdpb24nXSlcblxuY29uc3QgcmVhZEdlb1N0cmluZ0ZpZWxkcyA9IChcbiAgcmVxdWVzdDogUmVxdWVzdCxcbiAgZ2VvOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPlxuKTogdm9pZCA9PiB7XG4gIGZvciAoY29uc3QgW2ZpZWxkLCBoZWFkZXJzXSBvZiBHRU9fSEVBREVSUykge1xuICAgIGNvbnN0IHZhbHVlID0gZmlyc3RIZWFkZXIocmVxdWVzdCwgaGVhZGVycylcbiAgICBpZiAoIXZhbHVlKSB7XG4gICAgICBjb250aW51ZVxuICAgIH1cbiAgICBjb25zdCBkZWNvZGVkID0gZGVjb2RlSGVhZGVyVmFsdWUodmFsdWUpXG4gICAgaWYgKCFHRU9fQ09ERV9GSUVMRFMuaGFzKGZpZWxkKSB8fCBHRU9fQ09ERV9SRUdFWC50ZXN0KGRlY29kZWQpKSB7XG4gICAgICBnZW9bZmllbGRdID0gZGVjb2RlZFxuICAgIH1cbiAgfVxufVxuXG5jb25zdCByZWFkR2VvTnVtZXJpY0ZpZWxkcyA9IChcbiAgcmVxdWVzdDogUmVxdWVzdCxcbiAgZ2VvOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPlxuKTogdm9pZCA9PiB7XG4gIGZvciAoY29uc3QgW2ZpZWxkLCBoZWFkZXJzLCBbbWluLCBtYXhdXSBvZiBHRU9fTlVNRVJJQ19IRUFERVJTKSB7XG4gICAgY29uc3QgdmFsdWUgPSBmaXJzdEhlYWRlcihyZXF1ZXN0LCBoZWFkZXJzKVxuICAgIGNvbnN0IHBhcnNlZCA9IHZhbHVlID09PSB1bmRlZmluZWQgPyBOdW1iZXIuTmFOIDogTnVtYmVyKHZhbHVlKVxuICAgIGlmIChOdW1iZXIuaXNGaW5pdGUocGFyc2VkKSAmJiBpc0luUmFuZ2UocGFyc2VkLCBtaW4sIG1heCkpIHtcbiAgICAgIGdlb1tmaWVsZF0gPSBwYXJzZWRcbiAgICB9XG4gIH1cbn1cblxuLyoqXG4gKiBSZWFkcyB0aGUgZ2VvIGhlYWRlcnMgdGhlIGVkZ2UgYWxyZWFkeSBhdHRhY2hlZCDigJQgVmVyY2VsLCBDbG91ZGZsYXJlLCBvclxuICogTmV0bGlmeSDigJQgaW50byBgZ2VvLmNpdHlgLCBgZ2VvLmNvdW50cnlgLCBgZ2VvLnJlZ2lvbmAsIGBnZW8udGltZXpvbmVgLFxuICogYGdlby5sYXRpdHVkZWAsIGFuZCBgZ2VvLmxvbmdpdHVkZWAuXG4gKlxuICogTm90aGluZyBpcyBkZXJpdmVkIGZyb20gdGhlIElQIGFkZHJlc3MgaXRzZWxmLCBzbyBiZWhpbmQgYSBwbGF0Zm9ybSB0aGF0XG4gKiBkb2VzIG5vdCBzZXQgdGhlc2UgaGVhZGVycyB0aGUgZW5yaWNoZXIgc2ltcGx5IGFkZHMgbm90aGluZy5cbiAqXG4gKiBUaGVzZSBoZWFkZXJzIGFyZSBjbGllbnQtc2V0dGFibGUgdW5sZXNzIGFuIGVkZ2UgaW4gZnJvbnQgb2YgdGhlIGFwcFxuICogb3ZlcndyaXRlcyB0aGVtIG9uIGV2ZXJ5IHJlcXVlc3Qg4oCUIHRydXN0IHRoZSB2YWx1ZXMgb25seSBiZWhpbmQgc3VjaCBhblxuICogZWRnZS5cbiAqL1xuZXhwb3J0IGNvbnN0IGdlb0VucmljaGVyID0gKCk6IEVucmljaGVyID0+ICh7XG4gIHJlcXVlc3QocmVxdWVzdCkge1xuICAgIGNvbnN0IGdlbzogUmVjb3JkPHN0cmluZywgdW5rbm93bj4gPSB7fVxuXG4gICAgcmVhZEdlb1N0cmluZ0ZpZWxkcyhyZXF1ZXN0LCBnZW8pXG4gICAgcmVhZEdlb051bWVyaWNGaWVsZHMocmVxdWVzdCwgZ2VvKVxuXG4gICAgaWYgKE9iamVjdC5rZXlzKGdlbykubGVuZ3RoID4gMCkge1xuICAgICAgcmV0dXJuIHsgZ2VvIH1cbiAgICB9XG5cbiAgICBjb25zdCBuZXRsaWZ5ID0gcmVhZE5ldGxpZnlHZW8ocmVxdWVzdClcbiAgICByZXR1cm4gbmV0bGlmeSA/IHsgZ2VvOiBuZXRsaWZ5IH0gOiB1bmRlZmluZWRcbiAgfVxufSlcblxuY29uc3QgcmVhZENvbnRlbnRMZW5ndGggPSAodmFsdWU6IHVua25vd24pOiBudW1iZXIgfCB1bmRlZmluZWQgPT4ge1xuICBpZiAodHlwZW9mIHZhbHVlID09PSAnbnVtYmVyJyAmJiBOdW1iZXIuaXNGaW5pdGUodmFsdWUpICYmIHZhbHVlID49IDApIHtcbiAgICByZXR1cm4gdmFsdWVcbiAgfVxuICBpZiAodHlwZW9mIHZhbHVlICE9PSAnc3RyaW5nJyB8fCB2YWx1ZS5sZW5ndGggPT09IDApIHtcbiAgICByZXR1cm5cbiAgfVxuICBjb25zdCBwYXJzZWQgPSBOdW1iZXIodmFsdWUpXG4gIHJldHVybiBOdW1iZXIuaXNGaW5pdGUocGFyc2VkKSAmJiBwYXJzZWQgPj0gMCA/IHBhcnNlZCA6IHVuZGVmaW5lZFxufVxuXG5jb25zdCBmaW5kSGVhZGVyID0gKFxuICBoZWFkZXJzOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPixcbiAgbmFtZTogc3RyaW5nXG4pOiB1bmtub3duID0+IHtcbiAgZm9yIChjb25zdCBba2V5LCB2YWx1ZV0gb2YgT2JqZWN0LmVudHJpZXMoaGVhZGVycykpIHtcbiAgICBpZiAoa2V5LnRvTG93ZXJDYXNlKCkgPT09IG5hbWUpIHtcbiAgICAgIHJldHVybiB2YWx1ZVxuICAgIH1cbiAgfVxufVxuXG4vKipcbiAqIFJlY29yZHMgcGF5bG9hZCBzaXplcyBhcyBgcmVxdWVzdEJ5dGVzYCBhbmQgYHJlc3BvbnNlQnl0ZXNgLlxuICpcbiAqIEJvdGggY29tZSBmcm9tIGBjb250ZW50LWxlbmd0aGAsIHdoaWNoIGlzIHRoZSBvbmx5IHNpemUgdGhlIHBsdWdpbiBjYW4gcmVhZFxuICogd2l0aG91dCBidWZmZXJpbmcgYSBib2R5LiBBIGNodW5rZWQgb3Igc3RyZWFtZWQgcmVzcG9uc2UgaGFzIG5vXG4gKiBgY29udGVudC1sZW5ndGhgLCBzbyBgcmVzcG9uc2VCeXRlc2AgaXMgb21pdHRlZCByYXRoZXIgdGhhbiBndWVzc2VkLlxuICovXG5leHBvcnQgY29uc3Qgc2l6ZUVucmljaGVyID0gKCk6IEVucmljaGVyID0+ICh7XG4gIHJlcXVlc3QocmVxdWVzdCk6IEVucmljaGVyRmllbGRzIHtcbiAgICBjb25zdCBieXRlcyA9IHJlYWRDb250ZW50TGVuZ3RoKHJlcXVlc3QuaGVhZGVycy5nZXQoJ2NvbnRlbnQtbGVuZ3RoJykpXG4gICAgcmV0dXJuIGJ5dGVzID09PSB1bmRlZmluZWQgPyB1bmRlZmluZWQgOiB7IHJlcXVlc3RCeXRlczogYnl0ZXMgfVxuICB9LFxuICByZXNwb25zZShpbnB1dDogRW5yaWNoZXJSZXNwb25zZUlucHV0KTogRW5yaWNoZXJGaWVsZHMge1xuICAgIGNvbnN0IGJ5dGVzID0gcmVhZENvbnRlbnRMZW5ndGgoZmluZEhlYWRlcihpbnB1dC5oZWFkZXJzLCAnY29udGVudC1sZW5ndGgnKSlcbiAgICByZXR1cm4gYnl0ZXMgPT09IHVuZGVmaW5lZCA/IHVuZGVmaW5lZCA6IHsgcmVzcG9uc2VCeXRlczogYnl0ZXMgfVxuICB9XG59KVxuIgogIF0sCiAgIm1hcHBpbmdzIjogIkFBaUJBLElBQU0sRUFDSixrRUFDSSxFQUFnQixJQUFJLE9BQU8sRUFBRSxFQUM3QixFQUFlLElBQUksT0FBTyxFQUFFLEVBNkIzQixJQUFNLEVBQXNCLENBQ2pDLEVBQXNDLENBQUMsSUFDMUIsQ0FDYixJQUFNLEVBQVMsRUFBUSxRQUFVLGNBRWpDLE1BQU8sQ0FDTCxPQUFPLENBQUMsRUFBUyxDQUNmLElBQU0sRUFBTSxFQUFRLFFBQVEsSUFBSSxDQUFNLEVBQ3RDLEdBQUksQ0FBQyxFQUNILE9BR0YsSUFBTSxFQUFRLEVBQUksS0FBSyxFQUNqQixFQUFRLEVBQVksS0FBSyxDQUFLLEVBQ3BDLEdBQUksQ0FBQyxFQUNILE9B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LEVBQ0EsSUFDUyxDQUNULFFBQVksRUFBTyxLQUFZLEVBQWEsQ0FDMUMsSUFBTSxFQUFRLEVBQVksRUFBUyxDQUFPLEVBQzFDLEdBQUksQ0FBQyxFQUNILFNBRUYsSUFBTSxFQUFVLEVBQWtCLENBQUssRUFDdkMsR0FBSSxDQUFDLEVBQWdCLElBQUksQ0FBSyxHQUFLLEVBQWUsS0FBSyxDQUFPLEVBQzVELEVBQUksR0FBUyxJQUtiLEVBQXVCLENBQzNCLEVBQ0EsSUFDUyxDQUNULFFBQVksRUFBTyxHQUFVLEVBQUssTUFBUyxFQUFxQixDQUM5RCxJQUFNLEVBQVEsRUFBWSxFQUFTLENBQU8sRUFDcEMsRUFBUyxJQUFVLE9BQVksT0FBTyxJQUFNLE9BQU8sQ0FBSyxFQUM5RCxHQUFJLE9BQU8sU0FBUyxDQUFNLEdBQUssRUFBVSxFQUFRLEVBQUssQ0FBRyxFQUN2RCxFQUFJLEdBQVMsSUFpQk4sRUFBYyxLQUFpQixDQUMxQyxPQUFPLENBQUMsRUFBUyxDQUNmLElBQU0sRUFBK0IsQ0FBQyxFQUt0QyxHQUhBLEVBQW9CLEVBQVMsQ0FBRyxFQUNoQyxFQUFxQixFQUFTLENBQUcsRUFFN0IsT0FBTyxLQUFLLENBQUcsRUFBRSxPQUFTLEVBQzVCLE1BQU8sQ0FBRSxLQUFJLEVBR2YsSUFBTSxFQUFVLEVBQWUsQ0FBTyxFQUN0QyxPQUFPLEVBQVUsQ0FBRSxJQUFLLENBQVEsRUFBSSxPQUV4QyxHQUVNLEVBQW9CLENBQUMsSUFBdUMsQ0FDaEUsR0FBSSxPQUFPLElBQVUsVUFBWSxPQUFPLFNBQVMsQ0FBSyxHQUFLLEdBQVMsRUFDbEUsT0FBTyxFQUVULEdBQUksT0FBTyxJQUFVLFVBQVksRUFBTSxTQUFXLEVBQ2hELE9BRUYsSUFBTSxFQUFTLE9BQU8sQ0FBSyxFQUMzQixPQUFPLE9BQU8sU0FBUyxDQUFNLEdBQUssR0FBVSxFQUFJLEVBQVMsUUFHckQsRUFBYSxDQUNqQixFQUNBLElBQ1ksQ0FDWixRQUFZLEVBQUssS0FBVSxPQUFPLFFBQVEsQ0FBTyxFQUMvQyxHQUFJLEVBQUksWUFBWSxJQUFNLEVBQ3hCLE9BQU8sR0FZQSxFQUFlLEtBQWlCLENBQzNDLE9BQU8sQ0FBQyxFQUF5QixDQUMvQixJQUFNLEVBQVEsRUFBa0IsRUFBUSxRQUFRLElBQUksZ0JBQWdCLENBQUMsRUFDckUsT0FBTyxJQUFVLE9BQVksT0FBWSxDQUFFLGFBQWMsQ0FBTSxHQUVqRSxRQUFRLENBQUMsRUFBOEMsQ0FDckQsSUFBTSxFQUFRLEVBQWtCLEVBQVcsRUFBTSxRQUFTLGdCQUFnQixDQUFDLEVBQzNFLE9BQU8sSUFBVSxPQUFZLE9BQVksQ0FBRSxjQUFlLENBQU0sRUFFcEUiLAogICJkZWJ1Z0lkIjogIjNBNjA1NkZEQjRBNzgzNUQ2NDc1NkUyMTY0NzU2RTIxIiwKICAibmFtZXMiOiBbXQp9
3
+ //# debugId=BC77FE35BFD197A864756E2164756E21
4
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsic3JjL2VucmljaGVycy50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsKICAgICJpbXBvcnQgdHlwZSB7XG4gIEVucmljaGVyLFxuICBFbnJpY2hlckZpZWxkcyxcbiAgRW5yaWNoZXJSZXNwb25zZUlucHV0XG59IGZyb20gJy4vdHlwZXMvZW5yaWNoZXInXG5cbmV4cG9ydCB0eXBlIHtcbiAgRW5yaWNoZXIsXG4gIEVucmljaGVyRmllbGRzLFxuICBFbnJpY2hlckxpa2UsXG4gIEVucmljaGVyUmVzcG9uc2VJbnB1dFxufSBmcm9tICcuL3R5cGVzL2VucmljaGVyJ1xuXG5jb25zdCBIRVhfUkFESVggPSAxNlxuY29uc3QgTUFYX1RSQUNFU1RBVEVfTEVOR1RIID0gNTEyXG5cbi8vIHZlcnNpb24tdHJhY2VfaWQtcGFyZW50X2lkLWZsYWdzLCB3aXRoIGFuIG9wdGlvbmFsIHRhaWwgZm9yIHZlcnNpb25zID4gMDAuXG5jb25zdCBUUkFDRVBBUkVOVCA9XG4gIC9eKD88dmVyc2lvbj5bXFxkYS1mXXsyfSktKD88dHJhY2VJZD5bXFxkYS1mXXszMn0pLSg/PHNwYW5JZD5bXFxkYS1mXXsxNn0pLSg/PGZsYWdzPltcXGRhLWZdezJ9KSg/Oi0uKyk/JC91XG5jb25zdCBaRVJPX1RSQUNFX0lEID0gJzAnLnJlcGVhdCgzMilcbmNvbnN0IFpFUk9fU1BBTl9JRCA9ICcwJy5yZXBlYXQoMTYpXG5jb25zdCBJTlZBTElEX1ZFUlNJT04gPSAnZmYnXG5jb25zdCBDVVJSRU5UX1ZFUlNJT04gPSAnMDAnXG4vKiogYDAwLWAgKyAzMiArIGAtYCArIDE2ICsgYC1gICsgMjogdmVyc2lvbiAwMCBpcyBleGFjdGx5IHRoZXNlIGZvdXIgZmllbGRzLiAqL1xuY29uc3QgVkVSU0lPTl8wMF9MRU5HVEggPSA1NVxuXG5leHBvcnQgaW50ZXJmYWNlIFRyYWNlcGFyZW50RW5yaWNoZXJPcHRpb25zIHtcbiAgLyoqXG4gICAqIEhlYWRlciB0byByZWFkIHRoZSB0cmFjZSBjb250ZXh0IGZyb20uXG4gICAqIEBkZWZhdWx0ICd0cmFjZXBhcmVudCdcbiAgICovXG4gIGhlYWRlcj86IHN0cmluZ1xuICAvKipcbiAgICogQWxzbyByZWNvcmQgdGhlIHJhdyBgdHJhY2VzdGF0ZWAgaGVhZGVyICh0cnVuY2F0ZWQgdG8gNTEyIGNoYXJhY3RlcnMpLlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgdHJhY2VzdGF0ZT86IGJvb2xlYW5cbn1cblxuLyoqXG4gKiBSZWFkcyBXM0MgdHJhY2UgY29udGV4dCBzdHJhaWdodCBvZmYgdGhlIHJlcXVlc3QgaGVhZGVycywgc28gbG9ncyBsaW5rIHRvXG4gKiB0cmFjZXMgaW4gU2VudHJ5LCBIeXBlckRYLCBvciBhbnkgT1RMUCBiYWNrZW5kIHdpdGhvdXQgYW4gT3BlblRlbGVtZXRyeSBTREtcbiAqIGluIHRoZSBwcm9jZXNzLlxuICpcbiAqIFVzZSBgbG9naXhseXNpYS9vdGVsYCBpbnN0ZWFkIHdoZW4geW91IGFscmVhZHkgcnVuIHRoZSBTREsgYW5kIHdhbnQgdGhlIGlkc1xuICogb2YgdGhlICphY3RpdmUgc3BhbiogcmF0aGVyIHRoYW4gdGhlIGlkcyB0aGUgY2FsbGVyIHByb3BhZ2F0ZWQuXG4gKlxuICogQWRkcyBgdHJhY2VfaWRgLCBgc3Bhbl9pZGAsIGB0cmFjZV9mbGFnc2AsIGFuZCBgdHJhY2Vfc2FtcGxlZGAuXG4gKi9cbmV4cG9ydCBjb25zdCB0cmFjZXBhcmVudEVucmljaGVyID0gKFxuICBvcHRpb25zOiBUcmFjZXBhcmVudEVucmljaGVyT3B0aW9ucyA9IHt9XG4pOiBFbnJpY2hlciA9PiB7XG4gIGNvbnN0IGhlYWRlciA9IG9wdGlvbnMuaGVhZGVyID8/ICd0cmFjZXBhcmVudCdcblxuICByZXR1cm4ge1xuICAgIHJlcXVlc3QocmVxdWVzdCkge1xuICAgICAgY29uc3QgcmF3ID0gcmVxdWVzdC5oZWFkZXJzLmdldChoZWFkZXIpXG4gICAgICBpZiAoIXJhdykge1xuICAgICAgICByZXR1cm5cbiAgICAgIH1cblxuICAgICAgY29uc3QgdmFsdWUgPSByYXcudHJpbSgpXG4gICAgICBjb25zdCBtYXRjaCA9IFRSQUNFUEFSRU5ULmV4ZWModmFsdWUpXG4gICAgICBpZiAoIW1hdGNoKSB7XG4gICAgICAgIHJldHVyblxuICAgICAgfVxuXG4gICAgICBjb25zdCBbLCB2ZXJzaW9uLCB0cmFjZUlkLCBzcGFuSWQsIGZsYWdzXSA9IG1hdGNoXG5cbiAgICAgIC8vIGBmZmAgaXMgcmVzZXJ2ZWQsIGFsbC16ZXJvIGlkcyBhcmUgaW52YWxpZCwgYW5kIGEgdmVyc2lvbi0wMCBoZWFkZXJcbiAgICAgIC8vIGNhcnJ5aW5nIGV4dHJhIGZpZWxkcyBpcyBtYWxmb3JtZWQgcmF0aGVyIHRoYW4gZm9yd2FyZC1jb21wYXRpYmxlLlxuICAgICAgaWYgKFxuICAgICAgICB2ZXJzaW9uID09PSBJTlZBTElEX1ZFUlNJT04gfHxcbiAgICAgICAgdHJhY2VJZCA9PT0gWkVST19UUkFDRV9JRCB8fFxuICAgICAgICBzcGFuSWQgPT09IFpFUk9fU1BBTl9JRCB8fFxuICAgICAgICAodmVyc2lvbiA9PT0gQ1VSUkVOVF9WRVJTSU9OICYmIHZhbHVlLmxlbmd0aCAhPT0gVkVSU0lPTl8wMF9MRU5HVEgpXG4gICAgICApIHtcbiAgICAgICAgcmV0dXJuXG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGZpZWxkczogUmVjb3JkPHN0cmluZywgdW5rbm93bj4gPSB7XG4gICAgICAgIHNwYW5faWQ6IHNwYW5JZCxcbiAgICAgICAgdHJhY2VfZmxhZ3M6IGZsYWdzLFxuICAgICAgICB0cmFjZV9pZDogdHJhY2VJZCxcbiAgICAgICAgLy8gYHNhbXBsZWRgIGlzIHRoZSBsb3cgYml0IG9mIHRoZSBmbGFncyBieXRlLCBzbyBhbiBvZGQgdmFsdWUgaXMgc2V0LlxuICAgICAgICB0cmFjZV9zYW1wbGVkOiBOdW1iZXIucGFyc2VJbnQoZmxhZ3MsIEhFWF9SQURJWCkgJSAyID09PSAxXG4gICAgICB9XG5cbiAgICAgIGlmIChvcHRpb25zLnRyYWNlc3RhdGUpIHtcbiAgICAgICAgY29uc3Qgc3RhdGUgPSByZXF1ZXN0LmhlYWRlcnMuZ2V0KCd0cmFjZXN0YXRlJylcbiAgICAgICAgaWYgKHN0YXRlKSB7XG4gICAgICAgICAgZmllbGRzLnRyYWNlc3RhdGUgPSBzdGF0ZS5zbGljZSgwLCBNQVhfVFJBQ0VTVEFURV9MRU5HVEgpXG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGZpZWxkc1xuICAgIH1cbiAgfVxufVxuXG5jb25zdCBCT1QgPSAvYm90fGNyYXdsfHNwaWRlcnxzbHVycHxmYWNlYm9va2V4dGVybmFsaGl0fHByZXZpZXd8aGVhZGxlc3MvaXVcbmNvbnN0IFRBQkxFVCA9IC9pcGFkfHRhYmxldHxwbGF5Ym9va3xzaWxrfGtpbmRsZS9pdVxuY29uc3QgTU9CSUxFID0gL21vYml8aXBob25lfGlwb2R8d2luZG93cyBwaG9uZS9pdVxuY29uc3QgQU5EUk9JRF9NT0JJTEUgPSAvYW5kcm9pZC4qbW9iaWxlL2l1XG5cbi8qKiBGaXJzdCBtYXRjaCB3aW5zLCBzbyBtb3JlIHNwZWNpZmljIGVuZ2luZXMgYXJlIGxpc3RlZCBiZWZvcmUgdGhlaXIgYmFzZS4gKi9cbmNvbnN0IEJST1dTRVJTOiByZWFkb25seSBbbmFtZTogc3RyaW5nLCBwYXR0ZXJuOiBSZWdFeHBdW10gPSBbXG4gIFsnRWRnZScsIC9lZGcoPzphfGlvcyk/XFwvKD88dmVyc2lvbj5bXFxkLl0rKS9pdV0sXG4gIFsnT3BlcmEnLCAvKD86b3ByfG9waW9zfG9wZXJhKVxcLyg/PHZlcnNpb24+W1xcZC5dKykvaXVdLFxuICBbJ1NhbXN1bmcgSW50ZXJuZXQnLCAvc2Ftc3VuZ2Jyb3dzZXJcXC8oPzx2ZXJzaW9uPltcXGQuXSspL2l1XSxcbiAgWydGaXJlZm94JywgLyg/OmZpcmVmb3h8Znhpb3MpXFwvKD88dmVyc2lvbj5bXFxkLl0rKS9pdV0sXG4gIFsnQ2hyb21lJywgLyg/OmNocm9tZXxjcmlvcylcXC8oPzx2ZXJzaW9uPltcXGQuXSspL2l1XSxcbiAgWydTYWZhcmknLCAvdmVyc2lvblxcLyg/PHZlcnNpb24+W1xcZC5dKykuKnNhZmFyaS9pdV1cbl1cblxuY29uc3QgT1BFUkFUSU5HX1NZU1RFTVM6IHJlYWRvbmx5IFtuYW1lOiBzdHJpbmcsIHBhdHRlcm46IFJlZ0V4cF1bXSA9IFtcbiAgWydpT1MnLCAvaXBob25lfGlwYWR8aXBvZC9pdV0sXG4gIFsnQW5kcm9pZCcsIC9hbmRyb2lkL2l1XSxcbiAgWydDaHJvbWVPUycsIC9jcm9zL2l1XSxcbiAgWydXaW5kb3dzJywgL3dpbmRvd3MgbnQvaXVdLFxuICBbJ21hY09TJywgL21hYyBvcyB4L2l1XSxcbiAgWydMaW51eCcsIC9saW51eC9pdV1cbl1cblxuY29uc3QgbWF0Y2hOYW1lID0gKFxuICBjYW5kaWRhdGVzOiByZWFkb25seSBbc3RyaW5nLCBSZWdFeHBdW10sXG4gIHZhbHVlOiBzdHJpbmdcbik6IHsgbmFtZTogc3RyaW5nOyB2ZXJzaW9uPzogc3RyaW5nIH0gfCB1bmRlZmluZWQgPT4ge1xuICBmb3IgKGNvbnN0IFtuYW1lLCBwYXR0ZXJuXSBvZiBjYW5kaWRhdGVzKSB7XG4gICAgY29uc3QgbWF0Y2ggPSBwYXR0ZXJuLmV4ZWModmFsdWUpXG4gICAgaWYgKG1hdGNoKSB7XG4gICAgICByZXR1cm4geyBuYW1lLCB2ZXJzaW9uOiBtYXRjaFsxXSB9XG4gICAgfVxuICB9XG59XG5cbmNvbnN0IHJlc29sdmVEZXZpY2UgPSAodmFsdWU6IHN0cmluZywgYm90OiBib29sZWFuKTogc3RyaW5nID0+IHtcbiAgaWYgKGJvdCkge1xuICAgIHJldHVybiAnYm90J1xuICB9XG4gIGlmIChUQUJMRVQudGVzdCh2YWx1ZSkpIHtcbiAgICByZXR1cm4gJ3RhYmxldCdcbiAgfVxuICBpZiAoTU9CSUxFLnRlc3QodmFsdWUpIHx8IEFORFJPSURfTU9CSUxFLnRlc3QodmFsdWUpKSB7XG4gICAgcmV0dXJuICdtb2JpbGUnXG4gIH1cbiAgcmV0dXJuICdkZXNrdG9wJ1xufVxuXG4vKipcbiAqIFR1cm5zIHRoZSBgdXNlci1hZ2VudGAgaGVhZGVyIGludG8gcXVlcnlhYmxlIGZpZWxkcyB1bmRlciBgdWFgOiBgYnJvd3NlcmAsXG4gKiBgYnJvd3NlclZlcnNpb25gLCBgb3NgLCBgZGV2aWNlYCAoYGRlc2t0b3BgIHwgYG1vYmlsZWAgfCBgdGFibGV0YCB8IGBib3RgKSxcbiAqIGFuZCBgYm90YC5cbiAqXG4gKiBEZWxpYmVyYXRlbHkgYSBoZXVyaXN0aWMg4oCUIHVzZXIgYWdlbnRzIGFyZSBub3QgYSBwYXJzZWFibGUgZ3JhbW1hci4gSXQgaXNcbiAqIGJ1aWx0IGZvciBncm91cGluZyB0cmFmZmljIGluIGEgZGFzaGJvYXJkLCBub3QgZm9yIG1ha2luZyBhY2Nlc3MgZGVjaXNpb25zLlxuICovXG5leHBvcnQgY29uc3QgdXNlckFnZW50RW5yaWNoZXIgPSAoKTogRW5yaWNoZXIgPT4gKHtcbiAgcmVxdWVzdChyZXF1ZXN0KSB7XG4gICAgY29uc3QgdmFsdWUgPSByZXF1ZXN0LmhlYWRlcnMuZ2V0KCd1c2VyLWFnZW50JylcbiAgICBpZiAoIXZhbHVlKSB7XG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICBjb25zdCBib3QgPSBCT1QudGVzdCh2YWx1ZSlcbiAgICBjb25zdCBicm93c2VyID0gbWF0Y2hOYW1lKEJST1dTRVJTLCB2YWx1ZSlcbiAgICBjb25zdCBvcyA9IG1hdGNoTmFtZShPUEVSQVRJTkdfU1lTVEVNUywgdmFsdWUpXG5cbiAgICByZXR1cm4ge1xuICAgICAgdWE6IHtcbiAgICAgICAgYm90LFxuICAgICAgICAuLi4oYnJvd3NlciA/IHsgYnJvd3NlcjogYnJvd3Nlci5uYW1lIH0gOiB7fSksXG4gICAgICAgIC4uLihicm93c2VyPy52ZXJzaW9uID8geyBicm93c2VyVmVyc2lvbjogYnJvd3Nlci52ZXJzaW9uIH0gOiB7fSksXG4gICAgICAgIGRldmljZTogcmVzb2x2ZURldmljZSh2YWx1ZSwgYm90KSxcbiAgICAgICAgLi4uKG9zID8geyBvczogb3MubmFtZSB9IDoge30pXG4gICAgICB9XG4gICAgfVxuICB9XG59KVxuXG4vKiogSGVhZGVyIGNhbmRpZGF0ZXMgcGVyIGdlbyBmaWVsZCwgaW4gcHJpb3JpdHkgb3JkZXIgYWNyb3NzIHBsYXRmb3Jtcy4gKi9cbmNvbnN0IEdFT19IRUFERVJTOiByZWFkb25seSBbZmllbGQ6IHN0cmluZywgaGVhZGVyczogcmVhZG9ubHkgc3RyaW5nW11dW10gPSBbXG4gIFsnY2l0eScsIFsneC12ZXJjZWwtaXAtY2l0eScsICdjZi1pcGNpdHknXV0sXG4gIFsnY291bnRyeScsIFsneC12ZXJjZWwtaXAtY291bnRyeScsICdjZi1pcGNvdW50cnknXV0sXG4gIFsncmVnaW9uJywgWyd4LXZlcmNlbC1pcC1jb3VudHJ5LXJlZ2lvbicsICdjZi1yZWdpb24tY29kZScsICdjZi1yZWdpb24nXV0sXG4gIFsndGltZXpvbmUnLCBbJ3gtdmVyY2VsLWlwLXRpbWV6b25lJywgJ2NmLXRpbWV6b25lJ11dXG5dXG5cbmNvbnN0IEdFT19OVU1FUklDX0hFQURFUlM6IHJlYWRvbmx5IFtcbiAgZmllbGQ6IHN0cmluZyxcbiAgaGVhZGVyczogcmVhZG9ubHkgc3RyaW5nW10sXG4gIHJhbmdlOiByZWFkb25seSBbbnVtYmVyLCBudW1iZXJdXG5dW10gPSBbXG4gIFsnbGF0aXR1ZGUnLCBbJ3gtdmVyY2VsLWlwLWxhdGl0dWRlJywgJ2NmLWlwbGF0aXR1ZGUnXSwgWy05MCwgOTBdXSxcbiAgWydsb25naXR1ZGUnLCBbJ3gtdmVyY2VsLWlwLWxvbmdpdHVkZScsICdjZi1pcGxvbmdpdHVkZSddLCBbLTE4MCwgMTgwXV1cbl1cblxuY29uc3QgTkVUTElGWV9HRU9fSEVBREVSID0gJ3gtbmYtZ2VvJ1xuY29uc3QgR0VPX1NUUklOR19NQVggPSAxMjhcbmNvbnN0IEdFT19SQVdfSEVBREVSX01BWCA9IDIwNDhcbi8qKiBJU08tMzE2Ni1pc2ggY291bnRyeS9yZWdpb24gY29kZXM6IHNob3J0IGFscGhhbnVtZXJpYyB0b2tlbnMsIG5ldmVyIGZyZWUgdGV4dC4gKi9cbmNvbnN0IEdFT19DT0RFX1JFR0VYID0gL15bQS1aYS16MC05LV17MSwxMH0kL3VcblxuY29uc3QgZmlyc3RIZWFkZXIgPSAoXG4gIHJlcXVlc3Q6IFJlcXVlc3QsXG4gIGhlYWRlcnM6IHJlYWRvbmx5IHN0cmluZ1tdXG4pOiBzdHJpbmcgfCB1bmRlZmluZWQgPT4ge1xuICBmb3IgKGNvbnN0IGhlYWRlciBvZiBoZWFkZXJzKSB7XG4gICAgY29uc3QgdmFsdWUgPSByZXF1ZXN0LmhlYWRlcnMuZ2V0KGhlYWRlcilcbiAgICBpZiAodmFsdWUpIHtcbiAgICAgIHJldHVybiB2YWx1ZVxuICAgIH1cbiAgfVxufVxuXG4vKiogVmVyY2VsIHBlcmNlbnQtZW5jb2RlcyBjaXR5IG5hbWVzLCBzbyBgUyVDMyVBM28lMjBQYXVsb2AgbXVzdCBiZSBkZWNvZGVkLiAqL1xuY29uc3QgZGVjb2RlSGVhZGVyVmFsdWUgPSAodmFsdWU6IHN0cmluZyk6IHN0cmluZyA9PiB7XG4gIHRyeSB7XG4gICAgcmV0dXJuIGRlY29kZVVSSUNvbXBvbmVudCh2YWx1ZSkuc2xpY2UoMCwgR0VPX1NUUklOR19NQVgpXG4gIH0gY2F0Y2gge1xuICAgIHJldHVybiB2YWx1ZS5zbGljZSgwLCBHRU9fU1RSSU5HX01BWClcbiAgfVxufVxuXG5jb25zdCBpc0luUmFuZ2UgPSAodmFsdWU6IG51bWJlciwgbWluOiBudW1iZXIsIG1heDogbnVtYmVyKTogYm9vbGVhbiA9PlxuICB2YWx1ZSA+PSBtaW4gJiYgdmFsdWUgPD0gbWF4XG5cbmludGVyZmFjZSBOZXRsaWZ5R2VvIHtcbiAgY2l0eT86IHN0cmluZ1xuICBjb3VudHJ5PzogeyBjb2RlPzogc3RyaW5nIH1cbiAgbGF0aXR1ZGU/OiBudW1iZXJcbiAgbG9uZ2l0dWRlPzogbnVtYmVyXG4gIHN1YmRpdmlzaW9uPzogeyBjb2RlPzogc3RyaW5nIH1cbiAgdGltZXpvbmU/OiBzdHJpbmdcbn1cblxuY29uc3QgcmVhZE5ldGxpZnlHZW8gPSAoXG4gIHJlcXVlc3Q6IFJlcXVlc3Rcbik6IFJlY29yZDxzdHJpbmcsIHVua25vd24+IHwgdW5kZWZpbmVkID0+IHtcbiAgY29uc3QgcmF3ID0gcmVxdWVzdC5oZWFkZXJzLmdldChORVRMSUZZX0dFT19IRUFERVIpXG4gIGlmICghcmF3IHx8IHJhdy5sZW5ndGggPiBHRU9fUkFXX0hFQURFUl9NQVgpIHtcbiAgICByZXR1cm5cbiAgfVxuXG4gIGxldCBwYXJzZWQ6IHVua25vd25cbiAgdHJ5IHtcbiAgICBwYXJzZWQgPSBKU09OLnBhcnNlKGF0b2IocmF3KSlcbiAgfSBjYXRjaCB7XG4gICAgcmV0dXJuXG4gIH1cblxuICBpZiAocGFyc2VkID09PSBudWxsIHx8IHR5cGVvZiBwYXJzZWQgIT09ICdvYmplY3QnKSB7XG4gICAgcmV0dXJuXG4gIH1cblxuICBjb25zdCBkYXRhID0gcGFyc2VkIGFzIE5ldGxpZnlHZW9cbiAgY29uc3QgZ2VvOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiA9IHt9XG4gIGlmIChkYXRhLmNpdHkpIHtcbiAgICBnZW8uY2l0eSA9IGRhdGEuY2l0eS5zbGljZSgwLCBHRU9fU1RSSU5HX01BWClcbiAgfVxuICBpZiAoZGF0YS5jb3VudHJ5Py5jb2RlICYmIEdFT19DT0RFX1JFR0VYLnRlc3QoZGF0YS5jb3VudHJ5LmNvZGUpKSB7XG4gICAgZ2VvLmNvdW50cnkgPSBkYXRhLmNvdW50cnkuY29kZVxuICB9XG4gIGlmIChkYXRhLnN1YmRpdmlzaW9uPy5jb2RlICYmIEdFT19DT0RFX1JFR0VYLnRlc3QoZGF0YS5zdWJkaXZpc2lvbi5jb2RlKSkge1xuICAgIGdlby5yZWdpb24gPSBkYXRhLnN1YmRpdmlzaW9uLmNvZGVcbiAgfVxuICBpZiAoZGF0YS50aW1lem9uZSkge1xuICAgIGdlby50aW1lem9uZSA9IGRhdGEudGltZXpvbmUuc2xpY2UoMCwgR0VPX1NUUklOR19NQVgpXG4gIH1cbiAgaWYgKHR5cGVvZiBkYXRhLmxhdGl0dWRlID09PSAnbnVtYmVyJyAmJiBpc0luUmFuZ2UoZGF0YS5sYXRpdHVkZSwgLTkwLCA5MCkpIHtcbiAgICBnZW8ubGF0aXR1ZGUgPSBkYXRhLmxhdGl0dWRlXG4gIH1cbiAgaWYgKFxuICAgIHR5cGVvZiBkYXRhLmxvbmdpdHVkZSA9PT0gJ251bWJlcicgJiZcbiAgICBpc0luUmFuZ2UoZGF0YS5sb25naXR1ZGUsIC0xODAsIDE4MClcbiAgKSB7XG4gICAgZ2VvLmxvbmdpdHVkZSA9IGRhdGEubG9uZ2l0dWRlXG4gIH1cblxuICByZXR1cm4gT2JqZWN0LmtleXMoZ2VvKS5sZW5ndGggPiAwID8gZ2VvIDogdW5kZWZpbmVkXG59XG5cbi8qKiBGaWVsZHMgd2hvc2UgdmFsdWUgbXVzdCBsb29rIGxpa2UgYSBzaG9ydCBjb3VudHJ5L3JlZ2lvbiBjb2RlLCBub3QgZnJlZSB0ZXh0LiAqL1xuY29uc3QgR0VPX0NPREVfRklFTERTID0gbmV3IFNldChbJ2NvdW50cnknLCAncmVnaW9uJ10pXG5cbmNvbnN0IHJlYWRHZW9TdHJpbmdGaWVsZHMgPSAoXG4gIHJlcXVlc3Q6IFJlcXVlc3QsXG4gIGdlbzogUmVjb3JkPHN0cmluZywgdW5rbm93bj5cbik6IHZvaWQgPT4ge1xuICBmb3IgKGNvbnN0IFtmaWVsZCwgaGVhZGVyc10gb2YgR0VPX0hFQURFUlMpIHtcbiAgICBjb25zdCB2YWx1ZSA9IGZpcnN0SGVhZGVyKHJlcXVlc3QsIGhlYWRlcnMpXG4gICAgaWYgKCF2YWx1ZSkge1xuICAgICAgY29udGludWVcbiAgICB9XG4gICAgY29uc3QgZGVjb2RlZCA9IGRlY29kZUhlYWRlclZhbHVlKHZhbHVlKVxuICAgIGlmICghR0VPX0NPREVfRklFTERTLmhhcyhmaWVsZCkgfHwgR0VPX0NPREVfUkVHRVgudGVzdChkZWNvZGVkKSkge1xuICAgICAgZ2VvW2ZpZWxkXSA9IGRlY29kZWRcbiAgICB9XG4gIH1cbn1cblxuY29uc3QgcmVhZEdlb051bWVyaWNGaWVsZHMgPSAoXG4gIHJlcXVlc3Q6IFJlcXVlc3QsXG4gIGdlbzogUmVjb3JkPHN0cmluZywgdW5rbm93bj5cbik6IHZvaWQgPT4ge1xuICBmb3IgKGNvbnN0IFtmaWVsZCwgaGVhZGVycywgW21pbiwgbWF4XV0gb2YgR0VPX05VTUVSSUNfSEVBREVSUykge1xuICAgIGNvbnN0IHZhbHVlID0gZmlyc3RIZWFkZXIocmVxdWVzdCwgaGVhZGVycylcbiAgICBjb25zdCBwYXJzZWQgPSB2YWx1ZSA9PT0gdW5kZWZpbmVkID8gTnVtYmVyLk5hTiA6IE51bWJlcih2YWx1ZSlcbiAgICBpZiAoTnVtYmVyLmlzRmluaXRlKHBhcnNlZCkgJiYgaXNJblJhbmdlKHBhcnNlZCwgbWluLCBtYXgpKSB7XG4gICAgICBnZW9bZmllbGRdID0gcGFyc2VkXG4gICAgfVxuICB9XG59XG5cbi8qKlxuICogUmVhZHMgdGhlIGdlbyBoZWFkZXJzIHRoZSBlZGdlIGFscmVhZHkgYXR0YWNoZWQg4oCUIFZlcmNlbCwgQ2xvdWRmbGFyZSwgb3JcbiAqIE5ldGxpZnkg4oCUIGludG8gYGdlby5jaXR5YCwgYGdlby5jb3VudHJ5YCwgYGdlby5yZWdpb25gLCBgZ2VvLnRpbWV6b25lYCxcbiAqIGBnZW8ubGF0aXR1ZGVgLCBhbmQgYGdlby5sb25naXR1ZGVgLlxuICpcbiAqIE5vdGhpbmcgaXMgZGVyaXZlZCBmcm9tIHRoZSBJUCBhZGRyZXNzIGl0c2VsZiwgc28gYmVoaW5kIGEgcGxhdGZvcm0gdGhhdFxuICogZG9lcyBub3Qgc2V0IHRoZXNlIGhlYWRlcnMgdGhlIGVucmljaGVyIHNpbXBseSBhZGRzIG5vdGhpbmcuXG4gKlxuICogVGhlc2UgaGVhZGVycyBhcmUgY2xpZW50LXNldHRhYmxlIHVubGVzcyBhbiBlZGdlIGluIGZyb250IG9mIHRoZSBhcHBcbiAqIG92ZXJ3cml0ZXMgdGhlbSBvbiBldmVyeSByZXF1ZXN0IOKAlCB0cnVzdCB0aGUgdmFsdWVzIG9ubHkgYmVoaW5kIHN1Y2ggYW5cbiAqIGVkZ2UuXG4gKi9cbmV4cG9ydCBjb25zdCBnZW9FbnJpY2hlciA9ICgpOiBFbnJpY2hlciA9PiAoe1xuICByZXF1ZXN0KHJlcXVlc3QpIHtcbiAgICBjb25zdCBnZW86IFJlY29yZDxzdHJpbmcsIHVua25vd24+ID0ge31cblxuICAgIHJlYWRHZW9TdHJpbmdGaWVsZHMocmVxdWVzdCwgZ2VvKVxuICAgIHJlYWRHZW9OdW1lcmljRmllbGRzKHJlcXVlc3QsIGdlbylcblxuICAgIGlmIChPYmplY3Qua2V5cyhnZW8pLmxlbmd0aCA+IDApIHtcbiAgICAgIHJldHVybiB7IGdlbyB9XG4gICAgfVxuXG4gICAgY29uc3QgbmV0bGlmeSA9IHJlYWROZXRsaWZ5R2VvKHJlcXVlc3QpXG4gICAgcmV0dXJuIG5ldGxpZnkgPyB7IGdlbzogbmV0bGlmeSB9IDogdW5kZWZpbmVkXG4gIH1cbn0pXG5cbmNvbnN0IHJlYWRDb250ZW50TGVuZ3RoID0gKHZhbHVlOiB1bmtub3duKTogbnVtYmVyIHwgdW5kZWZpbmVkID0+IHtcbiAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ251bWJlcicgJiYgTnVtYmVyLmlzRmluaXRlKHZhbHVlKSAmJiB2YWx1ZSA+PSAwKSB7XG4gICAgcmV0dXJuIHZhbHVlXG4gIH1cbiAgaWYgKHR5cGVvZiB2YWx1ZSAhPT0gJ3N0cmluZycgfHwgdmFsdWUubGVuZ3RoID09PSAwKSB7XG4gICAgcmV0dXJuXG4gIH1cbiAgY29uc3QgcGFyc2VkID0gTnVtYmVyKHZhbHVlKVxuICByZXR1cm4gTnVtYmVyLmlzRmluaXRlKHBhcnNlZCkgJiYgcGFyc2VkID49IDAgPyBwYXJzZWQgOiB1bmRlZmluZWRcbn1cblxuY29uc3QgZmluZEhlYWRlciA9IChcbiAgaGVhZGVyczogUmVjb3JkPHN0cmluZywgdW5rbm93bj4sXG4gIG5hbWU6IHN0cmluZ1xuKTogdW5rbm93biA9PiB7XG4gIGZvciAoY29uc3QgW2tleSwgdmFsdWVdIG9mIE9iamVjdC5lbnRyaWVzKGhlYWRlcnMpKSB7XG4gICAgaWYgKGtleS50b0xvd2VyQ2FzZSgpID09PSBuYW1lKSB7XG4gICAgICByZXR1cm4gdmFsdWVcbiAgICB9XG4gIH1cbn1cblxuLyoqXG4gKiBSZWNvcmRzIHBheWxvYWQgc2l6ZXMgYXMgYHJlcXVlc3RCeXRlc2AgYW5kIGByZXNwb25zZUJ5dGVzYC5cbiAqXG4gKiBCb3RoIGNvbWUgZnJvbSBgY29udGVudC1sZW5ndGhgLCB3aGljaCBpcyB0aGUgb25seSBzaXplIHRoZSBwbHVnaW4gY2FuIHJlYWRcbiAqIHdpdGhvdXQgYnVmZmVyaW5nIGEgYm9keS4gQSBjaHVua2VkIG9yIHN0cmVhbWVkIHJlc3BvbnNlIGhhcyBub1xuICogYGNvbnRlbnQtbGVuZ3RoYCwgc28gYHJlc3BvbnNlQnl0ZXNgIGlzIG9taXR0ZWQgcmF0aGVyIHRoYW4gZ3Vlc3NlZC5cbiAqL1xuZXhwb3J0IGNvbnN0IHNpemVFbnJpY2hlciA9ICgpOiBFbnJpY2hlciA9PiAoe1xuICByZXF1ZXN0KHJlcXVlc3QpOiBFbnJpY2hlckZpZWxkcyB7XG4gICAgY29uc3QgYnl0ZXMgPSByZWFkQ29udGVudExlbmd0aChyZXF1ZXN0LmhlYWRlcnMuZ2V0KCdjb250ZW50LWxlbmd0aCcpKVxuICAgIHJldHVybiBieXRlcyA9PT0gdW5kZWZpbmVkID8gdW5kZWZpbmVkIDogeyByZXF1ZXN0Qnl0ZXM6IGJ5dGVzIH1cbiAgfSxcbiAgcmVzcG9uc2UoaW5wdXQ6IEVucmljaGVyUmVzcG9uc2VJbnB1dCk6IEVucmljaGVyRmllbGRzIHtcbiAgICBjb25zdCBieXRlcyA9IHJlYWRDb250ZW50TGVuZ3RoKGZpbmRIZWFkZXIoaW5wdXQuaGVhZGVycywgJ2NvbnRlbnQtbGVuZ3RoJykpXG4gICAgcmV0dXJuIGJ5dGVzID09PSB1bmRlZmluZWQgPyB1bmRlZmluZWQgOiB7IHJlc3BvbnNlQnl0ZXM6IGJ5dGVzIH1cbiAgfVxufSlcbiIKICBdLAogICJtYXBwaW5ncyI6ICJBQWlCQSxJQUFNLEVBQ0osd0dBQ0ksRUFBZ0IsSUFBSSxPQUFPLEVBQUUsRUFDN0IsRUFBZSxJQUFJLE9BQU8sRUFBRSxFQTZCM0IsSUFBTSxFQUFzQixDQUNqQyxFQUFzQyxDQUFDLElBQzFCLENBQ2IsSUFBTSxFQUFTLEVBQVEsUUFBVSxjQUVqQyxNQUFPLENBQ0wsT0FBTyxDQUFDLEVBQVMsQ0FDZixJQUFNLEVBQU0s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VUFBWSxFQUFLLFVBR3ZCLE9BQU8sT0FBTyxLQUFLLENBQUcsRUFBRSxPQUFTLEVBQUksRUFBTSxRQUl2QyxFQUFrQixJQUFJLElBQUksQ0FBQyxVQUFXLFFBQVEsQ0FBQyxFQUUvQyxFQUFzQixDQUMxQixFQUNBLElBQ1MsQ0FDVCxRQUFZLEVBQU8sS0FBWSxFQUFhLENBQzFDLElBQU0sRUFBUSxFQUFZLEVBQVMsQ0FBTyxFQUMxQyxHQUFJLENBQUMsRUFDSCxTQUVGLElBQU0sRUFBVSxFQUFrQixDQUFLLEVBQ3ZDLEdBQUksQ0FBQyxFQUFnQixJQUFJLENBQUssR0FBSyxFQUFlLEtBQUssQ0FBTyxFQUM1RCxFQUFJLEdBQVMsSUFLYixFQUF1QixDQUMzQixFQUNBLElBQ1MsQ0FDVCxRQUFZLEVBQU8sR0FBVSxFQUFLLE1BQVMsRUFBcUIsQ0FDOUQsSUFBTSxFQUFRLEVBQVksRUFBUyxDQUFPLEVBQ3BDLEVBQVMsSUFBVSxPQUFZLE9BQU8sSUFBTSxPQUFPLENBQUssRUFDOUQsR0FBSSxPQUFPLFNBQVMsQ0FBTSxHQUFLLEVBQVUsRUFBUSxFQUFLLENBQUcsRUFDdkQsRUFBSSxHQUFTLElBaUJOLEVBQWMsS0FBaUIsQ0FDMUMsT0FBTyxDQUFDLEVBQVMsQ0FDZixJQUFNLEVBQStCLENBQUMsRUFLdEMsR0FIQSxFQUFvQixFQUFTLENBQUcsRUFDaEMsRUFBcUIsRUFBUyxDQUFHLEVBRTdCLE9BQU8sS0FBSyxDQUFHLEVBQUUsT0FBUyxFQUM1QixNQUFPLENBQUUsS0FBSSxFQUdmLElBQU0sRUFBVSxFQUFlLENBQU8sRUFDdEMsT0FBTyxFQUFVLENBQUUsSUFBSyxDQUFRLEVBQUksT0FFeEMsR0FFTSxFQUFvQixDQUFDLElBQXVDLENBQ2hFLEdBQUksT0FBTyxJQUFVLFVBQVksT0FBTyxTQUFTLENBQUssR0FBSyxHQUFTLEVBQ2xFLE9BQU8sRUFFVCxHQUFJLE9BQU8sSUFBVSxVQUFZLEVBQU0sU0FBVyxFQUNoRCxPQUVGLElBQU0sRUFBUyxPQUFPLENBQUssRUFDM0IsT0FBTyxPQUFPLFNBQVMsQ0FBTSxHQUFLLEdBQVUsRUFBSSxFQUFTLFFBR3JELEVBQWEsQ0FDakIsRUFDQSxJQUNZLENBQ1osUUFBWSxFQUFLLEtBQVUsT0FBTyxRQUFRLENBQU8sRUFDL0MsR0FBSSxFQUFJLFlBQVksSUFBTSxFQUN4QixPQUFPLEdBWUEsRUFBZSxLQUFpQixDQUMzQyxPQUFPLENBQUMsRUFBeUIsQ0FDL0IsSUFBTSxFQUFRLEVBQWtCLEVBQVEsUUFBUSxJQUFJLGdCQUFnQixDQUFDLEVBQ3JFLE9BQU8sSUFBVSxPQUFZLE9BQVksQ0FBRSxhQUFjLENBQU0sR0FFakUsUUFBUSxDQUFDLEVBQThDLENBQ3JELElBQU0sRUFBUSxFQUFrQixFQUFXLEVBQU0sUUFBUyxnQkFBZ0IsQ0FBQyxFQUMzRSxPQUFPLElBQVUsT0FBWSxPQUFZLENBQUUsY0FBZSxDQUFNLEVBRXBFIiwKICAiZGVidWdJZCI6ICJCQzc3RkUzNUJGRDE5N0E4NjQ3NTZFMjE2NDc1NkUyMSIsCiAgIm5hbWVzIjogW10KfQ==
package/dist/hyperdx.d.ts CHANGED
@@ -86,7 +86,7 @@ interface HyperDXTransportOptions extends BatchTransportOptions {
86
86
  * attributes (`request.method`, `context.requestId`, …) so they are searchable
87
87
  * in the HyperDX UI.
88
88
  *
89
- * @throws When no API key is configured.
89
+ * @throws {Error} When no API key is configured.
90
90
  */
91
91
  declare const createHyperDXTransport: (options?: HyperDXTransportOptions) => AdapterTransport;
92
92
  export { createHyperDXTransport, HyperDXTransportOptions, AdapterTransport };
package/dist/hyperdx.js CHANGED
@@ -1,4 +1,4 @@
1
- import{a as V}from"./shared/Logixlysia-a59b921j.js";import{c as G,d as z,e as Q}from"./shared/Logixlysia-jvphdjgs.js";import"./shared/Logixlysia-nrt7tysy.js";var Z="https://in-otel.hyperdx.io",w=(j={})=>{let B=j.apiKey??z("HYPERDX_API_KEY");if(!B)throw Q("HyperDX","missing API key. Set HYPERDX_API_KEY or pass apiKey to createHyperDXTransport()");let Y=G(j.endpoint??z("HYPERDX_OTLP_ENDPOINT")??Z);return V({headers:{authorization:B},name:"HyperDX",options:j,resourceAttributes:j.resourceAttributes??{},serviceName:j.serviceName??z("HYPERDX_SERVICE_NAME")??z("OTEL_SERVICE_NAME")??"logixlysia",url:`${Y}/v1/logs`})};export{w as createHyperDXTransport};
1
+ import{a as V}from"./shared/Logixlysia-b7f18pfw.js";import{c as G,d as z,e as Q}from"./shared/Logixlysia-kwnc1c9b.js";import"./shared/Logixlysia-1ap5daz6.js";var Z="https://in-otel.hyperdx.io",w=(j={})=>{let B=j.apiKey??z("HYPERDX_API_KEY");if(!B)throw Q("HyperDX","missing API key. Set HYPERDX_API_KEY or pass apiKey to createHyperDXTransport()");let Y=G(j.endpoint??z("HYPERDX_OTLP_ENDPOINT")??Z);return V({headers:{authorization:B},name:"HyperDX",options:j,resourceAttributes:j.resourceAttributes??{},serviceName:j.serviceName??z("HYPERDX_SERVICE_NAME")??z("OTEL_SERVICE_NAME")??"logixlysia",url:`${Y}/v1/logs`})};export{w as createHyperDXTransport};
2
2
 
3
3
  //# debugId=F0CC0AB3AC4FB4E264756E2164756E21
4
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsic3JjL2h5cGVyZHgudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbCiAgICAiaW1wb3J0IHsgY3JlYXRlT3RscENvcmUgfSBmcm9tICcuL2FkYXB0ZXJzL290bHAtY29yZSdcbmltcG9ydCB7XG4gIHR5cGUgQWRhcHRlclRyYW5zcG9ydCxcbiAgdHlwZSBCYXRjaFRyYW5zcG9ydE9wdGlvbnMsXG4gIGVudlN0cmluZyxcbiAgc3RyaXBUcmFpbGluZ1NsYXNoZXMsXG4gIHRyYW5zcG9ydEVycm9yXG59IGZyb20gJy4vYWRhcHRlcnMvc2hhcmVkJ1xuXG5jb25zdCBERUZBVUxUX0VORFBPSU5UID0gJ2h0dHBzOi8vaW4tb3RlbC5oeXBlcmR4LmlvJ1xuXG5leHBvcnQgaW50ZXJmYWNlIEh5cGVyRFhUcmFuc3BvcnRPcHRpb25zIGV4dGVuZHMgQmF0Y2hUcmFuc3BvcnRPcHRpb25zIHtcbiAgLyoqXG4gICAqIEh5cGVyRFggaW5nZXN0aW9uIEFQSSBrZXksIHNlbnQgYXMgdGhlIGBhdXRob3JpemF0aW9uYCBoZWFkZXIuXG4gICAqIEZhbGxzIGJhY2sgdG8gdGhlIGBIWVBFUkRYX0FQSV9LRVlgIGVudmlyb25tZW50IHZhcmlhYmxlLlxuICAgKi9cbiAgYXBpS2V5Pzogc3RyaW5nXG4gIC8qKlxuICAgKiBPVExQIEhUVFAgYmFzZSBVUkwg4oCUIHRoZSBhZGFwdGVyIGFwcGVuZHMgYC92MS9sb2dzYC4gRm9yIHNlbGYtaG9zdGVkXG4gICAqIGNvbGxlY3RvcnMgcGFzcyB0aGUgYmFzZSBVUkwgb25seSAocG9ydCA0MzE4IGJ5IGRlZmF1bHQpLlxuICAgKiBGYWxscyBiYWNrIHRvIGBIWVBFUkRYX09UTFBfRU5EUE9JTlRgLlxuICAgKiBAZGVmYXVsdCAnaHR0cHM6Ly9pbi1vdGVsLmh5cGVyZHguaW8nXG4gICAqL1xuICBlbmRwb2ludD86IHN0cmluZ1xuICAvKiogRXh0cmEgT1RMUCByZXNvdXJjZSBhdHRyaWJ1dGVzIG1lcmdlZCBuZXh0IHRvIGBzZXJ2aWNlLm5hbWVgLiAqL1xuICByZXNvdXJjZUF0dHJpYnV0ZXM/OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+XG4gIC8qKlxuICAgKiBWYWx1ZSBvZiB0aGUgYHNlcnZpY2UubmFtZWAgcmVzb3VyY2UgYXR0cmlidXRlLlxuICAgKiBGYWxscyBiYWNrIHRvIGBIWVBFUkRYX1NFUlZJQ0VfTkFNRWAsIHRoZW4gYE9URUxfU0VSVklDRV9OQU1FYC5cbiAgICogQGRlZmF1bHQgJ2xvZ2l4bHlzaWEnXG4gICAqL1xuICBzZXJ2aWNlTmFtZT86IHN0cmluZ1xufVxuXG4vKipcbiAqIENyZWF0ZXMgYSB0cmFuc3BvcnQgdGhhdCBzaGlwcyBsb2dzIHRvIEh5cGVyRFggYXMgT1RMUCBKU09OXG4gKiAoYEV4cG9ydExvZ3NTZXJ2aWNlUmVxdWVzdGApIG92ZXIgSFRUUC4gTWV0YSBmaWVsZHMgYmVjb21lIGRvdC1ub3RhdGlvbiBsb2dcbiAqIGF0dHJpYnV0ZXMgKGByZXF1ZXN0Lm1ldGhvZGAsIGBjb250ZXh0LnJlcXVlc3RJZGAsIOKApikgc28gdGhleSBhcmUgc2VhcmNoYWJsZVxuICogaW4gdGhlIEh5cGVyRFggVUkuXG4gKlxuICogQHRocm93cyBXaGVuIG5vIEFQSSBrZXkgaXMgY29uZmlndXJlZC5cbiAqL1xuZXhwb3J0IGNvbnN0IGNyZWF0ZUh5cGVyRFhUcmFuc3BvcnQgPSAoXG4gIG9wdGlvbnM6IEh5cGVyRFhUcmFuc3BvcnRPcHRpb25zID0ge31cbik6IEFkYXB0ZXJUcmFuc3BvcnQgPT4ge1xuICBjb25zdCBhcGlLZXkgPSBvcHRpb25zLmFwaUtleSA/PyBlbnZTdHJpbmcoJ0hZUEVSRFhfQVBJX0tFWScpXG4gIGlmICghYXBpS2V5KSB7XG4gICAgdGhyb3cgdHJhbnNwb3J0RXJyb3IoXG4gICAgICAnSHlwZXJEWCcsXG4gICAgICAnbWlzc2luZyBBUEkga2V5LiBTZXQgSFlQRVJEWF9BUElfS0VZIG9yIHBhc3MgYXBpS2V5IHRvIGNyZWF0ZUh5cGVyRFhUcmFuc3BvcnQoKSdcbiAgICApXG4gIH1cblxuICBjb25zdCBlbmRwb2ludCA9IHN0cmlwVHJhaWxpbmdTbGFzaGVzKFxuICAgIG9wdGlvbnMuZW5kcG9pbnQgPz8gZW52U3RyaW5nKCdIWVBFUkRYX09UTFBfRU5EUE9JTlQnKSA/PyBERUZBVUxUX0VORFBPSU5UXG4gIClcblxuICByZXR1cm4gY3JlYXRlT3RscENvcmUoe1xuICAgIGhlYWRlcnM6IHsgYXV0aG9yaXphdGlvbjogYXBpS2V5IH0sXG4gICAgbmFtZTogJ0h5cGVyRFgnLFxuICAgIG9wdGlvbnMsXG4gICAgcmVzb3VyY2VBdHRyaWJ1dGVzOiBvcHRpb25zLnJlc291cmNlQXR0cmlidXRlcyA/PyB7fSxcbiAgICBzZXJ2aWNlTmFtZTpcbiAgICAgIG9wdGlvbnMuc2VydmljZU5hbWUgPz9cbiAgICAgIGVudlN0cmluZygnSFlQRVJEWF9TRVJWSUNFX05BTUUnKSA/P1xuICAgICAgZW52U3RyaW5nKCdPVEVMX1NFUlZJQ0VfTkFNRScpID8/XG4gICAgICAnbG9naXhseXNpYScsXG4gICAgdXJsOiBgJHtlbmRwb2ludH0vdjEvbG9nc2BcbiAgfSlcbn1cblxuZXhwb3J0IHR5cGUgeyBBZGFwdGVyVHJhbnNwb3J0IH0gZnJvbSAnLi9hZGFwdGVycy9zaGFyZWQnXG4iCiAgXSwKICAibWFwcGluZ3MiOiAia0pBU0EsVUFBTSxRQUFtQiw2QkFpQ1osRUFBeUIsQ0FDcEMsRUFBbUMsQ0FBQyxJQUNmLENBQ3JCLElBQU0sRUFBUyxFQUFRLFFBQVUsRUFBVSxpQkFBaUIsRUFDNUQsR0FBSSxDQUFDLEVBQ0gsTUFBTSxFQUNKLFVBQ0EsaUZBQ0YsRUFHRixJQUFNLEVBQVcsRUFDZixFQUFRLFVBQVksRUFBVSx1QkFBdUIsR0FBSyxDQUM1RCxFQUVBLE9BQU8sRUFBZSxDQUNwQixRQUFTLENBQUUsY0FBZSxDQUFPLEVBQ2pDLEtBQU0sVUFDTixVQUNBLG1CQUFvQixFQUFRLG9CQUFzQixDQUFDLEVBQ25ELFlBQ0UsRUFBUSxhQUNSLEVBQVUsc0JBQXNCLEdBQ2hDLEVBQVUsbUJBQW1CLEdBQzdCLGFBQ0YsSUFBSyxHQUFHLFdBQ1YsQ0FBQyIsCiAgImRlYnVnSWQiOiAiRjBDQzBBQjNBQzRGQjRFMjY0NzU2RTIxNjQ3NTZFMjEiLAogICJuYW1lcyI6IFtdCn0=
4
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsic3JjL2h5cGVyZHgudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbCiAgICAiaW1wb3J0IHsgY3JlYXRlT3RscENvcmUgfSBmcm9tICcuL2FkYXB0ZXJzL290bHAtY29yZSdcbmltcG9ydCB7XG4gIGVudlN0cmluZyxcbiAgc3RyaXBUcmFpbGluZ1NsYXNoZXMsXG4gIHRyYW5zcG9ydEVycm9yXG59IGZyb20gJy4vYWRhcHRlcnMvc2hhcmVkJ1xuaW1wb3J0IHR5cGUgeyBBZGFwdGVyVHJhbnNwb3J0LCBCYXRjaFRyYW5zcG9ydE9wdGlvbnMgfSBmcm9tICcuL2FkYXB0ZXJzL3NoYXJlZCdcblxuY29uc3QgREVGQVVMVF9FTkRQT0lOVCA9ICdodHRwczovL2luLW90ZWwuaHlwZXJkeC5pbydcblxuZXhwb3J0IGludGVyZmFjZSBIeXBlckRYVHJhbnNwb3J0T3B0aW9ucyBleHRlbmRzIEJhdGNoVHJhbnNwb3J0T3B0aW9ucyB7XG4gIC8qKlxuICAgKiBIeXBlckRYIGluZ2VzdGlvbiBBUEkga2V5LCBzZW50IGFzIHRoZSBgYXV0aG9yaXphdGlvbmAgaGVhZGVyLlxuICAgKiBGYWxscyBiYWNrIHRvIHRoZSBgSFlQRVJEWF9BUElfS0VZYCBlbnZpcm9ubWVudCB2YXJpYWJsZS5cbiAgICovXG4gIGFwaUtleT86IHN0cmluZ1xuICAvKipcbiAgICogT1RMUCBIVFRQIGJhc2UgVVJMIOKAlCB0aGUgYWRhcHRlciBhcHBlbmRzIGAvdjEvbG9nc2AuIEZvciBzZWxmLWhvc3RlZFxuICAgKiBjb2xsZWN0b3JzIHBhc3MgdGhlIGJhc2UgVVJMIG9ubHkgKHBvcnQgNDMxOCBieSBkZWZhdWx0KS5cbiAgICogRmFsbHMgYmFjayB0byBgSFlQRVJEWF9PVExQX0VORFBPSU5UYC5cbiAgICogQGRlZmF1bHQgJ2h0dHBzOi8vaW4tb3RlbC5oeXBlcmR4LmlvJ1xuICAgKi9cbiAgZW5kcG9pbnQ/OiBzdHJpbmdcbiAgLyoqIEV4dHJhIE9UTFAgcmVzb3VyY2UgYXR0cmlidXRlcyBtZXJnZWQgbmV4dCB0byBgc2VydmljZS5uYW1lYC4gKi9cbiAgcmVzb3VyY2VBdHRyaWJ1dGVzPzogUmVjb3JkPHN0cmluZywgc3RyaW5nPlxuICAvKipcbiAgICogVmFsdWUgb2YgdGhlIGBzZXJ2aWNlLm5hbWVgIHJlc291cmNlIGF0dHJpYnV0ZS5cbiAgICogRmFsbHMgYmFjayB0byBgSFlQRVJEWF9TRVJWSUNFX05BTUVgLCB0aGVuIGBPVEVMX1NFUlZJQ0VfTkFNRWAuXG4gICAqIEBkZWZhdWx0ICdsb2dpeGx5c2lhJ1xuICAgKi9cbiAgc2VydmljZU5hbWU/OiBzdHJpbmdcbn1cblxuLyoqXG4gKiBDcmVhdGVzIGEgdHJhbnNwb3J0IHRoYXQgc2hpcHMgbG9ncyB0byBIeXBlckRYIGFzIE9UTFAgSlNPTlxuICogKGBFeHBvcnRMb2dzU2VydmljZVJlcXVlc3RgKSBvdmVyIEhUVFAuIE1ldGEgZmllbGRzIGJlY29tZSBkb3Qtbm90YXRpb24gbG9nXG4gKiBhdHRyaWJ1dGVzIChgcmVxdWVzdC5tZXRob2RgLCBgY29udGV4dC5yZXF1ZXN0SWRgLCDigKYpIHNvIHRoZXkgYXJlIHNlYXJjaGFibGVcbiAqIGluIHRoZSBIeXBlckRYIFVJLlxuICpcbiAqIEB0aHJvd3Mge0Vycm9yfSBXaGVuIG5vIEFQSSBrZXkgaXMgY29uZmlndXJlZC5cbiAqL1xuZXhwb3J0IGNvbnN0IGNyZWF0ZUh5cGVyRFhUcmFuc3BvcnQgPSAoXG4gIG9wdGlvbnM6IEh5cGVyRFhUcmFuc3BvcnRPcHRpb25zID0ge31cbik6IEFkYXB0ZXJUcmFuc3BvcnQgPT4ge1xuICBjb25zdCBhcGlLZXkgPSBvcHRpb25zLmFwaUtleSA/PyBlbnZTdHJpbmcoJ0hZUEVSRFhfQVBJX0tFWScpXG4gIGlmICghYXBpS2V5KSB7XG4gICAgdGhyb3cgdHJhbnNwb3J0RXJyb3IoXG4gICAgICAnSHlwZXJEWCcsXG4gICAgICAnbWlzc2luZyBBUEkga2V5LiBTZXQgSFlQRVJEWF9BUElfS0VZIG9yIHBhc3MgYXBpS2V5IHRvIGNyZWF0ZUh5cGVyRFhUcmFuc3BvcnQoKSdcbiAgICApXG4gIH1cblxuICBjb25zdCBlbmRwb2ludCA9IHN0cmlwVHJhaWxpbmdTbGFzaGVzKFxuICAgIG9wdGlvbnMuZW5kcG9pbnQgPz8gZW52U3RyaW5nKCdIWVBFUkRYX09UTFBfRU5EUE9JTlQnKSA/PyBERUZBVUxUX0VORFBPSU5UXG4gIClcblxuICByZXR1cm4gY3JlYXRlT3RscENvcmUoe1xuICAgIGhlYWRlcnM6IHsgYXV0aG9yaXphdGlvbjogYXBpS2V5IH0sXG4gICAgbmFtZTogJ0h5cGVyRFgnLFxuICAgIG9wdGlvbnMsXG4gICAgcmVzb3VyY2VBdHRyaWJ1dGVzOiBvcHRpb25zLnJlc291cmNlQXR0cmlidXRlcyA/PyB7fSxcbiAgICBzZXJ2aWNlTmFtZTpcbiAgICAgIG9wdGlvbnMuc2VydmljZU5hbWUgPz9cbiAgICAgIGVudlN0cmluZygnSFlQRVJEWF9TRVJWSUNFX05BTUUnKSA/P1xuICAgICAgZW52U3RyaW5nKCdPVEVMX1NFUlZJQ0VfTkFNRScpID8/XG4gICAgICAnbG9naXhseXNpYScsXG4gICAgdXJsOiBgJHtlbmRwb2ludH0vdjEvbG9nc2BcbiAgfSlcbn1cblxuZXhwb3J0IHR5cGUgeyBBZGFwdGVyVHJhbnNwb3J0IH0gZnJvbSAnLi9hZGFwdGVycy9zaGFyZWQnXG4iCiAgXSwKICAibWFwcGluZ3MiOiAia0pBUUEsVUFBTSxRQUFtQiw2QkFpQ1osRUFBeUIsQ0FDcEMsRUFBbUMsQ0FBQyxJQUNmLENBQ3JCLElBQU0sRUFBUyxFQUFRLFFBQVUsRUFBVSxpQkFBaUIsRUFDNUQsR0FBSSxDQUFDLEVBQ0gsTUFBTSxFQUNKLFVBQ0EsaUZBQ0YsRUFHRixJQUFNLEVBQVcsRUFDZixFQUFRLFVBQVksRUFBVSx1QkFBdUIsR0FBSyxDQUM1RCxFQUVBLE9BQU8sRUFBZSxDQUNwQixRQUFTLENBQUUsY0FBZSxDQUFPLEVBQ2pDLEtBQU0sVUFDTixVQUNBLG1CQUFvQixFQUFRLG9CQUFzQixDQUFDLEVBQ25ELFlBQ0UsRUFBUSxhQUNSLEVBQVUsc0JBQXNCLEdBQ2hDLEVBQVUsbUJBQW1CLEdBQzdCLGFBQ0YsSUFBSyxHQUFHLFdBQ1YsQ0FBQyIsCiAgImRlYnVnSWQiOiAiRjBDQzBBQjNBQzRGQjRFMjY0NzU2RTIxNjQ3NTZFMjEiLAogICJuYW1lcyI6IFtdCn0=