@hsuite/smart-engines-cli 1.2.1 → 1.4.2
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 +272 -58
- package/dist/_lib/attestation.d.ts +45 -0
- package/dist/_lib/attestation.d.ts.map +1 -0
- package/dist/_lib/attestation.js +76 -0
- package/dist/_lib/attestation.js.map +1 -0
- package/dist/_lib/baas.d.ts +147 -0
- package/dist/_lib/baas.d.ts.map +1 -0
- package/dist/_lib/baas.js +260 -0
- package/dist/_lib/baas.js.map +1 -0
- package/dist/_lib/cluster.d.ts +6 -6
- package/dist/_lib/cluster.js +6 -6
- package/dist/_lib/deploy-manifest.d.ts +69 -0
- package/dist/_lib/deploy-manifest.d.ts.map +1 -0
- package/dist/_lib/deploy-manifest.js +87 -0
- package/dist/_lib/deploy-manifest.js.map +1 -0
- package/dist/_lib/docker.d.ts +82 -0
- package/dist/_lib/docker.d.ts.map +1 -0
- package/dist/_lib/docker.js +164 -0
- package/dist/_lib/docker.js.map +1 -0
- package/dist/_lib/faucet-client.d.ts +64 -0
- package/dist/_lib/faucet-client.d.ts.map +1 -0
- package/dist/_lib/faucet-client.js +92 -0
- package/dist/_lib/faucet-client.js.map +1 -0
- package/dist/_lib/framework.d.ts +59 -0
- package/dist/_lib/framework.d.ts.map +1 -0
- package/dist/_lib/framework.js +149 -0
- package/dist/_lib/framework.js.map +1 -0
- package/dist/_lib/frontend-guard.d.ts +13 -0
- package/dist/_lib/frontend-guard.d.ts.map +1 -0
- package/dist/_lib/frontend-guard.js +41 -0
- package/dist/_lib/frontend-guard.js.map +1 -0
- package/dist/_lib/registry-fanout.d.ts +178 -0
- package/dist/_lib/registry-fanout.d.ts.map +1 -0
- package/dist/_lib/registry-fanout.js +545 -0
- package/dist/_lib/registry-fanout.js.map +1 -0
- package/dist/_lib/runtime-env.d.ts +126 -0
- package/dist/_lib/runtime-env.d.ts.map +1 -0
- package/dist/_lib/runtime-env.js +172 -0
- package/dist/_lib/runtime-env.js.map +1 -0
- package/dist/_lib/subscription-client.d.ts +129 -18
- package/dist/_lib/subscription-client.d.ts.map +1 -1
- package/dist/_lib/subscription-client.js +268 -40
- package/dist/_lib/subscription-client.js.map +1 -1
- package/dist/_lib/subscription-env.d.ts +35 -0
- package/dist/_lib/subscription-env.d.ts.map +1 -1
- package/dist/_lib/subscription-env.js +46 -2
- package/dist/_lib/subscription-env.js.map +1 -1
- package/dist/commands/app-lifecycle.d.ts +36 -0
- package/dist/commands/app-lifecycle.d.ts.map +1 -0
- package/dist/commands/app-lifecycle.js +145 -0
- package/dist/commands/app-lifecycle.js.map +1 -0
- package/dist/commands/ci.d.ts +45 -0
- package/dist/commands/ci.d.ts.map +1 -0
- package/dist/commands/ci.js +174 -0
- package/dist/commands/ci.js.map +1 -0
- package/dist/commands/deploy-manifest.d.ts +11 -0
- package/dist/commands/deploy-manifest.d.ts.map +1 -0
- package/dist/commands/deploy-manifest.js +17 -0
- package/dist/commands/deploy-manifest.js.map +1 -0
- package/dist/commands/deploy.d.ts +70 -11
- package/dist/commands/deploy.d.ts.map +1 -1
- package/dist/commands/deploy.js +273 -150
- package/dist/commands/deploy.js.map +1 -1
- package/dist/commands/downgrade.js +1 -1
- package/dist/commands/downgrade.js.map +1 -1
- package/dist/commands/faucet.d.ts +78 -0
- package/dist/commands/faucet.d.ts.map +1 -0
- package/dist/commands/faucet.js +184 -0
- package/dist/commands/faucet.js.map +1 -0
- package/dist/commands/governance.js +1 -1
- package/dist/commands/governance.js.map +1 -1
- package/dist/commands/hist-balance.d.ts +1 -1
- package/dist/commands/hist-balance.js +1 -1
- package/dist/commands/init.js +1 -1
- package/dist/commands/list.d.ts +22 -0
- package/dist/commands/list.d.ts.map +1 -0
- package/dist/commands/list.js +81 -0
- package/dist/commands/list.js.map +1 -0
- package/dist/commands/personhood.js +2 -2
- package/dist/commands/personhood.js.map +1 -1
- package/dist/commands/redeploy.d.ts +62 -0
- package/dist/commands/redeploy.d.ts.map +1 -0
- package/dist/commands/redeploy.js +322 -0
- package/dist/commands/redeploy.js.map +1 -0
- package/dist/commands/status.d.ts +51 -0
- package/dist/commands/status.d.ts.map +1 -0
- package/dist/commands/status.js +138 -0
- package/dist/commands/status.js.map +1 -0
- package/dist/commands/subscribe.d.ts +94 -17
- package/dist/commands/subscribe.d.ts.map +1 -1
- package/dist/commands/subscribe.js +487 -81
- package/dist/commands/subscribe.js.map +1 -1
- package/dist/commands/transactions.d.ts +60 -0
- package/dist/commands/transactions.d.ts.map +1 -0
- package/dist/commands/transactions.js +101 -0
- package/dist/commands/transactions.js.map +1 -0
- package/dist/commands/update.d.ts +40 -0
- package/dist/commands/update.d.ts.map +1 -0
- package/dist/commands/update.js +114 -0
- package/dist/commands/update.js.map +1 -0
- package/dist/commands/verify.d.ts +10 -19
- package/dist/commands/verify.d.ts.map +1 -1
- package/dist/commands/verify.js +14 -23
- package/dist/commands/verify.js.map +1 -1
- package/dist/index.d.ts +12 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +32 -3
- package/dist/index.js.map +1 -1
- package/package.json +11 -4
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"frontend-guard.d.ts","sourceRoot":"","sources":["../../src/_lib/frontend-guard.ts"],"names":[],"mappings":"AAGA;;;;;;;;;;GAUG;AACH,wBAAsB,uBAAuB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAuBxE"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.assertNoDeploySentinels = assertNoDeploySentinels;
|
|
4
|
+
const fs_1 = require("fs");
|
|
5
|
+
const path_1 = require("path");
|
|
6
|
+
/**
|
|
7
|
+
* Fail-closed guard shared by `deploy` and `redeploy`: refuse to ship a
|
|
8
|
+
* frontend build that still carries unfilled `REPLACE_BEFORE_DEPLOY:<key>`
|
|
9
|
+
* placeholders (per-deployment config that was never set).
|
|
10
|
+
*
|
|
11
|
+
* Such a build refuses to bootstrap in the browser (the SPA's `main.ts` asserts
|
|
12
|
+
* on the sentinel prefix), and the CLI would otherwise tar+upload it silently —
|
|
13
|
+
* which is exactly how a non-bootstrapping bundle reached production. Matches
|
|
14
|
+
* the sentinel VALUE form (`:` followed by a letter) so it does NOT
|
|
15
|
+
* false-positive on the guard's own comparison literal (`REPLACE_BEFORE_DEPLOY:"`).
|
|
16
|
+
*/
|
|
17
|
+
async function assertNoDeploySentinels(dir) {
|
|
18
|
+
const SENTINEL = /REPLACE_BEFORE_DEPLOY:[A-Za-z]/;
|
|
19
|
+
const TEXT_EXT = /\.(js|mjs|cjs|html|css|json|txt|map|webmanifest)$/i;
|
|
20
|
+
const hits = [];
|
|
21
|
+
const walk = async (d) => {
|
|
22
|
+
for (const ent of await fs_1.promises.readdir(d, { withFileTypes: true })) {
|
|
23
|
+
const p = (0, path_1.join)(d, ent.name);
|
|
24
|
+
if (ent.isDirectory())
|
|
25
|
+
await walk(p);
|
|
26
|
+
else if (TEXT_EXT.test(ent.name)) {
|
|
27
|
+
const m = (await fs_1.promises.readFile(p, 'utf8')).match(SENTINEL);
|
|
28
|
+
if (m)
|
|
29
|
+
hits.push(`${(0, path_1.relative)(dir, p)} (${m[0]}…)`);
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
};
|
|
33
|
+
await walk(dir);
|
|
34
|
+
if (hits.length) {
|
|
35
|
+
throw new Error(`frontend still contains REPLACE_BEFORE_DEPLOY placeholders — fill your ` +
|
|
36
|
+
`per-deployment config (e.g. environment.prod.ts) and rebuild before deploying. ` +
|
|
37
|
+
`Offending: ${hits.slice(0, 5).join(', ')}` +
|
|
38
|
+
(hits.length > 5 ? `, +${hits.length - 5} more` : ''));
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=frontend-guard.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"frontend-guard.js","sourceRoot":"","sources":["../../src/_lib/frontend-guard.ts"],"names":[],"mappings":";;AAcA,0DAuBC;AArCD,2BAAoC;AACpC,+BAAsC;AAEtC;;;;;;;;;;GAUG;AACI,KAAK,UAAU,uBAAuB,CAAC,GAAW;IACvD,MAAM,QAAQ,GAAG,gCAAgC,CAAC;IAClD,MAAM,QAAQ,GAAG,oDAAoD,CAAC;IACtE,MAAM,IAAI,GAAa,EAAE,CAAC;IAC1B,MAAM,IAAI,GAAG,KAAK,EAAE,CAAS,EAAiB,EAAE;QAC9C,KAAK,MAAM,GAAG,IAAI,MAAM,aAAE,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;YAC/D,MAAM,CAAC,GAAG,IAAA,WAAI,EAAC,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;YAC5B,IAAI,GAAG,CAAC,WAAW,EAAE;gBAAE,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC;iBAChC,IAAI,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;gBACjC,MAAM,CAAC,GAAG,CAAC,MAAM,aAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;gBACzD,IAAI,CAAC;oBAAE,IAAI,CAAC,IAAI,CAAC,GAAG,IAAA,eAAQ,EAAC,GAAG,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YACrD,CAAC;QACH,CAAC;IACH,CAAC,CAAC;IACF,MAAM,IAAI,CAAC,GAAG,CAAC,CAAC;IAChB,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;QAChB,MAAM,IAAI,KAAK,CACb,yEAAyE;YACvE,iFAAiF;YACjF,cAAc,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;YAC3C,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,MAAM,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CACxD,CAAC;IACJ,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,178 @@
|
|
|
1
|
+
import { Buffer } from 'buffer';
|
|
2
|
+
/** A request against one cluster's Harbor Registry-v2 API. `path` is always `/v2/...` (or `/token...`). */
|
|
3
|
+
export type RegistryRequest = {
|
|
4
|
+
ip: string;
|
|
5
|
+
method: 'GET' | 'HEAD' | 'POST' | 'PUT' | 'PATCH';
|
|
6
|
+
path: string;
|
|
7
|
+
headers?: Record<string, string>;
|
|
8
|
+
body?: Buffer;
|
|
9
|
+
};
|
|
10
|
+
/** A Registry-v2 response. Header keys are lower-cased by the default transport. */
|
|
11
|
+
export type RegistryResponse = {
|
|
12
|
+
status: number;
|
|
13
|
+
headers: Record<string, string>;
|
|
14
|
+
body: Buffer;
|
|
15
|
+
};
|
|
16
|
+
/**
|
|
17
|
+
* The injectable network seam. The default implementation
|
|
18
|
+
* ({@link defaultTransport}) dials `req.ip:443` with TLS `servername` =
|
|
19
|
+
* the federated host and an added `Host` header = the federated host, with
|
|
20
|
+
* verification ON. Tests inject a fake — no real network.
|
|
21
|
+
*/
|
|
22
|
+
export type RegistryTransport = (req: RegistryRequest) => Promise<RegistryResponse>;
|
|
23
|
+
/** A fan-out target — just the cluster-ingress IP. (Kept as a type for call-site clarity.) */
|
|
24
|
+
export type FanOutTarget = {
|
|
25
|
+
ip: string;
|
|
26
|
+
};
|
|
27
|
+
/** Per-endpoint outcome of {@link ensureImageOnClusters}. */
|
|
28
|
+
export type FanOutReport = {
|
|
29
|
+
targets: Array<{
|
|
30
|
+
ip: string;
|
|
31
|
+
outcome: 'present' | 'copied' | 'failed';
|
|
32
|
+
error?: string;
|
|
33
|
+
}>;
|
|
34
|
+
};
|
|
35
|
+
export type EnsureImageOpts = {
|
|
36
|
+
host: string;
|
|
37
|
+
repository: string;
|
|
38
|
+
tag: string;
|
|
39
|
+
/** The `sha256:<64hex>` manifest digest the push produced — the SSoT for present/verify. */
|
|
40
|
+
digest: string;
|
|
41
|
+
username: string;
|
|
42
|
+
password: string;
|
|
43
|
+
/** Cluster-ingress IPs (e.g. from {@link resolveClusterEndpoints}). */
|
|
44
|
+
endpoints: string[];
|
|
45
|
+
/** Test seam — defaults to {@link defaultTransport} bound to `host`. */
|
|
46
|
+
transport?: RegistryTransport;
|
|
47
|
+
};
|
|
48
|
+
/** A parsed `WWW-Authenticate: Bearer ...` token challenge. `realm` is mandatory. */
|
|
49
|
+
export type AuthChallenge = {
|
|
50
|
+
realm: string;
|
|
51
|
+
service?: string;
|
|
52
|
+
scope?: string;
|
|
53
|
+
};
|
|
54
|
+
/**
|
|
55
|
+
* Parse a `Bearer realm="...",service="...",scope="..."` challenge. Pure.
|
|
56
|
+
*
|
|
57
|
+
* Returns `null` for a non-Bearer scheme or a Bearer challenge missing the
|
|
58
|
+
* mandatory `realm` (without a realm there is nowhere to fetch a token from).
|
|
59
|
+
*/
|
|
60
|
+
export declare function parseAuthChallenge(wwwAuthenticate: string): AuthChallenge | null;
|
|
61
|
+
/**
|
|
62
|
+
* DNS-resolve the federated host's A-records into the de-duplicated, sorted list
|
|
63
|
+
* of cluster-ingress IPs to fan out across. Injectable `resolve4` for tests;
|
|
64
|
+
* defaults to `dns.promises.resolve4`.
|
|
65
|
+
*/
|
|
66
|
+
export declare function resolveClusterEndpoints(host: string, resolve4?: (h: string) => Promise<string[]>): Promise<string[]>;
|
|
67
|
+
/**
|
|
68
|
+
* Real {@link RegistryTransport}: HTTPS to `req.ip:443` with TLS SNI + HTTP
|
|
69
|
+
* `Host` pinned to `host`, verification ON. All registry paths are `/v2/...`;
|
|
70
|
+
* absolute token-realm URLs are handled by {@link fetchAbsolute}.
|
|
71
|
+
*/
|
|
72
|
+
export declare function defaultTransport(host: string): RegistryTransport;
|
|
73
|
+
/**
|
|
74
|
+
* Fan out an already-pushed image to every cluster Harbor and prove it landed
|
|
75
|
+
* on all of them. See the module header for the full algorithm. Throws if no
|
|
76
|
+
* endpoint serves the digest to copy from, or if re-verification finds any
|
|
77
|
+
* endpoint not serving the pushed digest (the error names the failed IPs).
|
|
78
|
+
*/
|
|
79
|
+
export declare function ensureImageOnClusters(opts: EnsureImageOpts): Promise<FanOutReport>;
|
|
80
|
+
/** Options for {@link resolveRegistryDigest}. */
|
|
81
|
+
export type ResolveRegistryDigestOpts = {
|
|
82
|
+
/** Federated Harbor host, e.g. `harbor.testnet.hsuite.network` (no scheme/port). */
|
|
83
|
+
host: string;
|
|
84
|
+
/** Repository path, e.g. `hsuite-customers-<appId>/app`. */
|
|
85
|
+
repository: string;
|
|
86
|
+
/** The pushed tag to resolve to its canonical served digest. */
|
|
87
|
+
tag: string;
|
|
88
|
+
username: string;
|
|
89
|
+
password: string;
|
|
90
|
+
/** Test seam — the registry transport (defaults to {@link defaultTransport}). */
|
|
91
|
+
transport?: RegistryTransport;
|
|
92
|
+
/** Test seam — DNS A-record resolver (defaults to `dns.promises.resolve4`). */
|
|
93
|
+
resolve4?: (h: string) => Promise<string[]>;
|
|
94
|
+
};
|
|
95
|
+
/**
|
|
96
|
+
* Resolve the CANONICAL manifest digest the registry serves for `<repo>:<tag>`
|
|
97
|
+
* — the value returned in the `Docker-Content-Digest` response header on a
|
|
98
|
+
* `HEAD /v2/<repo>/manifests/<tag>`.
|
|
99
|
+
*
|
|
100
|
+
* ## Why this is the digest to ATTEST (issue #1589)
|
|
101
|
+
*
|
|
102
|
+
* The `docker push` summary reports the digest of the manifest the *local*
|
|
103
|
+
* client holds. With a containerd image store (Colima / buildkit snapshotter),
|
|
104
|
+
* that is an OCI image manifest, but Harbor stores + re-serves the tag under a
|
|
105
|
+
* DIFFERENT canonical digest (a re-serialized Docker schema2 manifest) — the
|
|
106
|
+
* push-summary digest and the tag's served digest disagree. The deployer pins +
|
|
107
|
+
* the fan-out re-verify BOTH key off the tag's served `Docker-Content-Digest`
|
|
108
|
+
* ({@link CustomerImageDigestResolverService} does the identical HEAD). So the
|
|
109
|
+
* CLI must attest THIS registry-truth digest, not the push-summary one, and feed
|
|
110
|
+
* the SAME value to the fan-out — then attested == fanned-out == deployer-resolved
|
|
111
|
+
* by construction.
|
|
112
|
+
*
|
|
113
|
+
* This is the exact resolution the deployer performs, so it is authoritative for
|
|
114
|
+
* the strict-equality attestation gate. Returns the `sha256:<64hex>` served
|
|
115
|
+
* digest, or `null` when the registry can't be probed (caller decides whether to
|
|
116
|
+
* fall back to the push-summary digest — a fail-soft, not a fail-open: the
|
|
117
|
+
* deployer still re-verifies).
|
|
118
|
+
*/
|
|
119
|
+
export declare function resolveRegistryDigest(opts: ResolveRegistryDigestOpts): Promise<string | null>;
|
|
120
|
+
/** Registry coordinates a push produced (shape of `BaasInitResponse.registry`). */
|
|
121
|
+
export type FanOutRegistry = {
|
|
122
|
+
server: string;
|
|
123
|
+
username: string;
|
|
124
|
+
password: string;
|
|
125
|
+
repository: string;
|
|
126
|
+
};
|
|
127
|
+
export type ResolveAttestationDigestOpts = {
|
|
128
|
+
registry: FanOutRegistry;
|
|
129
|
+
tag: string;
|
|
130
|
+
/** The `sha256:<64hex>` digest the local `docker push` reported. */
|
|
131
|
+
pushDigest: string;
|
|
132
|
+
/** Optional progress log sink (defaults to no-op). */
|
|
133
|
+
log?: (msg: string) => void;
|
|
134
|
+
/** Test seam — the registry transport. */
|
|
135
|
+
transport?: RegistryTransport;
|
|
136
|
+
/** Test seam — DNS A-record resolver (defaults to `dns.promises.resolve4`). */
|
|
137
|
+
resolve4?: (h: string) => Promise<string[]>;
|
|
138
|
+
};
|
|
139
|
+
/**
|
|
140
|
+
* Decide the digest to ATTEST (and to feed the fan-out): the digest Harbor
|
|
141
|
+
* SERVES for `<repo>:<tag>`, resolved the same way the deployer does. Falls back
|
|
142
|
+
* to the local `docker push` summary digest ONLY if the registry can't be probed
|
|
143
|
+
* (offline / dev registry / transient) — a fail-SOFT, never a fail-open, because
|
|
144
|
+
* the deployer independently re-verifies the served digest against the attested
|
|
145
|
+
* one before it pins the pod.
|
|
146
|
+
*
|
|
147
|
+
* See {@link resolveRegistryDigest} for why the served digest — not the push
|
|
148
|
+
* summary — is authoritative for the #1445 strict-equality gate (issue #1589).
|
|
149
|
+
*/
|
|
150
|
+
export declare function resolveAttestationDigest(opts: ResolveAttestationDigestOpts): Promise<string>;
|
|
151
|
+
export type FanOutPushedImageOpts = {
|
|
152
|
+
registry: FanOutRegistry;
|
|
153
|
+
tag: string;
|
|
154
|
+
/** The `sha256:<64hex>` digest the push produced. */
|
|
155
|
+
digest: string;
|
|
156
|
+
/** Test seam — DNS A-record resolver (defaults to `dns.promises.resolve4`). */
|
|
157
|
+
resolve4?: (h: string) => Promise<string[]>;
|
|
158
|
+
/** Test seam — the registry transport. */
|
|
159
|
+
transport?: RegistryTransport;
|
|
160
|
+
/** Optional progress log sink (defaults to no-op). */
|
|
161
|
+
log?: (msg: string) => void;
|
|
162
|
+
};
|
|
163
|
+
/**
|
|
164
|
+
* The deploy-time entrypoint: take an image just pushed to the federated host
|
|
165
|
+
* (landed on ONE cluster) and guarantee it is present on EVERY cluster Harbor.
|
|
166
|
+
*
|
|
167
|
+
* Resolves the registry host's A-records into the cluster-ingress set, then:
|
|
168
|
+
* - 0/1 endpoint (a non-federated or local/dev registry, or DNS that doesn't
|
|
169
|
+
* fan out) → nothing to distribute; returns `null`.
|
|
170
|
+
* - ≥2 endpoints → {@link ensureImageOnClusters}, which copies + re-verifies
|
|
171
|
+
* and THROWS if any cluster ends up not serving the pushed digest.
|
|
172
|
+
*
|
|
173
|
+
* A DNS resolution failure is treated as "single-target" (logged, returns
|
|
174
|
+
* `null`) rather than fatal: a real federated push has already proven the host
|
|
175
|
+
* resolves, so a failure here means a dev/local registry where fan-out is moot.
|
|
176
|
+
*/
|
|
177
|
+
export declare function fanOutPushedImage(opts: FanOutPushedImageOpts): Promise<FanOutReport | null>;
|
|
178
|
+
//# sourceMappingURL=registry-fanout.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"registry-fanout.d.ts","sourceRoot":"","sources":["../../src/_lib/registry-fanout.ts"],"names":[],"mappings":"AA8CA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAmChC,2GAA2G;AAC3G,MAAM,MAAM,eAAe,GAAG;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,KAAK,GAAG,MAAM,GAAG,MAAM,GAAG,KAAK,GAAG,OAAO,CAAC;IAClD,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,oFAAoF;AACpF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAEF;;;;;GAKG;AACH,MAAM,MAAM,iBAAiB,GAAG,CAAC,GAAG,EAAE,eAAe,KAAK,OAAO,CAAC,gBAAgB,CAAC,CAAC;AAEpF,8FAA8F;AAC9F,MAAM,MAAM,YAAY,GAAG;IAAE,EAAE,EAAE,MAAM,CAAA;CAAE,CAAC;AAE1C,6DAA6D;AAC7D,MAAM,MAAM,YAAY,GAAG;IACzB,OAAO,EAAE,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,SAAS,GAAG,QAAQ,GAAG,QAAQ,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAC1F,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,GAAG,EAAE,MAAM,CAAC;IACZ,4FAA4F;IAC5F,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,uEAAuE;IACvE,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,wEAAwE;IACxE,SAAS,CAAC,EAAE,iBAAiB,CAAC;CAC/B,CAAC;AAEF,qFAAqF;AACrF,MAAM,MAAM,aAAa,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAEhF;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,eAAe,EAAE,MAAM,GAAG,aAAa,GAAG,IAAI,CAgBhF;AAED;;;;GAIG;AACH,wBAAsB,uBAAuB,CAC3C,IAAI,EAAE,MAAM,EACZ,QAAQ,GAAE,CAAC,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,EAAE,CAA0B,GAClE,OAAO,CAAC,MAAM,EAAE,CAAC,CAGnB;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,iBAAiB,CA6BhE;AAwHD;;;;;GAKG;AACH,wBAAsB,qBAAqB,CAAC,IAAI,EAAE,eAAe,GAAG,OAAO,CAAC,YAAY,CAAC,CA8FxF;AA8ED,iDAAiD;AACjD,MAAM,MAAM,yBAAyB,GAAG;IACtC,oFAAoF;IACpF,IAAI,EAAE,MAAM,CAAC;IACb,4DAA4D;IAC5D,UAAU,EAAE,MAAM,CAAC;IACnB,gEAAgE;IAChE,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,iFAAiF;IACjF,SAAS,CAAC,EAAE,iBAAiB,CAAC;IAC9B,+EAA+E;IAC/E,QAAQ,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;CAC7C,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAsB,qBAAqB,CACzC,IAAI,EAAE,yBAAyB,GAC9B,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CA4BxB;AAED,mFAAmF;AACnF,MAAM,MAAM,cAAc,GAAG;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,4BAA4B,GAAG;IACzC,QAAQ,EAAE,cAAc,CAAC;IACzB,GAAG,EAAE,MAAM,CAAC;IACZ,oEAAoE;IACpE,UAAU,EAAE,MAAM,CAAC;IACnB,sDAAsD;IACtD,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5B,0CAA0C;IAC1C,SAAS,CAAC,EAAE,iBAAiB,CAAC;IAC9B,+EAA+E;IAC/E,QAAQ,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;CAC7C,CAAC;AAEF;;;;;;;;;;GAUG;AACH,wBAAsB,wBAAwB,CAC5C,IAAI,EAAE,4BAA4B,GACjC,OAAO,CAAC,MAAM,CAAC,CAkCjB;AAED,MAAM,MAAM,qBAAqB,GAAG;IAClC,QAAQ,EAAE,cAAc,CAAC;IACzB,GAAG,EAAE,MAAM,CAAC;IACZ,qDAAqD;IACrD,MAAM,EAAE,MAAM,CAAC;IACf,+EAA+E;IAC/E,QAAQ,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAC5C,0CAA0C;IAC1C,SAAS,CAAC,EAAE,iBAAiB,CAAC;IAC9B,sDAAsD;IACtD,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;CAC7B,CAAC;AAEF;;;;;;;;;;;;;GAaG;AACH,wBAAsB,iBAAiB,CACrC,IAAI,EAAE,qBAAqB,GAC1B,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,CA+B9B"}
|