@dx-do/cli 5.2.49 → 5.2.50
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/README.md +24 -6
- package/dist-node/01-discover-vertices.tas-pwngv2fz.md +31 -0
- package/dist-node/01-discover-vertices.tas.data-store-svjfrm1f.json5 +29 -0
- package/dist-node/01-discover-vertices.tas.data-store-tmd-w650nfzt.json +4 -0
- package/dist-node/02-discover-services.tas-867m0m88.md +30 -0
- package/dist-node/02-discover-services.tas.data-store-jz0gx5vn.json5 +40 -0
- package/dist-node/02-discover-services.tas.data-store-tmd-eq264m6y.json +4 -0
- package/dist-node/03-discover-sources.nassql-4tgp9jvv.md +34 -0
- package/dist-node/03-discover-sources.nassql.data-store-by6sqk23.json5 +63 -0
- package/dist-node/03-discover-sources.nassql.data-store-tmd-n3gy57wm.json +4 -0
- package/dist-node/04-discover-metadata-columns.nassql-vhzb0mrq.md +26 -0
- package/dist-node/04-discover-metadata-columns.nassql.data-store-c9zr7p0q.json5 +35 -0
- package/dist-node/04-discover-metadata-columns.nassql.data-store-tmd-4ygrjvty.json +4 -0
- package/dist-node/10-filter-attribute-matches.tas-tafqmtw1.md +33 -0
- package/dist-node/10-filter-attribute-matches.tas.data-store-tmd-m2sendv0.json +4 -0
- package/dist-node/10-filter-attribute-matches.tas.data-store-whdc6vbc.json5 +35 -0
- package/dist-node/11-filter-and-compose.tas-m8856738.md +29 -0
- package/dist-node/11-filter-and-compose.tas.data-store-dh5meyk8.json5 +56 -0
- package/dist-node/11-filter-and-compose.tas.data-store-tmd-mfn8a16f.json +4 -0
- package/dist-node/12-filter-or-not.tas-21zab96s.md +35 -0
- package/dist-node/12-filter-or-not.tas.data-store-7vjr4fnd.json5 +83 -0
- package/dist-node/12-filter-or-not.tas.data-store-tmd-am9smwe5.json +4 -0
- package/dist-node/13-filter-layer.tas-r1ff5anv.md +29 -0
- package/dist-node/13-filter-layer.tas.data-store-5mneyz77.json5 +30 -0
- package/dist-node/13-filter-layer.tas.data-store-tmd-9qmhyfzr.json +4 -0
- package/dist-node/14-filter-traverse.tas-da9jene0.md +38 -0
- package/dist-node/14-filter-traverse.tas.data-store-p0vxtfvj.json5 +63 -0
- package/dist-node/14-filter-traverse.tas.data-store-tmd-5hepg5wf.json +4 -0
- package/dist-node/15-filter-take-vertices-edges.tas-m160qc7z.md +35 -0
- package/dist-node/15-filter-take-vertices-edges.tas.data-store-drmcme43.json5 +46 -0
- package/dist-node/15-filter-take-vertices-edges.tas.data-store-tmd-8fewsp5s.json +4 -0
- package/dist-node/16-filter-projection.tas-dh39mcx8.md +31 -0
- package/dist-node/16-filter-projection.tas.data-store-tmd-3r8anggx.json +4 -0
- package/dist-node/16-filter-projection.tas.data-store-xjbdry1x.json5 +36 -0
- package/dist-node/17-filter-lucene.tas-gyvtzwaa.md +29 -0
- package/dist-node/17-filter-lucene.tas.data-store-1knw6srt.json5 +39 -0
- package/dist-node/17-filter-lucene.tas.data-store-tmd-5cf3tygg.json +5 -0
- package/dist-node/18-filter-variable-reuse.tas-89fq0y6x.md +46 -0
- package/dist-node/18-filter-variable-reuse.tas.data-store-by35113t.json5 +55 -0
- package/dist-node/18-filter-variable-reuse.tas.data-store-tmd-ak7aprgk.json +4 -0
- package/dist-node/19-filter-order-statefilter.tas-hm3z71qj.md +36 -0
- package/dist-node/19-filter-order-statefilter.tas.data-store-ra9hj1rz.json5 +51 -0
- package/dist-node/19-filter-order-statefilter.tas.data-store-tmd-wqer9xy2.json +4 -0
- package/dist-node/20-nassql-from-metadata-basic.nassql-szr2xax1.md +28 -0
- package/dist-node/20-nassql-from-metadata-basic.nassql.data-store-tmd-c7drxs1m.json +4 -0
- package/dist-node/20-nassql-from-metadata-basic.nassql.data-store-zdf1gp1v.json5 +42 -0
- package/dist-node/21-nassql-from-metadata-regex.nassql-78jnsn3e.md +30 -0
- package/dist-node/21-nassql-from-metadata-regex.nassql.data-store-ckzsv7h1.json5 +53 -0
- package/dist-node/21-nassql-from-metadata-regex.nassql.data-store-tmd-zgr6r9my.json +4 -0
- package/dist-node/22-nassql-from-topology.nassql-a71qw9r0.md +42 -0
- package/dist-node/22-nassql-from-topology.nassql.data-store-81m23nge.json5 +58 -0
- package/dist-node/22-nassql-from-topology.nassql.data-store-tmd-vhpjy6c7.json +4 -0
- package/dist-node/23-nassql-join-topology-metadata.nassql-hywxhcg2.md +35 -0
- package/dist-node/23-nassql-join-topology-metadata.nassql.data-store-da7q90n2.json5 +76 -0
- package/dist-node/23-nassql-join-topology-metadata.nassql.data-store-tmd-rr8wt9qa.json +4 -0
- package/dist-node/24-nassql-from-data-window-mean.nassql-q6qsgdxw.md +33 -0
- package/dist-node/24-nassql-from-data-window-mean.nassql.data-store-j7xmg7fc.json5 +81 -0
- package/dist-node/24-nassql-from-data-window-mean.nassql.data-store-tmd-qgzz2f7v.json +4 -0
- package/dist-node/25-nassql-group-order-top.nassql-awgnwn3r.md +30 -0
- package/dist-node/25-nassql-group-order-top.nassql.data-store-cmrn300b.json5 +48 -0
- package/dist-node/25-nassql-group-order-top.nassql.data-store-tmd-7xpqeh7c.json +4 -0
- package/dist-node/26-nassql-filter-predicate.nassql-2t27h5ev.md +41 -0
- package/dist-node/26-nassql-filter-predicate.nassql.data-store-k2rgp609.json5 +59 -0
- package/dist-node/26-nassql-filter-predicate.nassql.data-store-tmd-m4dddgwm.json +4 -0
- package/dist-node/27-nassql-distinct-keep.nassql-6z55dvk3.md +24 -0
- package/dist-node/27-nassql-distinct-keep.nassql.data-store-mrx00ys5.json5 +52 -0
- package/dist-node/27-nassql-distinct-keep.nassql.data-store-tmd-0p9hy42g.json +4 -0
- package/dist-node/28-nassql-format-time.nassql-6wraqgdk.md +30 -0
- package/dist-node/28-nassql-format-time.nassql.data-store-tmd-bbbqhz1x.json +4 -0
- package/dist-node/28-nassql-format-time.nassql.data-store-tvy8y2cs.json5 +59 -0
- package/dist-node/29-nassql-describe-log.nassql-t9vnxeb0.md +31 -0
- package/dist-node/29-nassql-describe-log.nassql.data-store-tmd-q4mtczy8.json +4 -0
- package/dist-node/29-nassql-describe-log.nassql.data-store-x16y4crx.json5 +51 -0
- package/dist-node/30-nassql-map-string.nassql-f2tdknzs.md +30 -0
- package/dist-node/30-nassql-map-string.nassql.data-store-t8ahcabn.json5 +53 -0
- package/dist-node/30-nassql-map-string.nassql.data-store-tmd-a6xq0bdx.json +4 -0
- package/dist-node/31-nassql-join-data-sum.nassql-p16y3xk6.md +26 -0
- package/dist-node/31-nassql-join-data-sum.nassql.data-store-dje7wm6v.json5 +64 -0
- package/dist-node/31-nassql-join-data-sum.nassql.data-store-tmd-c1pyx1qw.json +4 -0
- package/dist-node/32-nassql-bottom-aggregation.nassql-hpgfn77p.md +26 -0
- package/dist-node/32-nassql-bottom-aggregation.nassql.data-store-tmd-p0ssj1vc.json +4 -0
- package/dist-node/32-nassql-bottom-aggregation.nassql.data-store-v9580caa.json5 +43 -0
- package/dist-node/33-nassql-cross-domain-pipeline.nassql-fm0ynphf.md +45 -0
- package/dist-node/33-nassql-cross-domain-pipeline.nassql.data-store-tmd-18881drs.json +4 -0
- package/dist-node/33-nassql-cross-domain-pipeline.nassql.data-store-vqs9hkx4.json5 +79 -0
- package/dist-node/3rdpartylicenses-hx59bakt.txt +885 -0
- package/dist-node/50-discover-custom-layers.tas-2hvvpkzw.md +66 -0
- package/dist-node/50-discover-custom-layers.tas.data-store-h85zgna9.json5 +36 -0
- package/dist-node/50-discover-custom-layers.tas.data-store-tmd-hagn9eak.json +4 -0
- package/dist-node/51-collect-counts-everything.tas-nz0ksgdc.md +46 -0
- package/dist-node/51-collect-counts-everything.tas.data-store-eypcjah8.json5 +48 -0
- package/dist-node/51-collect-counts-everything.tas.data-store-tmd-4pcj94s9.json +4 -0
- package/dist-node/52-collect-counts-bulk.tas-eerw4z8s.md +54 -0
- package/dist-node/52-collect-counts-bulk.tas.data-store-scedtw1m.json5 +65 -0
- package/dist-node/52-collect-counts-bulk.tas.data-store-tmd-csyzj189.json +4 -0
- package/dist-node/53-collect-attributes-by-type.tas-cw0285hx.md +71 -0
- package/dist-node/53-collect-attributes-by-type.tas.data-store-fvjge4yr.json5 +65 -0
- package/dist-node/53-collect-attributes-by-type.tas.data-store-tmd-274qrd8f.json +4 -0
- package/dist-node/README-ghxecaz0.md +84 -0
- package/dist-node/SKILL-1xn7r9nt.md +104 -0
- package/dist-node/agent-25q752kd.md +55 -0
- package/dist-node/agent_connection_and_status-0dq7zkpc.md +62 -0
- package/dist-node/agent_source_collector-6s06n3rs.md +40 -0
- package/dist-node/agentic-mcp-rycd2gh8.md +140 -0
- package/dist-node/application-dfva8tz0.md +48 -0
- package/dist-node/application-m0q2vaxj.md +74 -0
- package/dist-node/attribute_resource_metric_name-pxrceab5.md +56 -0
- package/dist-node/browseragent-snippet.template-9megjp8a.html +12 -0
- package/dist-node/bulkvertexpatch-1a4qy5vb.md +78 -0
- package/dist-node/bundle.pbd-38r15kyd.template +13 -0
- package/dist-node/bundle.profile-1wpzpt3d.template +2 -0
- package/dist-node/business_transaction-mbqz5ex9.md +61 -0
- package/dist-node/chunk-4I3HBO6U-2ebgf7kh.js +127 -0
- package/dist-node/chunk-4PMCLJMS-0mqvr4m4.js +1 -0
- package/dist-node/chunk-5VSFINOX-ewzpx7wh.js +5 -0
- package/dist-node/chunk-72HYG3XZ-kf7hy4vs.js +3625 -0
- package/dist-node/chunk-JRM4BLOM-rg32z8w4.js +1 -0
- package/dist-node/chunk-Q2JA73UH-akkb8bh3.js +14 -0
- package/dist-node/chunk-RNMHSXZF-pdwasrg7.js +1358 -0
- package/dist-node/chunk-VV2FJEMA-3rvtkmga.js +321 -0
- package/dist-node/chunk-YVD3UK5I-9pxr1jka.js +695 -0
- package/dist-node/configuration-1vczsdex.md +104 -0
- package/dist-node/dashboards-x0xddksy.md +17 -0
- package/dist-node/database_or_inferred-8vqf5gyr.md +75 -0
- package/dist-node/default-licensing-config-0p879qpb.template +122 -0
- package/dist-node/dependency-3b0neg5x.md +40 -0
- package/dist-node/description.md-qwc2bj9r.template +30 -0
- package/dist-node/discovery-flow-fw79kbx4.md +116 -0
- package/dist-node/dxi_service-13prnpd5.md +59 -0
- package/dist-node/entity-relationships-cevz61kj.md +142 -0
- package/dist-node/gotchas-8ab64kcd.md +389 -0
- package/dist-node/host-es6fxtgx.md +46 -0
- package/dist-node/host-j3qqrm5f.md +55 -0
- package/dist-node/index-104hyb1m.html +13 -0
- package/dist-node/index-7fp2dfas.json +178 -0
- package/dist-node/index-g3hh5wez.json +403 -0
- package/dist-node/index-mbzg9rhc.json +270 -0
- package/dist-node/index-qffdhwgm.json +2479 -0
- package/dist-node/inferred-w998vfq1.md +41 -0
- package/dist-node/installInstructions.md-k9ghf3dr.template +21 -0
- package/dist-node/inventorize-xc9h9bjr.md +34 -0
- package/dist-node/investigation-planning-6kcm01h9.md +149 -0
- package/dist-node/investigator-flow-jc2s0n46.md +186 -0
- package/dist-node/k8s_deployment_and_namespace-69c29152.md +88 -0
- package/dist-node/k8s_pod_and_container-9h4v6cmj.md +64 -0
- package/dist-node/main-SGLYO5YX-ht69eb0y.js +13 -0
- package/dist-node/main.js +397415 -0
- package/dist-node/marketplace-srdmzxkj.json +15 -0
- package/dist-node/metric-source-names-6cbczyks.md +75 -0
- package/dist-node/metrics-grounding-2h4kkbe3.md +130 -0
- package/dist-node/mm-cookbook-23jpw721.md +231 -0
- package/dist-node/mm-quickstart-x2adfc16.md +106 -0
- package/dist-node/nassql-cookbook-n8kc0mff.md +812 -0
- package/dist-node/nassql-quickstart-090e0yex.md +149 -0
- package/dist-node/plugin-c3bavxvf.json +18 -0
- package/dist-node/polyfills-A7ZF72EO-mp884a0b.js +2 -0
- package/dist-node/prerendered-routes-523d8gat.json +3 -0
- package/dist-node/primeicons-4GST5W3O-jac3wxrf.woff2 +0 -0
- package/dist-node/primeicons-DHQU4SEP-760n99pp.svg +345 -0
- package/dist-node/primeicons-GEFHGEHP-rc4kaa3b.ttf +0 -0
- package/dist-node/primeicons-P53SE5CV-4saz3d5j.woff +0 -0
- package/dist-node/primeicons-RSSEDYLY-4d4vbd67.eot +0 -0
- package/dist-node/query-vs-analysis-separation-sag1ezcq.md +97 -0
- package/dist-node/run-query-vs-run-partial-6138pc94.md +80 -0
- package/dist-node/service-5pz5nhzf.md +133 -0
- package/dist-node/service-hierarchies-87a4ynpj.md +178 -0
- package/dist-node/service-k4f5mkbq.md +51 -0
- package/dist-node/servlet_or_frontend-1kjcb7ar.md +76 -0
- package/dist-node/src-apm-mfnsq6vw.svg +4 -0
- package/dist-node/src-axa-nn28yqmj.svg +4 -0
- package/dist-node/src-dxim-fv7ne4qa.svg +4 -0
- package/dist-node/styles-23VUPSCU-9ehggc1f.css +1 -0
- package/dist-node/tas-cookbook-0y4826rp.md +693 -0
- package/dist-node/tas-quickstart-wgcvwffc.md +138 -0
- package/dist-node/time-format-0595g01j.md +41 -0
- package/dist-node/toggles.pbd-9wscbmng.template +2 -0
- package/dist-node/type-host-agbhmn6v.svg +6 -0
- package/dist-node/type-metric-p9b90bpx.svg +4 -0
- package/dist-node/type-service-k7f1x71k.svg +4 -0
- package/dist-node/ui-0b5grqrg.md +113 -0
- package/dist-node/universe-b9nhf325.md +47 -0
- package/dist-node/universe-fzpwzvxr.md +91 -0
- package/dist-node/universes-and-scopes-1cb9pfk7.md +105 -0
- package/dist-node/vertex_entity_node-mm3yp9d0.md +31 -0
- package/package.json +1 -1
|
@@ -0,0 +1,149 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: nassql-quickstart
|
|
3
|
+
title: NASSQL quickstart — author a metrics pipeline
|
|
4
|
+
applies_to: nassql
|
|
5
|
+
tags: [getting-started, authoring]
|
|
6
|
+
related: [tas-quickstart, mm-quickstart, gotchas]
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# NASSQL quickstart
|
|
10
|
+
|
|
11
|
+
NASSQL is a **vertical pipeline of operations** on metric data. Returns a
|
|
12
|
+
tabular `[header_row, ...data_rows]` array. Steps execute top-to-bottom —
|
|
13
|
+
each step's output is the next step's input.
|
|
14
|
+
|
|
15
|
+
## Source-op decision (READ FIRST)
|
|
16
|
+
|
|
17
|
+
Every NASSQL pipeline starts with a source op. Picking the wrong one is the most-common NASSQL mistake — they have similar-sounding names and very different semantics:
|
|
18
|
+
|
|
19
|
+
| Source op | Returns | Use when the question is… |
|
|
20
|
+
|---|---|---|
|
|
21
|
+
| **`FROM_METADATA`** | one row per metric **DEFINITION** | "what metrics exist", "how many metrics per source", "is this metric being collected" — about metric *catalog* shape |
|
|
22
|
+
| **`FROM`** | one row per metric **DATAPOINT** (value × timestamp) | "what was the value", "trend over time", "average / max / percentile" — about actual *data* |
|
|
23
|
+
| **`FROM_TOPOLOGY`** | one row per **VERTEX** in the topology graph | "list entities", "group hosts by region", "count k8s pods" — about *entities* |
|
|
24
|
+
| `FROM_DATA` | datapoints by metric ID | when you already have specific metric IDs (rare; usually FROM is what you want) |
|
|
25
|
+
| `FROM_TABLE` | named flat tables | out-of-band tabular data |
|
|
26
|
+
|
|
27
|
+
The `FROM_METADATA` vs `FROM` confusion is the most-confused single distinction in DXO2: same metric, totally different rows. `FROM_METADATA` says "this metric exists"; `FROM` says "here's what it measured." See `cookbooks/discovery-flow` for how this fits into the broader discovery hierarchy.
|
|
28
|
+
|
|
29
|
+
## Schema landmines (READ FIRST)
|
|
30
|
+
|
|
31
|
+
1. **`KEEP` must be the LAST op.** Anything after KEEP returns HTTP 400. Put projection at the end of the pipeline; do GROUP / FILTER / sorting before.
|
|
32
|
+
2. **`TOP` and `BOTTOM` use `n`, not `count`.** `{op:"TOP", column:"x", n:10}` — schema field is exactly `n`. The intuitive `count: 10` parses but rejects.
|
|
33
|
+
3. **`GROUP`, `ORDER`, `KEEP` cannot have empty `columns`.** Schema enforces `.min(1)`. Same for `FILTER`'s `AND`/`OR` `spec` arrays.
|
|
34
|
+
4. **`JOIN_TOPOLOGY` does NOT take a `querySpecifier`** — it joins by pipeline data via `externalIdColumn`, not by a TAS specifier. Surprising compared to JOIN_METADATA.
|
|
35
|
+
5. **`FROM_TOPOLOGY.querySpecifier.filter` is a TAS FILTER, not a full TAS QUERY.** No nested `limit`/`projection`/etc. — those belong on the outer NASSQL envelope.
|
|
36
|
+
6. **`vertex.attr.<name>` is the column-name convention** for FROM_TOPOLOGY output, not bare attribute names. Other column conventions: `metric.source`, `metric.path`, `data.value`, `data.timestamp`, `time.bucket`.
|
|
37
|
+
7. **`metric.source` REGEX needs the full `<domain>|<host>|<bus>|<role>` shape.** Naive `.*<host>.*` patterns return zero rows because the source string starts with a domain prefix (`SuperDomain|...`) and the pipe separators are regex meta-characters. See `cookbooks/metric-source-names` for canonical patterns + the empirical-discovery probe.
|
|
38
|
+
8. **`alias` is reference-scope, NOT a column-prefix.** `FROM { alias: "health" }` does not produce `health.data.value` in `rows[0]` — that prefix only resolves in expression contexts (AGG inner `column`, FILTER predicates, MAP `fn`, SCRIPT references). Project bare names in `KEEP`. See `cookbooks/gotchas`.
|
|
39
|
+
9. **TOP and BOTTOM have asymmetric `sortAscending` defaults.** TOP defaults to `false` (largest first); BOTTOM defaults to `true` (smallest first). Setting `sortAscending: true` on TOP is legal but produces BOTTOM-equivalent ordering — switch the op for clarity.
|
|
40
|
+
10. **`GROUP` only drops non-grouped columns when followed by an aggregator.** `GROUP → AGG` collapses to grouping-key + `as` outputs; `GROUP → BOTTOM/TOP/ORDER/KEEP/FILTER` (no aggregator) preserves the upstream column shape. Use `KEEP` after GROUP if you want pruning without aggregation.
|
|
41
|
+
11. **Diagnostic: verify a FROM matches anything before pulling on the full pipeline.** Run `[FROM, KEEP({columns:["metric.id"]})]` in isolation; zero data rows → the specifier matches no metric in this tenant. The data-store editor's "Run JUST this step" control on FROM / FROM_METADATA does this for you.
|
|
42
|
+
|
|
43
|
+
## The envelope
|
|
44
|
+
|
|
45
|
+
```json
|
|
46
|
+
{
|
|
47
|
+
"query": [
|
|
48
|
+
{ "op": "FROM_TOPOLOGY", "querySpecifier": {...}, "alias": "hosts" },
|
|
49
|
+
{ "op": "KEEP", "columns": ["vertex.attr.name", ...] }
|
|
50
|
+
],
|
|
51
|
+
"limit": 20,
|
|
52
|
+
"authorizationView": null // optional auth view
|
|
53
|
+
}
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
The `query` array is the pipeline. Order matters.
|
|
57
|
+
|
|
58
|
+
## Source ops (always step 1)
|
|
59
|
+
|
|
60
|
+
| Op | Source | When to use |
|
|
61
|
+
|---|---|---|
|
|
62
|
+
| `FROM_TOPOLOGY` | TAS topology graph | Want vertex / edge data |
|
|
63
|
+
| `FROM_METADATA` | Metric metadata catalog | Want metric descriptors |
|
|
64
|
+
| `FROM` | Both topology + metric data merged | Standard time-series query |
|
|
65
|
+
| `FROM_DATA` | Specific metric IDs | When you already have IDs (from `MM ID specifier`) |
|
|
66
|
+
| `FROM_TABLE` | Named flat tables | Out-of-band tabular data |
|
|
67
|
+
|
|
68
|
+
## Common transform ops
|
|
69
|
+
|
|
70
|
+
| Op | Purpose |
|
|
71
|
+
|---|---|
|
|
72
|
+
| `KEEP` | Project a subset of columns. **Cannot be empty.** |
|
|
73
|
+
| `GROUP` | Group by columns. **Cannot be empty.** |
|
|
74
|
+
| `ORDER` | Sort by columns. **Cannot be empty.** |
|
|
75
|
+
| `FILTER` | Predicate filter (AND/OR/NOT/EXPR/IN/REGEX/NUMERIC). |
|
|
76
|
+
| `MAP` / `MAP_STRING` | Compute new columns. |
|
|
77
|
+
| `WINDOW` | Time-window the data. |
|
|
78
|
+
|
|
79
|
+
## Aggregation ops
|
|
80
|
+
|
|
81
|
+
`COUNT`, `SUM`, `MIN`, `MAX`, `MEAN`, `FIRST`, `LAST`, `QUANTILE`,
|
|
82
|
+
`DISTINCT` — typical pattern is `WINDOW → GROUP → AGG`.
|
|
83
|
+
|
|
84
|
+
## Joins
|
|
85
|
+
|
|
86
|
+
| Op | Joins against | Has `querySpecifier`? |
|
|
87
|
+
|---|---|---|
|
|
88
|
+
| `JOIN_DATA` | Pipeline data via `metricIdColumn` | No |
|
|
89
|
+
| `JOIN_METADATA` | MM specifier | Yes (optional) |
|
|
90
|
+
| `JOIN_TOPOLOGY` | TAS topology context | **No** — uses pipeline data via `externalIdColumn` |
|
|
91
|
+
|
|
92
|
+
JOIN_TOPOLOGY's lack of `querySpecifier` surprises agents — see `gotchas.md`.
|
|
93
|
+
|
|
94
|
+
## Pattern: discover hosts via topology
|
|
95
|
+
|
|
96
|
+
```json
|
|
97
|
+
{
|
|
98
|
+
"query": [
|
|
99
|
+
{
|
|
100
|
+
"op": "FROM_TOPOLOGY",
|
|
101
|
+
"querySpecifier": {
|
|
102
|
+
"filter": {
|
|
103
|
+
"op": "ATTRIBUTE",
|
|
104
|
+
"expressions": [{ "name": "type", "operator": "IN", "values": ["HOST"] }]
|
|
105
|
+
}
|
|
106
|
+
},
|
|
107
|
+
"alias": "hosts"
|
|
108
|
+
},
|
|
109
|
+
{ "op": "KEEP", "columns": ["vertex.attr.name", "vertex.attr.type", "vertex.externalId"] }
|
|
110
|
+
],
|
|
111
|
+
"limit": 20
|
|
112
|
+
}
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
## Pattern: time-series mean per host
|
|
116
|
+
|
|
117
|
+
```json
|
|
118
|
+
{
|
|
119
|
+
"query": [
|
|
120
|
+
{ "op": "FROM", "querySpecifier": {...} },
|
|
121
|
+
{ "op": "WINDOW", "every": 60000 },
|
|
122
|
+
{ "op": "GROUP", "columns": ["host"] },
|
|
123
|
+
{ "op": "MEAN", "column": "value", "as": "avg" }
|
|
124
|
+
]
|
|
125
|
+
}
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
## Embedding TAS / MM specifiers
|
|
129
|
+
|
|
130
|
+
`FROM_TOPOLOGY.querySpecifier` carries a TAS filter (see `tas-quickstart.md`).
|
|
131
|
+
`FROM_METADATA.querySpecifier` and `JOIN_METADATA.querySpecifier` carry MM
|
|
132
|
+
specifiers (see `mm-quickstart.md`). You author a TAS / MM payload nested
|
|
133
|
+
inside the NASSQL step — the schemas compose.
|
|
134
|
+
|
|
135
|
+
## Iteration: "Run up to here"
|
|
136
|
+
|
|
137
|
+
Use `run_partial_query` with `upToStep: N` to truncate the pipeline at step
|
|
138
|
+
N and run it. Lets you see intermediate output one step at a time. The
|
|
139
|
+
truncated payload preserves top-level `limit` and `authorizationView`. See
|
|
140
|
+
`run-query-vs-run-partial.md`.
|
|
141
|
+
|
|
142
|
+
## See also
|
|
143
|
+
|
|
144
|
+
- `nassql-cookbook.md` — full op reference, recipe catalog, source-op decision rationale
|
|
145
|
+
- `gotchas.md` — FROM_TOPOLOGY's restricted querySpecifier, JOIN_TOPOLOGY's missing querySpecifier
|
|
146
|
+
- `tas-quickstart.md` — for the embedded topology filter
|
|
147
|
+
- `mm-quickstart.md` — for the embedded metadata specifier
|
|
148
|
+
- `run-query-vs-run-partial.md` — when to use which execution mode
|
|
149
|
+
- Live examples: `corpus_get("queries", "22-nassql-from-topology")`, `corpus_get("queries", "31-nassql-join-data-sum")`. Browse all NASSQL examples with `corpus_list("queries", {type: "nassql"})`.
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "investigate",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"description": "Claude Code plugin for DXO2 investigation. Bundles the dx-do-query MCP server (stdio) plus an investigator skill that teaches the scope-clarify → discovery → catalog-grounding → query-author → UI-handoff decision tree. Sibling skills (analyzer, organizer) will land here as the activity grows.",
|
|
5
|
+
"author": {
|
|
6
|
+
"name": "Ki Alam"
|
|
7
|
+
},
|
|
8
|
+
"homepage": "https://github.com/zoobroker/dx-do-mono",
|
|
9
|
+
"mcpServers": {
|
|
10
|
+
"dx-do-query": {
|
|
11
|
+
"command": "${DXDO_BIN:-dx-do}",
|
|
12
|
+
"args": ["agentic", "mcp", "config=${DXDO_CONFIG_ALIAS:-default}"],
|
|
13
|
+
"env": {
|
|
14
|
+
"DXDO_ENABLE_EXPERIMENTAL_COMMANDS": "true"
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
var Tt=Object.defineProperty,Et=Object.defineProperties,pt=Object.getOwnPropertyDescriptors,$e=Object.getOwnPropertySymbols,gt=Object.prototype.hasOwnProperty,yt=Object.prototype.propertyIsEnumerable,Ie=(t,e,c)=>e in t?Tt(t,e,{enumerable:!0,configurable:!0,writable:!0,value:c}):t[e]=c,Je=(t,e)=>{for(var c in e||(e={}))gt.call(e,c)&&Ie(t,c,e[c]);if($e)for(var c of $e(e))yt.call(e,c)&&Ie(t,c,e[c]);return t},mt=(t,e)=>Et(t,pt(e)),S=(t,e,c)=>(Ie(t,typeof e!="symbol"?e+"":e,c),c),te=globalThis;function ne(t){return(te.__Zone_symbol_prefix||"__zone_symbol__")+t}function kt(){let t=te.performance;function e(x){t&&t.mark&&t.mark(x)}function c(x,r){t&&t.measure&&t.measure(x,r)}e("Zone");let n=class Me{constructor(r,o){S(this,"_parent"),S(this,"_name"),S(this,"_properties"),S(this,"_zoneDelegate"),this._parent=r,this._name=o?o.name||"unnamed":"<root>",this._properties=o&&o.properties||{},this._zoneDelegate=new v(this,this._parent&&this._parent._zoneDelegate,o)}static assertZonePatched(){if(te.Promise!==M.ZoneAwarePromise)throw new Error("Zone.js has detected that ZoneAwarePromise `(window|global).Promise` has been overwritten.\nMost likely cause is that a Promise polyfill has been loaded after Zone.js (Polyfilling Promise api is not necessary when zone.js is loaded. If you must load one, do so before loading zone.js.)")}static get root(){let r=Me.current;for(;r.parent;)r=r.parent;return r}static get current(){return U.zone}static get currentTask(){return ee}static __load_patch(r,o,i=!1){if(M.hasOwnProperty(r)){let g=te[ne("forceDuplicateZoneCheck")]===!0;if(!i&&g)throw Error("Already loaded patch: "+r)}else if(!te["__Zone_disable_"+r]){let g="Zone:"+r;e(g),M[r]=o(te,Me,C),c(g,g)}}get parent(){return this._parent}get name(){return this._name}get(r){let o=this.getZoneWith(r);if(o)return o._properties[r]}getZoneWith(r){let o=this;for(;o;){if(o._properties.hasOwnProperty(r))return o;o=o._parent}return null}fork(r){if(!r)throw new Error("ZoneSpec required!");return this._zoneDelegate.fork(this,r)}wrap(r,o){if(typeof r!="function")throw new Error("Expecting function got: "+r);let i=this._zoneDelegate.intercept(this,r,o),g=this;return function(){return g.runGuarded(i,this,arguments,o)}}run(r,o,i,g){U={parent:U,zone:this};try{return this._zoneDelegate.invoke(this,r,o,i,g)}finally{U=U.parent}}runGuarded(r,o=null,i,g){U={parent:U,zone:this};try{try{return this._zoneDelegate.invoke(this,r,o,i,g)}catch(k){if(this._zoneDelegate.handleError(this,k))throw k}}finally{U=U.parent}}runTask(r,o,i){if(r.zone!=this)throw new Error("A task can only be run in the zone of creation! (Creation: "+(r.zone||P).name+"; Execution: "+this.name+")");let g=r,{type:k,data:{isPeriodic:re=!1,isRefreshable:se=!1}={}}=r;if(r.state===_&&(k===w||k===O))return;let ie=r.state!=V;ie&&g._transitionTo(V,F);let pe=ee;ee=g,U={parent:U,zone:this};try{k==O&&r.data&&!re&&!se&&(r.cancelFn=void 0);try{return this._zoneDelegate.invokeTask(this,g,o,i)}catch(h){if(this._zoneDelegate.handleError(this,h))throw h}}finally{let h=r.state;if(h!==_&&h!==E)if(k==w||re||se&&h===H)ie&&g._transitionTo(F,V,H);else{let l=g._zoneDelegates;this._updateTaskCount(g,-1),ie&&g._transitionTo(_,V,_),se&&(g._zoneDelegates=l)}U=U.parent,ee=pe}}scheduleTask(r){if(r.zone&&r.zone!==this){let i=this;for(;i;){if(i===r.zone)throw Error(`can not reschedule task to ${this.name} which is descendants of the original zone ${r.zone.name}`);i=i.parent}}r._transitionTo(H,_);let o=[];r._zoneDelegates=o,r._zone=this;try{r=this._zoneDelegate.scheduleTask(this,r)}catch(i){throw r._transitionTo(E,H,_),this._zoneDelegate.handleError(this,i),i}return r._zoneDelegates===o&&this._updateTaskCount(r,1),r.state==H&&r._transitionTo(F,H),r}scheduleMicroTask(r,o,i,g){return this.scheduleTask(new d(q,r,o,i,g,void 0))}scheduleMacroTask(r,o,i,g,k){return this.scheduleTask(new d(O,r,o,i,g,k))}scheduleEventTask(r,o,i,g,k){return this.scheduleTask(new d(w,r,o,i,g,k))}cancelTask(r){if(r.zone!=this)throw new Error("A task can only be cancelled in the zone of creation! (Creation: "+(r.zone||P).name+"; Execution: "+this.name+")");if(!(r.state!==F&&r.state!==V)){r._transitionTo(G,F,V);try{this._zoneDelegate.cancelTask(this,r)}catch(o){throw r._transitionTo(E,G),this._zoneDelegate.handleError(this,o),o}return this._updateTaskCount(r,-1),r._transitionTo(_,G),r.runCount=-1,r}}_updateTaskCount(r,o){let i=r._zoneDelegates;o==-1&&(r._zoneDelegates=null);for(let g=0;g<i.length;g++)i[g]._updateTaskCount(r.type,o)}};S(n,"__symbol__",ne);let a=n,u={name:"",onHasTask:(x,r,o,i)=>x.hasTask(o,i),onScheduleTask:(x,r,o,i)=>x.scheduleTask(o,i),onInvokeTask:(x,r,o,i,g,k)=>x.invokeTask(o,i,g,k),onCancelTask:(x,r,o,i)=>x.cancelTask(o,i)};class v{constructor(r,o,i){S(this,"_zone"),S(this,"_taskCounts",{microTask:0,macroTask:0,eventTask:0}),S(this,"_forkDlgt"),S(this,"_forkZS"),S(this,"_forkCurrZone"),S(this,"_interceptDlgt"),S(this,"_interceptZS"),S(this,"_interceptCurrZone"),S(this,"_invokeDlgt"),S(this,"_invokeZS"),S(this,"_invokeCurrZone"),S(this,"_handleErrorDlgt"),S(this,"_handleErrorZS"),S(this,"_handleErrorCurrZone"),S(this,"_scheduleTaskDlgt"),S(this,"_scheduleTaskZS"),S(this,"_scheduleTaskCurrZone"),S(this,"_invokeTaskDlgt"),S(this,"_invokeTaskZS"),S(this,"_invokeTaskCurrZone"),S(this,"_cancelTaskDlgt"),S(this,"_cancelTaskZS"),S(this,"_cancelTaskCurrZone"),S(this,"_hasTaskDlgt"),S(this,"_hasTaskDlgtOwner"),S(this,"_hasTaskZS"),S(this,"_hasTaskCurrZone"),this._zone=r,this._forkZS=i&&(i&&i.onFork?i:o._forkZS),this._forkDlgt=i&&(i.onFork?o:o._forkDlgt),this._forkCurrZone=i&&(i.onFork?this._zone:o._forkCurrZone),this._interceptZS=i&&(i.onIntercept?i:o._interceptZS),this._interceptDlgt=i&&(i.onIntercept?o:o._interceptDlgt),this._interceptCurrZone=i&&(i.onIntercept?this._zone:o._interceptCurrZone),this._invokeZS=i&&(i.onInvoke?i:o._invokeZS),this._invokeDlgt=i&&(i.onInvoke?o:o._invokeDlgt),this._invokeCurrZone=i&&(i.onInvoke?this._zone:o._invokeCurrZone),this._handleErrorZS=i&&(i.onHandleError?i:o._handleErrorZS),this._handleErrorDlgt=i&&(i.onHandleError?o:o._handleErrorDlgt),this._handleErrorCurrZone=i&&(i.onHandleError?this._zone:o._handleErrorCurrZone),this._scheduleTaskZS=i&&(i.onScheduleTask?i:o._scheduleTaskZS),this._scheduleTaskDlgt=i&&(i.onScheduleTask?o:o._scheduleTaskDlgt),this._scheduleTaskCurrZone=i&&(i.onScheduleTask?this._zone:o._scheduleTaskCurrZone),this._invokeTaskZS=i&&(i.onInvokeTask?i:o._invokeTaskZS),this._invokeTaskDlgt=i&&(i.onInvokeTask?o:o._invokeTaskDlgt),this._invokeTaskCurrZone=i&&(i.onInvokeTask?this._zone:o._invokeTaskCurrZone),this._cancelTaskZS=i&&(i.onCancelTask?i:o._cancelTaskZS),this._cancelTaskDlgt=i&&(i.onCancelTask?o:o._cancelTaskDlgt),this._cancelTaskCurrZone=i&&(i.onCancelTask?this._zone:o._cancelTaskCurrZone),this._hasTaskZS=null,this._hasTaskDlgt=null,this._hasTaskDlgtOwner=null,this._hasTaskCurrZone=null;let g=i&&i.onHasTask,k=o&&o._hasTaskZS;(g||k)&&(this._hasTaskZS=g?i:u,this._hasTaskDlgt=o,this._hasTaskDlgtOwner=this,this._hasTaskCurrZone=this._zone,i.onScheduleTask||(this._scheduleTaskZS=u,this._scheduleTaskDlgt=o,this._scheduleTaskCurrZone=this._zone),i.onInvokeTask||(this._invokeTaskZS=u,this._invokeTaskDlgt=o,this._invokeTaskCurrZone=this._zone),i.onCancelTask||(this._cancelTaskZS=u,this._cancelTaskDlgt=o,this._cancelTaskCurrZone=this._zone))}get zone(){return this._zone}fork(r,o){return this._forkZS?this._forkZS.onFork(this._forkDlgt,this.zone,r,o):new a(r,o)}intercept(r,o,i){return this._interceptZS?this._interceptZS.onIntercept(this._interceptDlgt,this._interceptCurrZone,r,o,i):o}invoke(r,o,i,g,k){return this._invokeZS?this._invokeZS.onInvoke(this._invokeDlgt,this._invokeCurrZone,r,o,i,g,k):o.apply(i,g)}handleError(r,o){return this._handleErrorZS?this._handleErrorZS.onHandleError(this._handleErrorDlgt,this._handleErrorCurrZone,r,o):!0}scheduleTask(r,o){let i=o;if(this._scheduleTaskZS)this._hasTaskZS&&i._zoneDelegates.push(this._hasTaskDlgtOwner),i=this._scheduleTaskZS.onScheduleTask(this._scheduleTaskDlgt,this._scheduleTaskCurrZone,r,o),i||(i=o);else if(o.scheduleFn)o.scheduleFn(o);else if(o.type==q)Q(o);else throw new Error("Task is missing scheduleFn.");return i}invokeTask(r,o,i,g){return this._invokeTaskZS?this._invokeTaskZS.onInvokeTask(this._invokeTaskDlgt,this._invokeTaskCurrZone,r,o,i,g):o.callback.apply(i,g)}cancelTask(r,o){let i;if(this._cancelTaskZS)i=this._cancelTaskZS.onCancelTask(this._cancelTaskDlgt,this._cancelTaskCurrZone,r,o);else{if(!o.cancelFn)throw Error("Task is not cancelable");i=o.cancelFn(o)}return i}hasTask(r,o){try{this._hasTaskZS&&this._hasTaskZS.onHasTask(this._hasTaskDlgt,this._hasTaskCurrZone,r,o)}catch(i){this.handleError(r,i)}}_updateTaskCount(r,o){let i=this._taskCounts,g=i[r],k=i[r]=g+o;if(k<0)throw new Error("More tasks executed then were scheduled.");if(g==0||k==0){let re={microTask:i.microTask>0,macroTask:i.macroTask>0,eventTask:i.eventTask>0,change:r};this.hasTask(this._zone,re)}}}class d{constructor(r,o,i,g,k,re){if(S(this,"type"),S(this,"source"),S(this,"invoke"),S(this,"callback"),S(this,"data"),S(this,"scheduleFn"),S(this,"cancelFn"),S(this,"_zone",null),S(this,"runCount",0),S(this,"_zoneDelegates",null),S(this,"_state","notScheduled"),this.type=r,this.source=o,this.data=g,this.scheduleFn=k,this.cancelFn=re,!i)throw new Error("callback is not defined");this.callback=i;let se=this;r===w&&g&&g.useG?this.invoke=d.invokeTask:this.invoke=function(){return d.invokeTask.call(te,se,this,arguments)}}static invokeTask(r,o,i){r||(r=this),K++;try{return r.runCount++,r.zone.runTask(r,o,i)}finally{K===1&&!te[D]&&$(),K--}}get zone(){return this._zone}get state(){return this._state}cancelScheduleRequest(){this._transitionTo(_,H)}_transitionTo(r,o,i){if(this._state===o||this._state===i)this._state=r,r==_&&(this._zoneDelegates=null);else throw new Error(`${this.type} '${this.source}': can not transition to '${r}', expecting state '${o}'${i?" or '"+i+"'":""}, was '${this._state}'.`)}toString(){return this.data&&typeof this.data.handleId<"u"?this.data.handleId.toString():Object.prototype.toString.call(this)}toJSON(){return{type:this.type,state:this.state,source:this.source,zone:this.zone.name,runCount:this.runCount}}}let m=ne("setTimeout"),R=ne("Promise"),p=ne("then"),D=ne("enable_native_microtask_draining"),Z=[],j=!1,Y;function W(x){var r;!Y&&te[R]&&(Y=te[R].resolve(0)),Y?((r=Y[p])!=null?r:Y.then).call(Y,x):te[m](x,0)}function Q(x){let r=te[D],o=r&&Z.length===0&&!j,i=!r&&K===0&&Z.length===0;(o||i)&&W($),x&&Z.push(x)}function $(){if(!j){for(j=!0;Z.length;){let x=Z;Z=[];for(let r of x)try{r.zone.runTask(r,null,null)}catch(o){C.onUnhandledError(o)}}te[D]?(j=!1,C.microtaskDrainDone()):(C.microtaskDrainDone(),j=!1)}}let P={name:"NO ZONE"},_="notScheduled",H="scheduling",F="scheduled",V="running",G="canceling",E="unknown",q="microTask",O="macroTask",w="eventTask",M={},C={symbol:ne,currentZoneFrame:()=>U,onUnhandledError:X,microtaskDrainDone:X,scheduleMicroTask:Q,showUncaughtError:()=>!a[ne("ignoreConsoleErrorUncaughtError")],patchEventTarget:()=>[],patchOnProperties:X,patchMethod:()=>X,bindArguments:()=>[],patchThen:()=>X,patchMacroTask:()=>X,patchEventPrototype:()=>X,getGlobalObjects:()=>{},ObjectDefineProperty:()=>X,ObjectGetOwnPropertyDescriptor:()=>{},ObjectCreate:()=>{},ArraySlice:()=>[],patchClass:()=>X,wrapWithCurrentZone:()=>X,filterProperties:()=>[],attachOriginToPatched:()=>X,_redefineProperty:()=>X,patchCallbacks:()=>X,nativeScheduleMicroTask:W},U={parent:null,zone:new a(null,null)},ee=null,K=0;function X(){}return c("Zone","Zone"),a}function vt(){var t;let e=globalThis,c=e[ne("forceDuplicateZoneCheck")]===!0;if(e.Zone&&(c||typeof e.Zone.__symbol__!="function"))throw new Error("Zone already loaded.");return(t=e.Zone)!=null||(e.Zone=kt()),e.Zone}var ve=Object.getOwnPropertyDescriptor,Ae=Object.defineProperty,He=Object.getPrototypeOf,bt=Object.create,Pt=Array.prototype.slice,Fe="addEventListener",Ve="removeEventListener",Ze=ne(Fe),Le=ne(Ve),he="true",fe="false",be=ne("");function Ge(t,e){return Zone.current.wrap(t,e)}function xe(t,e,c,n,a){return Zone.current.scheduleMacroTask(t,e,c,n,a)}var A=ne,De=typeof window<"u",Se=De?window:void 0,J=De&&Se||globalThis,wt="removeAttribute";function Be(t,e){for(let c=t.length-1;c>=0;c--)typeof t[c]=="function"&&(t[c]=Ge(t[c],e+"_"+c));return t}function Rt(t,e){let c=t.constructor.name;for(let n=0;n<e.length;n++){let a=e[n],u=t[a];if(u){let v=ve(t,a);if(!rt(v))continue;t[a]=(d=>{let m=function(){return d.apply(this,Be(arguments,c+"."+a))};return de(m,d),m})(u)}}}function rt(t){return t?t.writable===!1?!1:!(typeof t.get=="function"&&typeof t.set>"u"):!0}var ot=typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope,Ce=!("nw"in J)&&typeof J.process<"u"&&J.process.toString()==="[object process]",ze=!Ce&&!ot&&!!(De&&Se.HTMLElement),st=typeof J.process<"u"&&J.process.toString()==="[object process]"&&!ot&&!!(De&&Se.HTMLElement),Re={},Dt=A("enable_beforeunload"),Ke=function(t){if(t=t||J.event,!t)return;let e=Re[t.type];e||(e=Re[t.type]=A("ON_PROPERTY"+t.type));let c=this||t.target||J,n=c[e],a;if(ze&&c===Se&&t.type==="error"){let u=t;a=n&&n.call(this,u.message,u.filename,u.lineno,u.colno,u.error),a===!0&&t.preventDefault()}else a=n&&n.apply(this,arguments),t.type==="beforeunload"&&J[Dt]&&typeof a=="string"?t.returnValue=a:a!=null&&!a&&t.preventDefault();return a};function Qe(t,e,c){let n=ve(t,e);if(!n&&c&&ve(c,e)&&(n={enumerable:!0,configurable:!0}),!n||!n.configurable)return;let a=A("on"+e+"patched");if(t.hasOwnProperty(a)&&t[a])return;delete n.writable,delete n.value;let u=n.get,v=n.set,d=e.slice(2),m=Re[d];m||(m=Re[d]=A("ON_PROPERTY"+d)),n.set=function(R){let p=this;if(!p&&t===J&&(p=J),!p)return;typeof p[m]=="function"&&p.removeEventListener(d,Ke),v?.call(p,null),p[m]=R,typeof R=="function"&&p.addEventListener(d,Ke,!1)},n.get=function(){let R=this;if(!R&&t===J&&(R=J),!R)return null;let p=R[m];if(p)return p;if(u){let D=u.call(this);if(D)return n.set.call(this,D),typeof R[wt]=="function"&&R.removeAttribute(e),D}return null},Ae(t,e,n),t[a]=!0}function it(t,e,c){if(e)for(let n=0;n<e.length;n++)Qe(t,"on"+e[n],c);else{let n=[];for(let a in t)a.slice(0,2)=="on"&&n.push(a);for(let a=0;a<n.length;a++)Qe(t,n[a],c)}}var le=A("originalInstance");function ke(t){let e=J[t];if(!e)return;J[A(t)]=e,J[t]=function(){let a=Be(arguments,t);switch(a.length){case 0:this[le]=new e;break;case 1:this[le]=new e(a[0]);break;case 2:this[le]=new e(a[0],a[1]);break;case 3:this[le]=new e(a[0],a[1],a[2]);break;case 4:this[le]=new e(a[0],a[1],a[2],a[3]);break;default:throw new Error("Arg list too long.")}},de(J[t],e);let c=new e(function(){}),n;for(n in c)t==="XMLHttpRequest"&&n==="responseBlob"||(function(a){typeof c[a]=="function"?J[t].prototype[a]=function(){return this[le][a].apply(this[le],arguments)}:Ae(J[t].prototype,a,{set:function(u){typeof u=="function"?(this[le][a]=Ge(u,t+"."+a),de(this[le][a],u)):this[le][a]=u},get:function(){return this[le][a]}})})(n);for(n in e)n!=="prototype"&&e.hasOwnProperty(n)&&(J[t][n]=e[n])}function St(t,e){if(typeof Object.getOwnPropertySymbols!="function")return;Object.getOwnPropertySymbols(t).forEach(n=>{let a=Object.getOwnPropertyDescriptor(t,n);Object.defineProperty(e,n,{get:function(){return t[n]},set:function(u){a&&(!a.writable||typeof a.set!="function")||(t[n]=u)},enumerable:a?a.enumerable:!0,configurable:a?a.configurable:!0})})}var Ct=!1;function _e(t,e,c){let n=t;for(;n&&!n.hasOwnProperty(e);)n=He(n);!n&&t[e]&&(n=t);let a=A(e),u=null;if(n&&(!(u=n[a])||!n.hasOwnProperty(a))){u=n[a]=n[e];let v=n&&ve(n,e);if(rt(v)){let d=c(u,a,e);n[e]=function(){return d(this,arguments)},de(n[e],u),Ct&&St(u,n[e])}}return u}function Ot(t,e,c){let n=null;function a(u){let v=u.data;return v.args[v.cbIdx]=function(){u.invoke.apply(this,arguments)},n.apply(v.target,v.args),u}n=_e(t,e,u=>function(v,d){let m=c(v,d);return m.cbIdx>=0&&typeof d[m.cbIdx]=="function"?xe(m.name,d[m.cbIdx],m,a):u.apply(v,d)})}function de(t,e){t[A("OriginalDelegate")]=e}function et(t){return typeof t=="function"}function tt(t){return typeof t=="number"}var Nt={useG:!0},oe={},at={},ct=new RegExp("^"+be+"(\\w+)(true|false)$"),lt=A("propagationStopped");function ut(t,e){let c=(e?e(t):t)+fe,n=(e?e(t):t)+he,a=be+c,u=be+n;oe[t]={},oe[t][fe]=a,oe[t][he]=u}function Zt(t,e,c,n){let a=n&&n.add||Fe,u=n&&n.rm||Ve,v=n&&n.listeners||"eventListeners",d=n&&n.rmAll||"removeAllListeners",m=A(a),R="."+a+":",p="prependListener",D="."+p+":",Z=function(P,_,H){if(P.isRemoved)return;let F=P.callback;typeof F=="object"&&F.handleEvent&&(P.callback=E=>F.handleEvent(E),P.originalDelegate=F);let V;try{P.invoke(P,_,[H])}catch(E){V=E}let G=P.options;if(G&&typeof G=="object"&&G.once){let E=P.originalDelegate?P.originalDelegate:P.callback;_[u].call(_,H.type,E,G)}return V};function j(P,_,H){if(_=_||t.event,!_)return;let F=P||_.target||t,V=F[oe[_.type][H?he:fe]];if(V){let G=[];if(V.length===1){let E=Z(V[0],F,_);E&&G.push(E)}else{let E=V.slice();for(let q=0;q<E.length&&!(_&&_[lt]===!0);q++){let O=Z(E[q],F,_);O&&G.push(O)}}if(G.length===1)throw G[0];for(let E=0;E<G.length;E++){let q=G[E];e.nativeScheduleMicroTask(()=>{throw q})}}}let Y=function(P){return j(this,P,!1)},W=function(P){return j(this,P,!0)};function Q(P,_){if(!P)return!1;let H=!0;_&&_.useG!==void 0&&(H=_.useG);let F=_&&_.vh,V=!0;_&&_.chkDup!==void 0&&(V=_.chkDup);let G=!1;_&&_.rt!==void 0&&(G=_.rt);let E=P;for(;E&&!E.hasOwnProperty(a);)E=He(E);if(!E&&P[a]&&(E=P),!E||E[m])return!1;let q=_&&_.eventNameToString,O={},w=E[m]=E[a],M=E[A(u)]=E[u],C=E[A(v)]=E[v],U=E[A(d)]=E[d],ee;_&&_.prepend&&(ee=E[A(_.prepend)]=E[_.prepend]);function K(s,f){return f?typeof s=="boolean"?{capture:s,passive:!0}:s?typeof s=="object"&&s.passive!==!1?mt(Je({},s),{passive:!0}):s:{passive:!0}:s}let X=function(s){if(!O.isExisting)return w.call(O.target,O.eventName,O.capture?W:Y,O.options)},x=function(s){if(!s.isRemoved){let f=oe[s.eventName],y;f&&(y=f[s.capture?he:fe]);let b=y&&s.target[y];if(b){for(let T=0;T<b.length;T++)if(b[T]===s){b.splice(T,1),s.isRemoved=!0,s.removeAbortListener&&(s.removeAbortListener(),s.removeAbortListener=null),b.length===0&&(s.allRemoved=!0,s.target[y]=null);break}}}if(s.allRemoved)return M.call(s.target,s.eventName,s.capture?W:Y,s.options)},r=function(s){return w.call(O.target,O.eventName,s.invoke,O.options)},o=function(s){return ee.call(O.target,O.eventName,s.invoke,O.options)},i=function(s){return M.call(s.target,s.eventName,s.invoke,s.options)},g=H?X:r,k=H?x:i,re=function(s,f){let y=typeof f;return y==="function"&&s.callback===f||y==="object"&&s.originalDelegate===f},se=_?.diff||re,ie=Zone[A("UNPATCHED_EVENTS")],pe=t[A("PASSIVE_EVENTS")];function h(s){if(typeof s=="object"&&s!==null){let f=Je({},s);return s.signal&&(f.signal=s.signal),f}return s}let l=function(s,f,y,b,T=!1,N=!1){return function(){let L=this||t,I=arguments[0];_&&_.transferEventName&&(I=_.transferEventName(I));let B=arguments[1];if(!B)return s.apply(this,arguments);if(Ce&&I==="uncaughtException")return s.apply(this,arguments);let z=!1;if(typeof B!="function"){if(!B.handleEvent)return s.apply(this,arguments);z=!0}if(F&&!F(s,B,L,arguments))return;let Te=!!pe&&pe.indexOf(I)!==-1,ae=h(K(arguments[2],Te)),Ee=ae?.signal;if(Ee?.aborted)return;if(ie){for(let ue=0;ue<ie.length;ue++)if(I===ie[ue])return Te?s.call(L,I,B,ae):s.apply(this,arguments)}let Oe=ae?typeof ae=="boolean"?!0:ae.capture:!1,Ue=ae&&typeof ae=="object"?ae.once:!1,dt=Zone.current,Ne=oe[I];Ne||(ut(I,q),Ne=oe[I]);let We=Ne[Oe?he:fe],ge=L[We],qe=!1;if(ge){if(qe=!0,V){for(let ue=0;ue<ge.length;ue++)if(se(ge[ue],B))return}}else ge=L[We]=[];let Pe,Xe=L.constructor.name,Ye=at[Xe];Ye&&(Pe=Ye[I]),Pe||(Pe=Xe+f+(q?q(I):I)),O.options=ae,Ue&&(O.options.once=!1),O.target=L,O.capture=Oe,O.eventName=I,O.isExisting=qe;let me=H?Nt:void 0;me&&(me.taskData=O),Ee&&(O.options.signal=void 0);let ce=dt.scheduleEventTask(Pe,B,me,y,b);if(Ee){O.options.signal=Ee;let ue=()=>ce.zone.cancelTask(ce);s.call(Ee,"abort",ue,{once:!0}),ce.removeAbortListener=()=>Ee.removeEventListener("abort",ue)}if(O.target=null,me&&(me.taskData=null),Ue&&(O.options.once=!0),typeof ce.options!="boolean"&&(ce.options=ae),ce.target=L,ce.capture=Oe,ce.eventName=I,z&&(ce.originalDelegate=B),N?ge.unshift(ce):ge.push(ce),T)return L}};return E[a]=l(w,R,g,k,G),ee&&(E[p]=l(ee,D,o,k,G,!0)),E[u]=function(){let s=this||t,f=arguments[0];_&&_.transferEventName&&(f=_.transferEventName(f));let y=arguments[2],b=y?typeof y=="boolean"?!0:y.capture:!1,T=arguments[1];if(!T)return M.apply(this,arguments);if(F&&!F(M,T,s,arguments))return;let N=oe[f],L;N&&(L=N[b?he:fe]);let I=L&&s[L];if(I)for(let B=0;B<I.length;B++){let z=I[B];if(se(z,T)){if(I.splice(B,1),z.isRemoved=!0,I.length===0&&(z.allRemoved=!0,s[L]=null,!b&&typeof f=="string")){let Te=be+"ON_PROPERTY"+f;s[Te]=null}return z.zone.cancelTask(z),G?s:void 0}}return M.apply(this,arguments)},E[v]=function(){let s=this||t,f=arguments[0];_&&_.transferEventName&&(f=_.transferEventName(f));let y=[],b=ht(s,q?q(f):f);for(let T=0;T<b.length;T++){let N=b[T],L=N.originalDelegate?N.originalDelegate:N.callback;y.push(L)}return y},E[d]=function(){let s=this||t,f=arguments[0];if(f){_&&_.transferEventName&&(f=_.transferEventName(f));let y=oe[f];if(y){let b=y[fe],T=y[he],N=s[b],L=s[T];if(N){let I=N.slice();for(let B=0;B<I.length;B++){let z=I[B],Te=z.originalDelegate?z.originalDelegate:z.callback;this[u].call(this,f,Te,z.options)}}if(L){let I=L.slice();for(let B=0;B<I.length;B++){let z=I[B],Te=z.originalDelegate?z.originalDelegate:z.callback;this[u].call(this,f,Te,z.options)}}}}else{let y=Object.keys(s);for(let b=0;b<y.length;b++){let T=y[b],N=ct.exec(T),L=N&&N[1];L&&L!=="removeListener"&&this[d].call(this,L)}this[d].call(this,"removeListener")}if(G)return this},de(E[a],w),de(E[u],M),U&&de(E[d],U),C&&de(E[v],C),!0}let $=[];for(let P=0;P<c.length;P++)$[P]=Q(c[P],n);return $}function ht(t,e){if(!e){let u=[];for(let v in t){let d=ct.exec(v),m=d&&d[1];if(m&&(!e||m===e)){let R=t[v];if(R)for(let p=0;p<R.length;p++)u.push(R[p])}}return u}let c=oe[e];c||(ut(e),c=oe[e]);let n=t[c[fe]],a=t[c[he]];return n?a?n.concat(a):n.slice():a?a.slice():[]}function Lt(t,e){let c=t.Event;c&&c.prototype&&e.patchMethod(c.prototype,"stopImmediatePropagation",n=>function(a,u){a[lt]=!0,n&&n.apply(a,u)})}function It(t,e){e.patchMethod(t,"queueMicrotask",c=>function(n,a){Zone.current.scheduleMicroTask("queueMicrotask",a[0])})}var we=A("zoneTask");function ye(t,e,c,n){let a=null,u=null;e+=n,c+=n;let v={};function d(R){let p=R.data;p.args[0]=function(){return R.invoke.apply(this,arguments)};let D=a.apply(t,p.args);return tt(D)?p.handleId=D:(p.handle=D,p.isRefreshable=et(D.refresh)),R}function m(R){let{handle:p,handleId:D}=R.data;return u.call(t,p??D)}a=_e(t,e,R=>function(p,D){var Z;if(et(D[0])){let j={isRefreshable:!1,isPeriodic:n==="Interval",delay:n==="Timeout"||n==="Interval"?D[1]||0:void 0,args:D},Y=D[0];D[0]=function(){try{return Y.apply(this,arguments)}finally{let{handle:F,handleId:V,isPeriodic:G,isRefreshable:E}=j;!G&&!E&&(V?delete v[V]:F&&(F[we]=null))}};let W=xe(e,D[0],j,d,m);if(!W)return W;let{handleId:Q,handle:$,isRefreshable:P,isPeriodic:_}=W.data;if(Q)v[Q]=W;else if($&&($[we]=W,P&&!_)){let H=$.refresh;$.refresh=function(){let{zone:F,state:V}=W;return V==="notScheduled"?(W._state="scheduled",F._updateTaskCount(W,1)):V==="running"&&(W._state="scheduling"),H.call(this)}}return(Z=$??Q)!=null?Z:W}else return R.apply(t,D)}),u=_e(t,c,R=>function(p,D){let Z=D[0],j;tt(Z)?(j=v[Z],delete v[Z]):(j=Z?.[we],j?Z[we]=null:j=Z),j?.type?j.cancelFn&&j.zone.cancelTask(j):R.apply(t,D)})}function Mt(t,e){let{isBrowser:c,isMix:n}=e.getGlobalObjects();if(!c&&!n||!t.customElements||!("customElements"in t))return;let a=["connectedCallback","disconnectedCallback","adoptedCallback","attributeChangedCallback","formAssociatedCallback","formDisabledCallback","formResetCallback","formStateRestoreCallback"];e.patchCallbacks(e,t.customElements,"customElements","define",a)}function jt(t,e){if(Zone[e.symbol("patchEventTarget")])return;let{eventNames:c,zoneSymbolEventNames:n,TRUE_STR:a,FALSE_STR:u,ZONE_SYMBOL_PREFIX:v}=e.getGlobalObjects();for(let m=0;m<c.length;m++){let R=c[m],p=R+u,D=R+a,Z=v+p,j=v+D;n[R]={},n[R][u]=Z,n[R][a]=j}let d=t.EventTarget;if(!(!d||!d.prototype))return e.patchEventTarget(t,e,[d&&d.prototype]),!0}function At(t,e){e.patchEventPrototype(t,e)}function ft(t,e,c){if(!c||c.length===0)return e;let n=c.filter(u=>u.target===t);if(n.length===0)return e;let a=n[0].ignoreProperties;return e.filter(u=>a.indexOf(u)===-1)}function nt(t,e,c,n){if(!t)return;let a=ft(t,e,c);it(t,a,n)}function je(t){return Object.getOwnPropertyNames(t).filter(e=>e.startsWith("on")&&e.length>2).map(e=>e.substring(2))}function Ht(t,e){if(Ce&&!st||Zone[t.symbol("patchEvents")])return;let c=e.__Zone_ignore_on_properties,n=[];if(ze){let a=window;n=n.concat(["Document","SVGElement","Element","HTMLElement","HTMLBodyElement","HTMLMediaElement","HTMLFrameSetElement","HTMLFrameElement","HTMLIFrameElement","HTMLMarqueeElement","Worker"]),nt(a,je(a),c,He(a))}n=n.concat(["XMLHttpRequest","XMLHttpRequestEventTarget","IDBIndex","IDBRequest","IDBOpenDBRequest","IDBDatabase","IDBTransaction","IDBCursor","WebSocket"]);for(let a=0;a<n.length;a++){let u=e[n[a]];u?.prototype&&nt(u.prototype,je(u.prototype),c)}}function Ft(t){t.__load_patch("timers",e=>{let n="clear";ye(e,"set",n,"Timeout"),ye(e,"set",n,"Interval"),ye(e,"set",n,"Immediate")}),t.__load_patch("requestAnimationFrame",e=>{ye(e,"request","cancel","AnimationFrame"),ye(e,"mozRequest","mozCancel","AnimationFrame"),ye(e,"webkitRequest","webkitCancel","AnimationFrame")}),t.__load_patch("blocking",(e,c)=>{let n=["alert","prompt","confirm"];for(let a=0;a<n.length;a++){let u=n[a];_e(e,u,(v,d,m)=>function(R,p){return c.current.run(v,e,p,m)})}}),t.__load_patch("EventTarget",(e,c,n)=>{At(e,n),jt(e,n);let a=e.XMLHttpRequestEventTarget;a&&a.prototype&&n.patchEventTarget(e,n,[a.prototype])}),t.__load_patch("MutationObserver",(e,c,n)=>{ke("MutationObserver"),ke("WebKitMutationObserver")}),t.__load_patch("IntersectionObserver",(e,c,n)=>{ke("IntersectionObserver")}),t.__load_patch("FileReader",(e,c,n)=>{ke("FileReader")}),t.__load_patch("on_property",(e,c,n)=>{Ht(n,e)}),t.__load_patch("customElements",(e,c,n)=>{Mt(e,n)}),t.__load_patch("XHR",(e,c)=>{R(e);let n=A("xhrTask"),a=A("xhrSync"),u=A("xhrListener"),v=A("xhrScheduled"),d=A("xhrURL"),m=A("xhrErrorBeforeScheduled");function R(p){let D=p.XMLHttpRequest;if(!D)return;let Z=D.prototype;function j(w){return w[n]}let Y=Z[Ze],W=Z[Le];if(!Y){let w=p.XMLHttpRequestEventTarget;if(w){let M=w.prototype;Y=M[Ze],W=M[Le]}}let Q="readystatechange",$="scheduled";function P(w){let M=w.data,C=M.target;C[v]=!1,C[m]=!1;let U=C[u];Y||(Y=C[Ze],W=C[Le]),U&&W.call(C,Q,U);let ee=C[u]=()=>{if(C.readyState===C.DONE)if(!M.aborted&&C[v]&&w.state===$){let X=C[c.__symbol__("loadfalse")];if(C.status!==0&&X&&X.length>0){let x=w.invoke;w.invoke=function(){let r=C[c.__symbol__("loadfalse")];for(let o=0;o<r.length;o++)r[o]===w&&r.splice(o,1);!M.aborted&&w.state===$&&x.call(w)},X.push(w)}else w.invoke()}else!M.aborted&&C[v]===!1&&(C[m]=!0)};return Y.call(C,Q,ee),C[n]||(C[n]=w),q.apply(C,M.args),C[v]=!0,w}function _(){}function H(w){let M=w.data;return M.aborted=!0,O.apply(M.target,M.args)}let F=_e(Z,"open",()=>function(w,M){return w[a]=M[2]==!1,w[d]=M[1],F.apply(w,M)}),V="XMLHttpRequest.send",G=A("fetchTaskAborting"),E=A("fetchTaskScheduling"),q=_e(Z,"send",()=>function(w,M){if(c.current[E]===!0||w[a])return q.apply(w,M);{let C={target:w,url:w[d],isPeriodic:!1,args:M,aborted:!1},U=xe(V,_,C,P,H);w&&w[m]===!0&&!C.aborted&&U.state===$&&U.invoke()}}),O=_e(Z,"abort",()=>function(w,M){let C=j(w);if(C&&typeof C.type=="string"){if(C.cancelFn==null||C.data&&C.data.aborted)return;C.zone.cancelTask(C)}else if(c.current[G]===!0)return O.apply(w,M)})}}),t.__load_patch("geolocation",e=>{e.navigator&&e.navigator.geolocation&&Rt(e.navigator.geolocation,["getCurrentPosition","watchPosition"])}),t.__load_patch("PromiseRejectionEvent",(e,c)=>{function n(a){return function(u){ht(e,a).forEach(d=>{let m=e.PromiseRejectionEvent;if(m){let R=new m(a,{promise:u.promise,reason:u.rejection});d.invoke(R)}})}}e.PromiseRejectionEvent&&(c[A("unhandledPromiseRejectionHandler")]=n("unhandledrejection"),c[A("rejectionHandledHandler")]=n("rejectionhandled"))}),t.__load_patch("queueMicrotask",(e,c,n)=>{It(e,n)})}function Vt(t){t.__load_patch("ZoneAwarePromise",(e,c,n)=>{let a=Object.getOwnPropertyDescriptor,u=Object.defineProperty;function v(h){if(h&&h.toString===Object.prototype.toString){let l=h.constructor&&h.constructor.name;return(l||"")+": "+JSON.stringify(h)}return h?h.toString():Object.prototype.toString.call(h)}let d=n.symbol,m=[],R=e[d("DISABLE_WRAPPING_UNCAUGHT_PROMISE_REJECTION")]!==!1,p=d("Promise"),D=d("then"),Z="__creationTrace__";n.onUnhandledError=h=>{if(n.showUncaughtError()){let l=h&&h.rejection;l?console.error("Unhandled Promise rejection:",l instanceof Error?l.message:l,"; Zone:",h.zone.name,"; Task:",h.task&&h.task.source,"; Value:",l,l instanceof Error?l.stack:void 0):console.error(h)}},n.microtaskDrainDone=()=>{for(;m.length;){let h=m.shift();try{h.zone.runGuarded(()=>{throw h.throwOriginal?h.rejection:h})}catch(l){Y(l)}}};let j=d("unhandledPromiseRejectionHandler");function Y(h){n.onUnhandledError(h);try{let l=c[j];typeof l=="function"&&l.call(this,h)}catch{}}function W(h){return h&&typeof h.then=="function"}function Q(h){return h}function $(h){return k.reject(h)}let P=d("state"),_=d("value"),H=d("finally"),F=d("parentPromiseValue"),V=d("parentPromiseState"),G="Promise.then",E=null,q=!0,O=!1,w=0;function M(h,l){return s=>{try{K(h,l,s)}catch(f){K(h,!1,f)}}}let C=function(){let h=!1;return function(s){return function(){h||(h=!0,s.apply(null,arguments))}}},U="Promise resolved with itself",ee=d("currentTaskTrace");function K(h,l,s){let f=C();if(h===s)throw new TypeError(U);if(h[P]===E){let y=null;try{(typeof s=="object"||typeof s=="function")&&(y=s&&s.then)}catch(b){return f(()=>{K(h,!1,b)})(),h}if(l!==O&&s instanceof k&&s.hasOwnProperty(P)&&s.hasOwnProperty(_)&&s[P]!==E)x(s),K(h,s[P],s[_]);else if(l!==O&&typeof y=="function")try{y.call(s,f(M(h,l)),f(M(h,!1)))}catch(b){f(()=>{K(h,!1,b)})()}else{h[P]=l;let b=h[_];if(h[_]=s,h[H]===H&&l===q&&(h[P]=h[V],h[_]=h[F]),l===O&&s instanceof Error){let T=c.currentTask&&c.currentTask.data&&c.currentTask.data[Z];T&&u(s,ee,{configurable:!0,enumerable:!1,writable:!0,value:T})}for(let T=0;T<b.length;)r(h,b[T++],b[T++],b[T++],b[T++]);if(b.length==0&&l==O){h[P]=w;let T=s;try{throw new Error("Uncaught (in promise): "+v(s)+(s&&s.stack?`
|
|
2
|
+
`+s.stack:""))}catch(N){T=N}R&&(T.throwOriginal=!0),T.rejection=s,T.promise=h,T.zone=c.current,T.task=c.currentTask,m.push(T),n.scheduleMicroTask()}}}return h}let X=d("rejectionHandledHandler");function x(h){if(h[P]===w){try{let l=c[X];l&&typeof l=="function"&&l.call(this,{rejection:h[_],promise:h})}catch{}h[P]=O;for(let l=0;l<m.length;l++)h===m[l].promise&&m.splice(l,1)}}function r(h,l,s,f,y){x(h);let b=h[P],T=b?typeof f=="function"?f:Q:typeof y=="function"?y:$;l.scheduleMicroTask(G,()=>{try{let N=h[_],L=!!s&&H===s[H];L&&(s[F]=N,s[V]=b);let I=l.run(T,void 0,L&&T!==$&&T!==Q?[]:[N]);K(s,!0,I)}catch(N){K(s,!1,N)}},s)}let o="function ZoneAwarePromise() { [native code] }",i=function(){},g=e.AggregateError;class k{static toString(){return o}static resolve(l){return l instanceof k?l:K(new this(null),q,l)}static reject(l){return K(new this(null),O,l)}static withResolvers(){let l={};return l.promise=new k((s,f)=>{l.resolve=s,l.reject=f}),l}static any(l){if(!l||typeof l[Symbol.iterator]!="function")return Promise.reject(new g([],"All promises were rejected"));let s=[],f=0;try{for(let T of l)f++,s.push(k.resolve(T))}catch{return Promise.reject(new g([],"All promises were rejected"))}if(f===0)return Promise.reject(new g([],"All promises were rejected"));let y=!1,b=[];return new k((T,N)=>{for(let L=0;L<s.length;L++)s[L].then(I=>{y||(y=!0,T(I))},I=>{b.push(I),f--,f===0&&(y=!0,N(new g(b,"All promises were rejected")))})})}static race(l){let s,f,y=new this((N,L)=>{s=N,f=L});function b(N){s(N)}function T(N){f(N)}for(let N of l)W(N)||(N=this.resolve(N)),N.then(b,T);return y}static all(l){return k.allWithCallback(l)}static allSettled(l){return(this&&this.prototype instanceof k?this:k).allWithCallback(l,{thenCallback:f=>({status:"fulfilled",value:f}),errorCallback:f=>({status:"rejected",reason:f})})}static allWithCallback(l,s){let f,y,b=new this((I,B)=>{f=I,y=B}),T=2,N=0,L=[];for(let I of l){W(I)||(I=this.resolve(I));let B=N;try{I.then(z=>{L[B]=s?s.thenCallback(z):z,T--,T===0&&f(L)},z=>{s?(L[B]=s.errorCallback(z),T--,T===0&&f(L)):y(z)})}catch(z){y(z)}T++,N++}return T-=2,T===0&&f(L),b}constructor(l){let s=this;if(!(s instanceof k))throw new Error("Must be an instanceof Promise.");s[P]=E,s[_]=[];try{let f=C();l&&l(f(M(s,q)),f(M(s,O)))}catch(f){K(s,!1,f)}}get[Symbol.toStringTag](){return"Promise"}get[Symbol.species](){return k}then(l,s){var f;let y=(f=this.constructor)==null?void 0:f[Symbol.species];(!y||typeof y!="function")&&(y=this.constructor||k);let b=new y(i),T=c.current;return this[P]==E?this[_].push(T,b,l,s):r(this,T,b,l,s),b}catch(l){return this.then(null,l)}finally(l){var s;let f=(s=this.constructor)==null?void 0:s[Symbol.species];(!f||typeof f!="function")&&(f=k);let y=new f(i);y[H]=H;let b=c.current;return this[P]==E?this[_].push(b,y,l,l):r(this,b,y,l,l),y}}k.resolve=k.resolve,k.reject=k.reject,k.race=k.race,k.all=k.all;let re=e[p]=e.Promise;e.Promise=k;let se=d("thenPatched");function ie(h){let l=h.prototype,s=a(l,"then");if(s&&(s.writable===!1||!s.configurable))return;let f=l.then;l[D]=f,h.prototype.then=function(y,b){return new k((N,L)=>{f.call(this,N,L)}).then(y,b)},h[se]=!0}n.patchThen=ie;function pe(h){return function(l,s){let f=h.apply(l,s);if(f instanceof k)return f;let y=f.constructor;return y[se]||ie(y),f}}if(re){ie(re);let h=re.try;h&&typeof h=="function"&&(k.try=h),_e(e,"fetch",l=>pe(l))}return Promise[c.__symbol__("uncaughtPromiseErrors")]=m,k})}function Gt(t){t.__load_patch("toString",e=>{let c=Function.prototype.toString,n=A("OriginalDelegate"),a=A("Promise"),u=A("Error"),v=function(){if(typeof this=="function"){let p=this[n];if(p)return typeof p=="function"?c.call(p):Object.prototype.toString.call(p);if(this===Promise){let D=e[a];if(D)return c.call(D)}if(this===Error){let D=e[u];if(D)return c.call(D)}}return c.call(this)};v[n]=c,Function.prototype.toString=v;let d=Object.prototype.toString,m="[object Promise]";Object.prototype.toString=function(){return typeof Promise=="function"&&this instanceof Promise?m:d.call(this)}})}function xt(t,e,c,n,a){let u=Zone.__symbol__(n);if(e[u])return;let v=e[u]=e[n];e[n]=function(d,m,R){return m&&m.prototype&&a.forEach(function(p){let D=`${c}.${n}::`+p,Z=m.prototype;try{if(Z.hasOwnProperty(p)){let j=t.ObjectGetOwnPropertyDescriptor(Z,p);j&&j.value?(j.value=t.wrapWithCurrentZone(j.value,D),t._redefineProperty(m.prototype,p,j)):Z[p]&&(Z[p]=t.wrapWithCurrentZone(Z[p],D))}else Z[p]&&(Z[p]=t.wrapWithCurrentZone(Z[p],D))}catch{}}),v.call(e,d,m,R)},t.attachOriginToPatched(e[n],v)}function Bt(t){t.__load_patch("util",(e,c,n)=>{let a=je(e);n.patchOnProperties=it,n.patchMethod=_e,n.bindArguments=Be,n.patchMacroTask=Ot;let u=c.__symbol__("BLACK_LISTED_EVENTS"),v=c.__symbol__("UNPATCHED_EVENTS");e[v]&&(e[u]=e[v]),e[u]&&(c[u]=c[v]=e[u]),n.patchEventPrototype=Lt,n.patchEventTarget=Zt,n.ObjectDefineProperty=Ae,n.ObjectGetOwnPropertyDescriptor=ve,n.ObjectCreate=bt,n.ArraySlice=Pt,n.patchClass=ke,n.wrapWithCurrentZone=Ge,n.filterProperties=ft,n.attachOriginToPatched=de,n._redefineProperty=Object.defineProperty,n.patchCallbacks=xt,n.getGlobalObjects=()=>({globalSources:at,zoneSymbolEventNames:oe,eventNames:a,isBrowser:ze,isMix:st,isNode:Ce,TRUE_STR:he,FALSE_STR:fe,ZONE_SYMBOL_PREFIX:be,ADD_EVENT_LISTENER_STR:Fe,REMOVE_EVENT_LISTENER_STR:Ve})})}function zt(t){Vt(t),Gt(t),Bt(t)}var _t=vt();zt(_t);Ft(_t);
|
|
Binary file
|