livemark 0.10.1 → 0.10.3
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/package.json
CHANGED
|
@@ -9,40 +9,50 @@ export interface LivemarkOptions {
|
|
|
9
9
|
configPath: string
|
|
10
10
|
}
|
|
11
11
|
|
|
12
|
-
/**
|
|
13
|
-
*
|
|
14
|
-
*
|
|
15
|
-
|
|
16
|
-
const PINNED_SPECIFIERS = ["@tanstack/react-start"] as const
|
|
17
|
-
|
|
18
|
-
function isPinnedSpecifier(id: string) {
|
|
19
|
-
for (const spec of PINNED_SPECIFIERS) {
|
|
20
|
-
if (id === spec || id.startsWith(`${spec}/`)) return true
|
|
21
|
-
}
|
|
22
|
-
return false
|
|
23
|
-
}
|
|
12
|
+
/** Match bare specifiers (`react`, `@scope/pkg`, `react/jsx-runtime`) but
|
|
13
|
+
* not relative (`./foo`), absolute (`/foo`), URL, or virtual (`\0...`)
|
|
14
|
+
* paths. */
|
|
15
|
+
const BARE_SPECIFIER_RE = /^(@[^/]+\/)?[a-z0-9_][^?#]*$/i
|
|
24
16
|
|
|
25
17
|
/** Livemark dev/build integration:
|
|
18
|
+
* - Anchors every bare-specifier resolution at livemark's own location so
|
|
19
|
+
* the entire build pipeline runs inside livemark's package boundary,
|
|
20
|
+
* regardless of which file (consumer override, transitive package,
|
|
21
|
+
* livemark source) issues the import. Removes pnpm-isolation hazards
|
|
22
|
+
* without forcing peerDependencies on the consumer.
|
|
26
23
|
* - Redirects imports that land in `<defaultsRoot>/<subdir>/` to the matching
|
|
27
24
|
* user file under `<overridesRoot>/<subdir>/` when it exists.
|
|
28
25
|
* - Watches `livemark.config.ts` and `.livemark/**` so edits, additions and
|
|
29
26
|
* deletions trigger the right reload without manual restart. */
|
|
30
27
|
export function livemark(opts: LivemarkOptions): Plugin {
|
|
31
28
|
const EXT_RE = /\.(tsx|ts|jsx|js|css)(\?|$)/
|
|
29
|
+
const livemarkAnchor = join(opts.defaultsRoot, "index.ts")
|
|
32
30
|
return {
|
|
33
31
|
name: "livemark",
|
|
34
32
|
enforce: "pre",
|
|
35
33
|
async resolveId(id, importer, options) {
|
|
36
|
-
//
|
|
37
|
-
//
|
|
38
|
-
//
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
34
|
+
// Encapsulation bridge: if the importer can resolve `id` itself
|
|
35
|
+
// (its own subtree has the right version), use that — preserves
|
|
36
|
+
// version isolation between transitive packages (e.g. recharts and
|
|
37
|
+
// mermaid both pulling different d3 majors). Only when the importer
|
|
38
|
+
// *can't* resolve do we fall back to livemark's own location, which
|
|
39
|
+
// covers React, the @tanstack/react-* cluster, and anything else
|
|
40
|
+
// that lives only inside livemark's tree but gets requested from a
|
|
41
|
+
// file that doesn't declare it (consumer overrides, foreign
|
|
42
|
+
// packages compiled by TanStack's transforms, etc.).
|
|
43
|
+
if (BARE_SPECIFIER_RE.test(id)) {
|
|
44
|
+
const fromImporter = importer
|
|
45
|
+
? await this.resolve(id, importer, {
|
|
46
|
+
...options,
|
|
47
|
+
skipSelf: true,
|
|
48
|
+
})
|
|
49
|
+
: null
|
|
50
|
+
if (fromImporter) return fromImporter
|
|
51
|
+
const fromLivemark = await this.resolve(id, livemarkAnchor, {
|
|
42
52
|
...options,
|
|
43
53
|
skipSelf: true,
|
|
44
54
|
})
|
|
45
|
-
if (
|
|
55
|
+
if (fromLivemark) return fromLivemark
|
|
46
56
|
}
|
|
47
57
|
|
|
48
58
|
if (!importer || !EXT_RE.test(id)) return null
|
package/source/vite.config.ts
CHANGED
|
@@ -51,6 +51,16 @@ export default defineConfig({
|
|
|
51
51
|
define: {
|
|
52
52
|
"import.meta.env.CONFIG": JSON.stringify(WebsiteConfig.parse(config)),
|
|
53
53
|
},
|
|
54
|
+
// dedupe: collapse multiple resolutions of the same React-family package
|
|
55
|
+
// to a single physical module, so livemark's source, the consumer's
|
|
56
|
+
// .livemark/ overrides, and any transitive package that re-resolves React
|
|
57
|
+
// through its own peer-dep chain all share one instance. Without this,
|
|
58
|
+
// pnpm's isolated layout can land different importers on different copies
|
|
59
|
+
// of React, breaking single-instance invariants (useSyncExternalStore
|
|
60
|
+
// returns null, hooks see wrong stores).
|
|
61
|
+
resolve: {
|
|
62
|
+
dedupe: ["react", "react-dom"],
|
|
63
|
+
},
|
|
54
64
|
plugins: [
|
|
55
65
|
livemark({
|
|
56
66
|
defaultsRoot: sourceDir,
|
|
@@ -6,6 +6,11 @@ export interface LivemarkOptions {
|
|
|
6
6
|
configPath: string;
|
|
7
7
|
}
|
|
8
8
|
/** Livemark dev/build integration:
|
|
9
|
+
* - Anchors every bare-specifier resolution at livemark's own location so
|
|
10
|
+
* the entire build pipeline runs inside livemark's package boundary,
|
|
11
|
+
* regardless of which file (consumer override, transitive package,
|
|
12
|
+
* livemark source) issues the import. Removes pnpm-isolation hazards
|
|
13
|
+
* without forcing peerDependencies on the consumer.
|
|
9
14
|
* - Redirects imports that land in `<defaultsRoot>/<subdir>/` to the matching
|
|
10
15
|
* user file under `<overridesRoot>/<subdir>/` when it exists.
|
|
11
16
|
* - Watches `livemark.config.ts` and `.livemark/**` so edits, additions and
|
|
@@ -1,39 +1,50 @@
|
|
|
1
1
|
import { existsSync } from "node:fs";
|
|
2
2
|
import { join } from "node:path";
|
|
3
|
-
/**
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
|
|
7
|
-
const PINNED_SPECIFIERS = ["@tanstack/react-start"];
|
|
8
|
-
function isPinnedSpecifier(id) {
|
|
9
|
-
for (const spec of PINNED_SPECIFIERS) {
|
|
10
|
-
if (id === spec || id.startsWith(`${spec}/`))
|
|
11
|
-
return true;
|
|
12
|
-
}
|
|
13
|
-
return false;
|
|
14
|
-
}
|
|
3
|
+
/** Match bare specifiers (`react`, `@scope/pkg`, `react/jsx-runtime`) but
|
|
4
|
+
* not relative (`./foo`), absolute (`/foo`), URL, or virtual (`\0...`)
|
|
5
|
+
* paths. */
|
|
6
|
+
const BARE_SPECIFIER_RE = /^(@[^/]+\/)?[a-z0-9_][^?#]*$/i;
|
|
15
7
|
/** Livemark dev/build integration:
|
|
8
|
+
* - Anchors every bare-specifier resolution at livemark's own location so
|
|
9
|
+
* the entire build pipeline runs inside livemark's package boundary,
|
|
10
|
+
* regardless of which file (consumer override, transitive package,
|
|
11
|
+
* livemark source) issues the import. Removes pnpm-isolation hazards
|
|
12
|
+
* without forcing peerDependencies on the consumer.
|
|
16
13
|
* - Redirects imports that land in `<defaultsRoot>/<subdir>/` to the matching
|
|
17
14
|
* user file under `<overridesRoot>/<subdir>/` when it exists.
|
|
18
15
|
* - Watches `livemark.config.ts` and `.livemark/**` so edits, additions and
|
|
19
16
|
* deletions trigger the right reload without manual restart. */
|
|
20
17
|
export function livemark(opts) {
|
|
21
18
|
const EXT_RE = /\.(tsx|ts|jsx|js|css)(\?|$)/;
|
|
19
|
+
const livemarkAnchor = join(opts.defaultsRoot, "index.ts");
|
|
22
20
|
return {
|
|
23
21
|
name: "livemark",
|
|
24
22
|
enforce: "pre",
|
|
25
23
|
async resolveId(id, importer, options) {
|
|
26
|
-
//
|
|
27
|
-
//
|
|
28
|
-
//
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
24
|
+
// Encapsulation bridge: if the importer can resolve `id` itself
|
|
25
|
+
// (its own subtree has the right version), use that — preserves
|
|
26
|
+
// version isolation between transitive packages (e.g. recharts and
|
|
27
|
+
// mermaid both pulling different d3 majors). Only when the importer
|
|
28
|
+
// *can't* resolve do we fall back to livemark's own location, which
|
|
29
|
+
// covers React, the @tanstack/react-* cluster, and anything else
|
|
30
|
+
// that lives only inside livemark's tree but gets requested from a
|
|
31
|
+
// file that doesn't declare it (consumer overrides, foreign
|
|
32
|
+
// packages compiled by TanStack's transforms, etc.).
|
|
33
|
+
if (BARE_SPECIFIER_RE.test(id)) {
|
|
34
|
+
const fromImporter = importer
|
|
35
|
+
? await this.resolve(id, importer, {
|
|
36
|
+
...options,
|
|
37
|
+
skipSelf: true,
|
|
38
|
+
})
|
|
39
|
+
: null;
|
|
40
|
+
if (fromImporter)
|
|
41
|
+
return fromImporter;
|
|
42
|
+
const fromLivemark = await this.resolve(id, livemarkAnchor, {
|
|
32
43
|
...options,
|
|
33
44
|
skipSelf: true,
|
|
34
45
|
});
|
|
35
|
-
if (
|
|
36
|
-
return
|
|
46
|
+
if (fromLivemark)
|
|
47
|
+
return fromLivemark;
|
|
37
48
|
}
|
|
38
49
|
if (!importer || !EXT_RE.test(id))
|
|
39
50
|
return null;
|
|
@@ -97,4 +108,4 @@ export function livemark(opts) {
|
|
|
97
108
|
},
|
|
98
109
|
};
|
|
99
110
|
}
|
|
100
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidml0ZS1saXZlbWFyay5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NvdXJjZS9wbHVnaW5zL3ZpdGUtbGl2ZW1hcmsudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLFNBQVMsQ0FBQTtBQUNwQyxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sV0FBVyxDQUFBO0FBVWhDOzs7Z0VBR2dFO0FBQ2hFLE1BQU0saUJBQWlCLEdBQUcsQ0FBQyx1QkFBdUIsQ0FBVSxDQUFBO0FBRTVELFNBQVMsaUJBQWlCLENBQUMsRUFBVTtJQUNuQyxLQUFLLE1BQU0sSUFBSSxJQUFJLGlCQUFpQixFQUFFLENBQUM7UUFDckMsSUFBSSxFQUFFLEtBQUssSUFBSSxJQUFJLEVBQUUsQ0FBQyxVQUFVLENBQUMsR0FBRyxJQUFJLEdBQUcsQ0FBQztZQUFFLE9BQU8sSUFBSSxDQUFBO0lBQzNELENBQUM7SUFDRCxPQUFPLEtBQUssQ0FBQTtBQUNkLENBQUM7QUFFRDs7OztrRUFJa0U7QUFDbEUsTUFBTSxVQUFVLFFBQVEsQ0FBQyxJQUFxQjtJQUM1QyxNQUFNLE1BQU0sR0FBRyw2QkFBNkIsQ0FBQTtJQUM1QyxPQUFPO1FBQ0wsSUFBSSxFQUFFLFVBQVU7UUFDaEIsT0FBTyxFQUFFLEtBQUs7UUFDZCxLQUFLLENBQUMsU0FBUyxDQUFDLEVBQUUsRUFBRSxRQUFRLEVBQUUsT0FBTztZQUNuQyxvRUFBb0U7WUFDcEUsd0VBQXdFO1lBQ3hFLGtDQUFrQztZQUNsQyxJQUFJLGlCQUFpQixDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUM7Z0JBQzFCLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLFVBQVUsQ0FBQyxDQUFBO2dCQUNsRCxNQUFNLFFBQVEsR0FBRyxNQUFNLElBQUksQ0FBQyxPQUFPLENBQUMsRUFBRSxFQUFFLE1BQU0sRUFBRTtvQkFDOUMsR0FBRyxPQUFPO29CQUNWLFFBQVEs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S0FDRixDQUFBO0FBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGV4aXN0c1N5bmMgfSBmcm9tIFwibm9kZTpmc1wiXG5pbXBvcnQgeyBqb2luIH0gZnJvbSBcIm5vZGU6cGF0aFwiXG5pbXBvcnQgdHlwZSB7IFBsdWdpbiB9IGZyb20gXCJ2aXRlXCJcblxuZXhwb3J0IGludGVyZmFjZSBMaXZlbWFya09wdGlvbnMge1xuICBkZWZhdWx0c1Jvb3Q6IHN0cmluZ1xuICBvdmVycmlkZXNSb290OiBzdHJpbmdcbiAgc3ViZGlyczogc3RyaW5nW11cbiAgY29uZmlnUGF0aDogc3RyaW5nXG59XG5cbi8qKiBCYXJlIHNwZWNpZmllcnMgdGhhdCBUYW5TdGFjayBTdGFydCdzIGNvbXBpbGVyIHRyaWVzIHRvIHJlc29sdmUgZnJvbVxuICogIGFyYml0cmFyeSBpbXBvcnRlciBmaWxlcyAoaW5jbHVkaW5nIHRyYW5zaXRpdmUgcGFja2FnZXMpLiBVbmRlciBwbnBtJ3NcbiAqICBpc29sYXRlZCBsYXlvdXQgdGhlc2UgYXJlIHVucmVhY2hhYmxlIGZyb20gbm9uLWxpdmVtYXJrIGltcG9ydGVycywgc28gd2VcbiAqICBicmlkZ2UgdGhlbSBieSByZS1yZXNvbHZpbmcgZnJvbSBsaXZlbWFyaydzIG93biBsb2NhdGlvbi4gKi9cbmNvbnN0IFBJTk5FRF9TUEVDSUZJRVJTID0gW1wiQHRhbnN0YWNrL3JlYWN0LXN0YXJ0XCJdIGFzIGNvbnN0XG5cbmZ1bmN0aW9uIGlzUGlubmVkU3BlY2lmaWVyKGlkOiBzdHJpbmcpIHtcbiAgZm9yIChjb25zdCBzcGVjIG9mIFBJTk5FRF9TUEVDSUZJRVJTKSB7XG4gICAgaWYgKGlkID09PSBzcGVjIHx8IGlkLnN0YXJ0c1dpdGgoYCR7c3BlY30vYCkpIHJldHVybiB0cnVlXG4gIH1cbiAgcmV0dXJuIGZhbHNlXG59XG5cbi8qKiBMaXZlbWFyayBkZXYvYnVpbGQgaW50ZWdyYXRpb246XG4gKiAtIFJlZGlyZWN0cyBpbXBvcnRzIHRoYXQgbGFuZCBpbiBgPGRlZmF1bHRzUm9vdD4vPHN1YmRpcj4vYCB0byB0aGUgbWF0Y2hpbmdcbiAqICAgdXNlciBmaWxlIHVuZGVyIGA8b3ZlcnJpZGVzUm9vdD4vPHN1YmRpcj4vYCB3aGVuIGl0IGV4aXN0cy5cbiAqIC0gV2F0Y2hlcyBgbGl2ZW1hcmsuY29uZmlnLnRzYCBhbmQgYC5saXZlbWFyay8qKmAgc28gZWRpdHMsIGFkZGl0aW9ucyBhbmRcbiAqICAgZGVsZXRpb25zIHRyaWdnZXIgdGhlIHJpZ2h0IHJlbG9hZCB3aXRob3V0IG1hbnVhbCByZXN0YXJ0LiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGxpdmVtYXJrKG9wdHM6IExpdmVtYXJrT3B0aW9ucyk6IFBsdWdpbiB7XG4gIGNvbnN0IEVYVF9SRSA9IC9cXC4odHN4fHRzfGpzeHxqc3xjc3MpKFxcP3wkKS9cbiAgcmV0dXJuIHtcbiAgICBuYW1lOiBcImxpdmVtYXJrXCIsXG4gICAgZW5mb3JjZTogXCJwcmVcIixcbiAgICBhc3luYyByZXNvbHZlSWQoaWQsIGltcG9ydGVyLCBvcHRpb25zKSB7XG4gICAgICAvLyBQaW4gVGFuU3RhY2sncyBkZWVwbHktcmVzb2x2ZWQgcGFja2FnZXMgdG8gbGl2ZW1hcmsncyBvd24gY29weSBzb1xuICAgICAgLy8gcG5wbSdzIGlzb2xhdGVkIGxheW91dCBkb2Vzbid0IHN0cmFuZCB0aGVtIHdoZW4gc3RhcnQtY29tcGlsZXItcGx1Z2luXG4gICAgICAvLyB3YWxrcyB0cmFuc2l0aXZlIHBhY2thZ2UgZmlsZXMuXG4gICAgICBpZiAoaXNQaW5uZWRTcGVjaWZpZXIoaWQpKSB7XG4gICAgICAgIGNvbnN0IGFuY2hvciA9IGpvaW4ob3B0cy5kZWZhdWx0c1Jvb3QsIFwiaW5kZXgudHNcIilcbiAgICAgICAgY29uc3QgcmVzb2x2ZWQgPSBhd2FpdCB0aGlzLnJlc29sdmUoaWQsIGFuY2hvciwge1xuICAgICAgICAgIC4uLm9wdGlvbnMsXG4gICAgICAgICAgc2tpcFNlbGY6IHRydWUsXG4gICAgICAgIH0pXG4gICAgICAgIGlmIChyZXNvbHZlZCkgcmV0dXJuIHJlc29sdmVkXG4gICAgICB9XG5cbiAgICAgIGlmICghaW1wb3J0ZXIgfHwgIUVYVF9SRS50ZXN0KGlkKSkgcmV0dXJuIG51bGxcbiAgICAgIGNvbnN0IHJlc29sdmVkID0gYXdhaXQgdGhpcy5yZXNvbHZlKGlkLCBpbXBvcnRlciwge1xuICAgICAgICAuLi5vcHRpb25zLFxuICAgICAgICBza2lwU2VsZjogdHJ1ZSxcbiAgICAgIH0pXG4gICAgICBpZiAoIXJlc29sdmVkKSByZXR1cm4gbnVsbFxuICAgICAgY29uc3QgcXVlcnlJZHggPSByZXNvbHZlZC5pZC5pbmRleE9mKFwiP1wiKVxuICAgICAgY29uc3QgcGF0aCA9XG4gICAgICAgIHF1ZXJ5SWR4ID09PSAtMSA/IHJlc29sdmVkLmlkIDogcmVzb2x2ZWQuaWQuc2xpY2UoMCwgcXVlcnlJZHgpXG4gICAgICBjb25zdCBxdWVyeSA9IHF1ZXJ5SWR4ID09PSAtMSA/IFwiXCIgOiByZXNvbHZlZC5pZC5zbGljZShxdWVyeUlkeClcbiAgICAgIGZvciAoY29uc3Qgc3ViZGlyIG9mIG9wdHMuc3ViZGlycykge1xuICAgICAgICBjb25zdCBkZWZhdWx0c1N1YmRpciA9IGAke2pvaW4ob3B0cy5kZWZhdWx0c1Jvb3QsIHN1YmRpcil9L2BcbiAgICAgICAgaWYgKCFwYXRoLnN0YXJ0c1dpdGgoZGVmYXVsdHNTdWJkaXIpKSBjb250aW51ZVxuICAgICAgICBjb25zdCByZWwgPSBwYXRoLnNsaWNlKGRlZmF1bHRzU3ViZGlyLmxlbmd0aClcbiAgICAgICAgY29uc3QgdXNlclBhdGggPSBqb2luKG9wdHMub3ZlcnJpZGVzUm9vdCwgc3ViZGlyLCByZWwpXG4gICAgICAgIGlmIChleGlzdHNTeW5jKHVzZXJQYXRoKSkgcmV0dXJuIHVzZXJQYXRoICsgcXVlcnlcbiAgICAgICAgcmV0dXJuIG51bGxcbiAgICAgIH1cbiAgICAgIHJldHVybiBudWxsXG4gICAgfSxcbiAgICBjb25maWd1cmVTZXJ2ZXIoc2VydmVyKSB7XG4gICAgICBzZXJ2ZXIud2F0Y2hlci5hZGQob3B0cy5jb25maWdQYXRoKVxuICAgICAgc2VydmVyLndhdGNoZXIuYWRkKGpvaW4ob3B0cy5vdmVycmlkZXNSb290LCBcIioqLypcIikpXG5cbiAgICAgIGNvbnN0IG92ZXJyaWRlUm9vdHMgPSBvcHRzLnN1YmRpcnMubWFwKFxuICAgICAgICBzdWJkaXIgPT4gYCR7am9pbihvcHRzLm92ZXJyaWRlc1Jvb3QsIHN1YmRpcil9L2AsXG4gICAgICApXG4gICAgICBjb25zdCByb3V0ZXNSb290ID0gYCR7am9pbihvcHRzLm92ZXJyaWRlc1Jvb3QsIFwicm91dGVzXCIpfS9gXG5cbiAgICAgIGNvbnN0IG9uQ2hhbmdlID0gKGZpbGU6IHN0cmluZykgPT4ge1xuICAgICAgICBpZiAoZmlsZSA9PT0gb3B0cy5jb25maWdQYXRoKSB7XG4gICAgICAgICAgc2VydmVyLnJlc3RhcnQoKVxuICAgICAgICAgIHJldHVyblxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGZpbGUuc3RhcnRzV2l0aChyb3V0ZXNSb290KSkge1xuICAgICAgICAgIHNlcnZlci5yZXN0YXJ0KClcbiAgICAgICAgICByZXR1cm5cbiAgICAgICAgfVxuXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgb3B0cy5zdWJkaXJzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgY29uc3Qgcm9vdCA9IG92ZXJyaWRlUm9vdHNbaV1cbiAgICAgICAgICBpZiAoIXJvb3QgfHwgIWZpbGUuc3RhcnRzV2l0aChyb290KSkgY29udGludWVcbiAgICAgICAgICBjb25zdCByZWwgPSBmaWxlLnNsaWNlKHJvb3QubGVuZ3RoKVxuICAgICAgICAgIGNvbnN0IHN1YmRpciA9IG9wdHMuc3ViZGlyc1tpXVxuICAgICAgICAgIGlmICghc3ViZGlyKSBjb250aW51ZVxuICAgICAgICAgIGNvbnN0IGRlZmF1bHRQYXRoID0gam9pbihvcHRzLmRlZmF1bHRzUm9vdCwgc3ViZGlyLCByZWwpXG4gICAgICAgICAgY29uc3QgbW9kID0gc2VydmVyLm1vZHVsZUdyYXBoLmdldE1vZHVsZUJ5SWQoZGVmYXVsdFBhdGgpXG4gICAgICAgICAgaWYgKG1vZCkgc2VydmVyLm1vZHVsZUdyYXBoLmludmFsaWRhdGVNb2R1bGUobW9kKVxuICAgICAgICAgIHNlcnZlci53cy5zZW5kKHsgdHlwZTogXCJmdWxsLXJlbG9hZFwiIH0pXG4gICAgICAgICAgcmV0dXJuXG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgc2VydmVyLndhdGNoZXIub24oXCJhZGRcIiwgb25DaGFuZ2UpXG4gICAgICBzZXJ2ZXIud2F0Y2hlci5vbihcInVubGlua1wiLCBvbkNoYW5nZSlcbiAgICAgIHNlcnZlci53YXRjaGVyLm9uKFwiY2hhbmdlXCIsIGZpbGUgPT4ge1xuICAgICAgICBpZiAoZmlsZSA9PT0gb3B0cy5jb25maWdQYXRoKSBzZXJ2ZXIucmVzdGFydCgpXG4gICAgICB9KVxuICAgIH0sXG4gIH1cbn1cbiJdfQ==
|
|
111
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidml0ZS1saXZlbWFyay5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NvdXJjZS9wbHVnaW5zL3ZpdGUtbGl2ZW1hcmsudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLFNBQVMsQ0FBQTtBQUNwQyxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sV0FBVyxDQUFBO0FBVWhDOzthQUVhO0FBQ2IsTUFBTSxpQkFBaUIsR0FBRywrQkFBK0IsQ0FBQTtBQUV6RDs7Ozs7Ozs7O2tFQVNrRTtBQUNsRSxNQUFNLFVBQVUsUUFBUSxDQUFDLElBQXFCO0lBQzVDLE1BQU0sTUFBTSxHQUFHLDZCQUE2QixDQUFBO0lBQzVDLE1BQU0sY0FBYyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLFVBQVUsQ0FBQyxDQUFBO0lBQzFELE9BQU87UUFDTCxJQUFJLEVBQUUsVUFBVTtRQUNoQixPQUFPLEVBQUUsS0FBSztRQUNkLEtBQUssQ0FBQyxTQUFTLENBQUMsRUFBRSxFQUFFLFFBQVEsRUFBRSxPQUFPO1lBQ25DLGdFQUFnRTtZQUNoRSxnRUFBZ0U7WUFDaEUsbUVBQW1FO1lBQ25FLG9FQUFvRTtZQUNwRSxvRUFBb0U7WUFDcEUsaUVBQWlFO1lBQ2pFLG1FQUFtRTtZQUNuRSw0REFBNEQ7WUFDNUQscURBQXFEO1lBQ3JELElBQUksaUJBQWlCLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUM7Z0JBQy9CLE1BQU0sWUFBWSxHQUFHLFFBQVE7b0JBQzNCLENBQUMsQ0FBQyxNQUFNLElBQUksQ0FBQyxPQUFPLENBQUMsRUFBRSxFQUFFLFFBQVEsRUFBRTt3QkFDL0IsR0FBRyxPQUFPO3dCQUNWLFFBQVEsRUFBRSxJQUFJO3FCQUNmLENBQUM7b0JBQ0osQ0FBQyxDQUFDLElBQUksQ0FBQTtnQkFDUixJQUFJLFlBQVk7b0JBQUUsT0FBTyxZQUFZLENBQUE7Z0JBQ3JDLE1BQU0sWUFBWSxH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SUFBSSxDQUFDLFVBQVU7b0JBQUUsTUFBTSxDQUFDLE9BQU8sRUFBRSxDQUFBO1lBQ2hELENBQUMsQ0FBQyxDQUFBO1FBQ0osQ0FBQztLQUNGLENBQUE7QUFDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZXhpc3RzU3luYyB9IGZyb20gXCJub2RlOmZzXCJcbmltcG9ydCB7IGpvaW4gfSBmcm9tIFwibm9kZTpwYXRoXCJcbmltcG9ydCB0eXBlIHsgUGx1Z2luIH0gZnJvbSBcInZpdGVcIlxuXG5leHBvcnQgaW50ZXJmYWNlIExpdmVtYXJrT3B0aW9ucyB7XG4gIGRlZmF1bHRzUm9vdDogc3RyaW5nXG4gIG92ZXJyaWRlc1Jvb3Q6IHN0cmluZ1xuICBzdWJkaXJzOiBzdHJpbmdbXVxuICBjb25maWdQYXRoOiBzdHJpbmdcbn1cblxuLyoqIE1hdGNoIGJhcmUgc3BlY2lmaWVycyAoYHJlYWN0YCwgYEBzY29wZS9wa2dgLCBgcmVhY3QvanN4LXJ1bnRpbWVgKSBidXRcbiAqICBub3QgcmVsYXRpdmUgKGAuL2Zvb2ApLCBhYnNvbHV0ZSAoYC9mb29gKSwgVVJMLCBvciB2aXJ0dWFsIChgXFwwLi4uYClcbiAqICBwYXRocy4gKi9cbmNvbnN0IEJBUkVfU1BFQ0lGSUVSX1JFID0gL14oQFteL10rXFwvKT9bYS16MC05X11bXj8jXSokL2lcblxuLyoqIExpdmVtYXJrIGRldi9idWlsZCBpbnRlZ3JhdGlvbjpcbiAqIC0gQW5jaG9ycyBldmVyeSBiYXJlLXNwZWNpZmllciByZXNvbHV0aW9uIGF0IGxpdmVtYXJrJ3Mgb3duIGxvY2F0aW9uIHNvXG4gKiAgIHRoZSBlbnRpcmUgYnVpbGQgcGlwZWxpbmUgcnVucyBpbnNpZGUgbGl2ZW1hcmsncyBwYWNrYWdlIGJvdW5kYXJ5LFxuICogICByZWdhcmRsZXNzIG9mIHdoaWNoIGZpbGUgKGNvbnN1bWVyIG92ZXJyaWRlLCB0cmFuc2l0aXZlIHBhY2thZ2UsXG4gKiAgIGxpdmVtYXJrIHNvdXJjZSkgaXNzdWVzIHRoZSBpbXBvcnQuIFJlbW92ZXMgcG5wbS1pc29sYXRpb24gaGF6YXJkc1xuICogICB3aXRob3V0IGZvcmNpbmcgcGVlckRlcGVuZGVuY2llcyBvbiB0aGUgY29uc3VtZXIuXG4gKiAtIFJlZGlyZWN0cyBpbXBvcnRzIHRoYXQgbGFuZCBpbiBgPGRlZmF1bHRzUm9vdD4vPHN1YmRpcj4vYCB0byB0aGUgbWF0Y2hpbmdcbiAqICAgdXNlciBmaWxlIHVuZGVyIGA8b3ZlcnJpZGVzUm9vdD4vPHN1YmRpcj4vYCB3aGVuIGl0IGV4aXN0cy5cbiAqIC0gV2F0Y2hlcyBgbGl2ZW1hcmsuY29uZmlnLnRzYCBhbmQgYC5saXZlbWFyay8qKmAgc28gZWRpdHMsIGFkZGl0aW9ucyBhbmRcbiAqICAgZGVsZXRpb25zIHRyaWdnZXIgdGhlIHJpZ2h0IHJlbG9hZCB3aXRob3V0IG1hbnVhbCByZXN0YXJ0LiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGxpdmVtYXJrKG9wdHM6IExpdmVtYXJrT3B0aW9ucyk6IFBsdWdpbiB7XG4gIGNvbnN0IEVYVF9SRSA9IC9cXC4odHN4fHRzfGpzeHxqc3xjc3MpKFxcP3wkKS9cbiAgY29uc3QgbGl2ZW1hcmtBbmNob3IgPSBqb2luKG9wdHMuZGVmYXVsdHNSb290LCBcImluZGV4LnRzXCIpXG4gIHJldHVybiB7XG4gICAgbmFtZTogXCJsaXZlbWFya1wiLFxuICAgIGVuZm9yY2U6IFwicHJlXCIsXG4gICAgYXN5bmMgcmVzb2x2ZUlkKGlkLCBpbXBvcnRlciwgb3B0aW9ucykge1xuICAgICAgLy8gRW5jYXBzdWxhdGlvbiBicmlkZ2U6IGlmIHRoZSBpbXBvcnRlciBjYW4gcmVzb2x2ZSBgaWRgIGl0c2VsZlxuICAgICAgLy8gKGl0cyBvd24gc3VidHJlZSBoYXMgdGhlIHJpZ2h0IHZlcnNpb24pLCB1c2UgdGhhdCDigJQgcHJlc2VydmVzXG4gICAgICAvLyB2ZXJzaW9uIGlzb2xhdGlvbiBiZXR3ZWVuIHRyYW5zaXRpdmUgcGFja2FnZXMgKGUuZy4gcmVjaGFydHMgYW5kXG4gICAgICAvLyBtZXJtYWlkIGJvdGggcHVsbGluZyBkaWZmZXJlbnQgZDMgbWFqb3JzKS4gT25seSB3aGVuIHRoZSBpbXBvcnRlclxuICAgICAgLy8gKmNhbid0KiByZXNvbHZlIGRvIHdlIGZhbGwgYmFjayB0byBsaXZlbWFyaydzIG93biBsb2NhdGlvbiwgd2hpY2hcbiAgICAgIC8vIGNvdmVycyBSZWFjdCwgdGhlIEB0YW5zdGFjay9yZWFjdC0qIGNsdXN0ZXIsIGFuZCBhbnl0aGluZyBlbHNlXG4gICAgICAvLyB0aGF0IGxpdmVzIG9ubHkgaW5zaWRlIGxpdmVtYXJrJ3MgdHJlZSBidXQgZ2V0cyByZXF1ZXN0ZWQgZnJvbSBhXG4gICAgICAvLyBmaWxlIHRoYXQgZG9lc24ndCBkZWNsYXJlIGl0IChjb25zdW1lciBvdmVycmlkZXMsIGZvcmVpZ25cbiAgICAgIC8vIHBhY2thZ2VzIGNvbXBpbGVkIGJ5IFRhblN0YWNrJ3MgdHJhbnNmb3JtcywgZXRjLikuXG4gICAgICBpZiAoQkFSRV9TUEVDSUZJRVJfUkUudGVzdChpZCkpIHtcbiAgICAgICAgY29uc3QgZnJvbUltcG9ydGVyID0gaW1wb3J0ZXJcbiAgICAgICAgICA/IGF3YWl0IHRoaXMucmVzb2x2ZShpZCwgaW1wb3J0ZXIsIHtcbiAgICAgICAgICAgICAgLi4ub3B0aW9ucyxcbiAgICAgICAgICAgICAgc2tpcFNlbGY6IHRydWUsXG4gICAgICAgICAgICB9KVxuICAgICAgICAgIDogbnVsbFxuICAgICAgICBpZiAoZnJvbUltcG9ydGVyKSByZXR1cm4gZnJvbUltcG9ydGVyXG4gICAgICAgIGNvbnN0IGZyb21MaXZlbWFyayA9IGF3YWl0IHRoaXMucmVzb2x2ZShpZCwgbGl2ZW1hcmtBbmNob3IsIHtcbiAgICAgICAgICAuLi5vcHRpb25zLFxuICAgICAgICAgIHNraXBTZWxmOiB0cnVlLFxuICAgICAgICB9KVxuICAgICAgICBpZiAoZnJvbUxpdmVtYXJrKSByZXR1cm4gZnJvbUxpdmVtYXJrXG4gICAgICB9XG5cbiAgICAgIGlmICghaW1wb3J0ZXIgfHwgIUVYVF9SRS50ZXN0KGlkKSkgcmV0dXJuIG51bGxcbiAgICAgIGNvbnN0IHJlc29sdmVkID0gYXdhaXQgdGhpcy5yZXNvbHZlKGlkLCBpbXBvcnRlciwge1xuICAgICAgICAuLi5vcHRpb25zLFxuICAgICAgICBza2lwU2VsZjogdHJ1ZSxcbiAgICAgIH0pXG4gICAgICBpZiAoIXJlc29sdmVkKSByZXR1cm4gbnVsbFxuICAgICAgY29uc3QgcXVlcnlJZHggPSByZXNvbHZlZC5pZC5pbmRleE9mKFwiP1wiKVxuICAgICAgY29uc3QgcGF0aCA9XG4gICAgICAgIHF1ZXJ5SWR4ID09PSAtMSA/IHJlc29sdmVkLmlkIDogcmVzb2x2ZWQuaWQuc2xpY2UoMCwgcXVlcnlJZHgpXG4gICAgICBjb25zdCBxdWVyeSA9IHF1ZXJ5SWR4ID09PSAtMSA/IFwiXCIgOiByZXNvbHZlZC5pZC5zbGljZShxdWVyeUlkeClcbiAgICAgIGZvciAoY29uc3Qgc3ViZGlyIG9mIG9wdHMuc3ViZGlycykge1xuICAgICAgICBjb25zdCBkZWZhdWx0c1N1YmRpciA9IGAke2pvaW4ob3B0cy5kZWZhdWx0c1Jvb3QsIHN1YmRpcil9L2BcbiAgICAgICAgaWYgKCFwYXRoLnN0YXJ0c1dpdGgoZGVmYXVsdHNTdWJkaXIpKSBjb250aW51ZVxuICAgICAgICBjb25zdCByZWwgPSBwYXRoLnNsaWNlKGRlZmF1bHRzU3ViZGlyLmxlbmd0aClcbiAgICAgICAgY29uc3QgdXNlclBhdGggPSBqb2luKG9wdHMub3ZlcnJpZGVzUm9vdCwgc3ViZGlyLCByZWwpXG4gICAgICAgIGlmIChleGlzdHNTeW5jKHVzZXJQYXRoKSkgcmV0dXJuIHVzZXJQYXRoICsgcXVlcnlcbiAgICAgICAgcmV0dXJuIG51bGxcbiAgICAgIH1cbiAgICAgIHJldHVybiBudWxsXG4gICAgfSxcbiAgICBjb25maWd1cmVTZXJ2ZXIoc2VydmVyKSB7XG4gICAgICBzZXJ2ZXIud2F0Y2hlci5hZGQob3B0cy5jb25maWdQYXRoKVxuICAgICAgc2VydmVyLndhdGNoZXIuYWRkKGpvaW4ob3B0cy5vdmVycmlkZXNSb290LCBcIioqLypcIikpXG5cbiAgICAgIGNvbnN0IG92ZXJyaWRlUm9vdHMgPSBvcHRzLnN1YmRpcnMubWFwKFxuICAgICAgICBzdWJkaXIgPT4gYCR7am9pbihvcHRzLm92ZXJyaWRlc1Jvb3QsIHN1YmRpcil9L2AsXG4gICAgICApXG4gICAgICBjb25zdCByb3V0ZXNSb290ID0gYCR7am9pbihvcHRzLm92ZXJyaWRlc1Jvb3QsIFwicm91dGVzXCIpfS9gXG5cbiAgICAgIGNvbnN0IG9uQ2hhbmdlID0gKGZpbGU6IHN0cmluZykgPT4ge1xuICAgICAgICBpZiAoZmlsZSA9PT0gb3B0cy5jb25maWdQYXRoKSB7XG4gICAgICAgICAgc2VydmVyLnJlc3RhcnQoKVxuICAgICAgICAgIHJldHVyblxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGZpbGUuc3RhcnRzV2l0aChyb3V0ZXNSb290KSkge1xuICAgICAgICAgIHNlcnZlci5yZXN0YXJ0KClcbiAgICAgICAgICByZXR1cm5cbiAgICAgICAgfVxuXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgb3B0cy5zdWJkaXJzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgY29uc3Qgcm9vdCA9IG92ZXJyaWRlUm9vdHNbaV1cbiAgICAgICAgICBpZiAoIXJvb3QgfHwgIWZpbGUuc3RhcnRzV2l0aChyb290KSkgY29udGludWVcbiAgICAgICAgICBjb25zdCByZWwgPSBmaWxlLnNsaWNlKHJvb3QubGVuZ3RoKVxuICAgICAgICAgIGNvbnN0IHN1YmRpciA9IG9wdHMuc3ViZGlyc1tpXVxuICAgICAgICAgIGlmICghc3ViZGlyKSBjb250aW51ZVxuICAgICAgICAgIGNvbnN0IGRlZmF1bHRQYXRoID0gam9pbihvcHRzLmRlZmF1bHRzUm9vdCwgc3ViZGlyLCByZWwpXG4gICAgICAgICAgY29uc3QgbW9kID0gc2VydmVyLm1vZHVsZUdyYXBoLmdldE1vZHVsZUJ5SWQoZGVmYXVsdFBhdGgpXG4gICAgICAgICAgaWYgKG1vZCkgc2VydmVyLm1vZHVsZUdyYXBoLmludmFsaWRhdGVNb2R1bGUobW9kKVxuICAgICAgICAgIHNlcnZlci53cy5zZW5kKHsgdHlwZTogXCJmdWxsLXJlbG9hZFwiIH0pXG4gICAgICAgICAgcmV0dXJuXG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgc2VydmVyLndhdGNoZXIub24oXCJhZGRcIiwgb25DaGFuZ2UpXG4gICAgICBzZXJ2ZXIud2F0Y2hlci5vbihcInVubGlua1wiLCBvbkNoYW5nZSlcbiAgICAgIHNlcnZlci53YXRjaGVyLm9uKFwiY2hhbmdlXCIsIGZpbGUgPT4ge1xuICAgICAgICBpZiAoZmlsZSA9PT0gb3B0cy5jb25maWdQYXRoKSBzZXJ2ZXIucmVzdGFydCgpXG4gICAgICB9KVxuICAgIH0sXG4gIH1cbn1cbiJdfQ==
|
package/target/vite.config.js
CHANGED
|
@@ -40,6 +40,16 @@ export default defineConfig({
|
|
|
40
40
|
define: {
|
|
41
41
|
"import.meta.env.CONFIG": JSON.stringify(WebsiteConfig.parse(config)),
|
|
42
42
|
},
|
|
43
|
+
// dedupe: collapse multiple resolutions of the same React-family package
|
|
44
|
+
// to a single physical module, so livemark's source, the consumer's
|
|
45
|
+
// .livemark/ overrides, and any transitive package that re-resolves React
|
|
46
|
+
// through its own peer-dep chain all share one instance. Without this,
|
|
47
|
+
// pnpm's isolated layout can land different importers on different copies
|
|
48
|
+
// of React, breaking single-instance invariants (useSyncExternalStore
|
|
49
|
+
// returns null, hooks see wrong stores).
|
|
50
|
+
resolve: {
|
|
51
|
+
dedupe: ["react", "react-dom"],
|
|
52
|
+
},
|
|
43
53
|
plugins: [
|
|
44
54
|
livemark({
|
|
45
55
|
defaultsRoot: sourceDir,
|
|
@@ -67,4 +77,4 @@ export default defineConfig({
|
|
|
67
77
|
svgr(),
|
|
68
78
|
],
|
|
69
79
|
});
|
|
70
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
80
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidml0ZS5jb25maWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zb3VyY2Uvdml0ZS5jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsYUFBYSxFQUFFLE1BQU0sU0FBUyxDQUFBO0FBQzlELE9BQU8sRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLE1BQU0sV0FBVyxDQUFBO0FBQzFDLE9BQU8sa0JBQWtCLE1BQU0sMkJBQTJCLENBQUE7QUFDMUQsT0FBTyxRQUFRLE1BQU0sbUJBQW1CLENBQUE7QUFDeEMsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLHlCQUF5QixDQUFBO0FBQ2xELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQTtBQUNqRSxPQUFPLEVBQ0wsUUFBUSxFQUNSLFNBQVMsRUFDVCxLQUFLLEdBRU4sTUFBTSwrQkFBK0IsQ0FBQTtBQUN0QyxPQUFPLEtBQUssTUFBTSxzQkFBc0IsQ0FBQTtBQUN4QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sTUFBTSxDQUFBO0FBQ25DLE9BQU8sSUFBSSxNQUFNLGtCQUFrQixDQUFBO0FBQ25DLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQTtBQUNyRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sb0JBQW9CLENBQUE7QUFDbEQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sZUFBZSxDQUFBO0FBQ2hELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQTtBQUVyRCxNQUFNLE1BQU0sR0FBRyxNQUFNLFVBQVUsRUFBRSxDQUFBO0FBQ2pDLE1BQU0sU0FBUyxHQUFHLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQTtBQUNyQyxNQUFNLGNBQWMsR0FBRyxRQUFRLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxTQUFTLENBQUMsQ0FBQTtBQUN2RCxNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxXQUFXLENBQUMsQ0FBQTtBQUVwRCwyRUFBMkU7QUFDM0UsbUNBQW1DO0FBQ25DLE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyxhQUFhLEVBQUUsWUFBWSxDQUFDLENBQUE7QUFDdkQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsRUFBRSxDQUFDO0lBQy9CLFNBQVMsQ0FBQyxhQUFhLEVBQUUsRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQTtJQUM3QyxhQUFhLENBQUMsYUFBYSxFQUFFLGtCQUFrQixDQUFDLENBQUE7QUFDbEQsQ0FBQztBQUVELE1BQU0sYUFBYSxHQUF1QixDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQTtBQUNoRSxJQUFJLFVBQVUsQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLFFBQVEsQ0FBQyxDQUFDLEVBQUUsQ0FBQztJQUM5QyxnRUFBZ0U7SUFDaEUscUVBQXFFO0lBQ3JFLG9FQUFvRTtJQUNwRSxvRUFBb0U7SUFDcEUsMERBQTBEO0lBQzFELE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxTQUFTLEVBQUUsUUFBUSxDQUFDLENBQUE7SUFDM0MsYUFBYSxDQUFDLElBQUksQ0FDaEIsUUFBUSxDQUFDLFFBQVEsQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLGFBQWEsRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQzdELENBQUE7QUFDSCxDQUFDO0FBRUQsZUFBZSxZQUFZLENBQUM7SUFDMUIsSUFBSSxFQUFFLE1BQU0sQ0FBQyxJQUFJO0lBQ2pCLFNBQVMsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxXQUFXLEVBQUUsUUFBUSxDQUFDO0lBQ25ELEtBQUssRUFBRSxFQUFFLE1BQU0sRUFBRSxpQkFBaUIsRUFBRTtJQUNwQyxNQUFNLEVBQUU7UUFDTix3QkFBd0IsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7S0FDdEU7SUFDRCx5RUFBeUU7SUFDekUsb0VBQW9FO0lBQ3BFLDBFQUEwRTtJQUMxRSx1RUFBdUU7SUFDdkUsMEVBQTBFO0lBQzFFLHNFQUFzRTtJQUN0RSx5Q0FBeUM7SUFDekMsT0FBTyxFQUFFO1FBQ1AsTUFBTSxFQUFFLENBQUMsT0FBTyxFQUFFLFdBQVcsQ0FBQztLQUMvQjtJQUNELE9BQU8sRUFBRTtRQUNQLFFBQVEsQ0FBQztZQUNQLFlBQVksRUFBRSxTQUFTO1lBQ3ZCLGFBQWE7WUFDYixPQUFPLEVBQUUsQ0FBQyxHQUFHLGdCQUFnQixDQUFDO1lBQzlCLFVBQVUsRUFBRSxNQUFNLENBQUMsVUFBVTtTQUM5QixDQUFDO1FBQ0YsUUFBUSxFQUFFO1FBQ1YsUUFBUSxFQUFFO1FBQ1Ysa0JBQWtCLENBQUM7WUFDakIsVUFBVSxFQUFFLElBQUksQ0FBQyxjQUFjLEVBQUUsd0JBQXdCLENBQUM7U0FDM0QsQ0FBQztRQUNGLGFBQWEsQ0FBQztZQUNaLFlBQVksRUFBRSxjQUFjO1lBQzVCLEtBQUssRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxDQUFDO1lBQ3RCLFNBQVMsRUFBRSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBRTtZQUM5QyxPQUFPLEVBQUUsTUFBTSxDQUFDLElBQUk7Z0JBQ2xCLENBQUMsQ0FBQyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLE1BQU0sQ0FBQyxJQUFJLEVBQUU7Z0JBQ3RDLENBQUMsQ0FBQyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUU7WUFDdEIsTUFBTSxFQUFFO2dCQUNOLGtCQUFrQixFQUFFLFNBQVMsQ0FBQyxZQUFZLEVBQUUsYUFBYSxDQUFDO2FBQzNEO1NBQ0YsQ0FBQztRQUNGLEtBQUssRUFBRTtRQUNQLElBQUksRUFBRTtLQUNQO0NBQ0YsQ0FBQyxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZXhpc3RzU3luYywgbWtkaXJTeW5jLCB3cml0ZUZpbGVTeW5jIH0gZnJvbSBcIm5vZGU6ZnNcIlxuaW1wb3J0IHsgam9pbiwgcmVsYXRpdmUgfSBmcm9tIFwibm9kZTpwYXRoXCJcbmltcG9ydCBjb250ZW50Q29sbGVjdGlvbnMgZnJvbSBcIkBjb250ZW50LWNvbGxlY3Rpb25zL3ZpdGVcIlxuaW1wb3J0IHRhaWx3aW5kIGZyb20gXCJAdGFpbHdpbmRjc3Mvdml0ZVwiXG5pbXBvcnQgeyBkZXZ0b29scyB9IGZyb20gXCJAdGFuc3RhY2svZGV2dG9vbHMtdml0ZVwiXG5pbXBvcnQgeyB0YW5zdGFja1N0YXJ0IH0gZnJvbSBcIkB0YW5zdGFjay9yZWFjdC1zdGFydC9wbHVnaW4vdml0ZVwiXG5pbXBvcnQge1xuICBwaHlzaWNhbCxcbiAgcm9vdFJvdXRlLFxuICByb3V0ZSxcbiAgdHlwZSBWaXJ0dWFsUm91dGVOb2RlLFxufSBmcm9tIFwiQHRhbnN0YWNrL3ZpcnR1YWwtZmlsZS1yb3V0ZXNcIlxuaW1wb3J0IHJlYWN0IGZyb20gXCJAdml0ZWpzL3BsdWdpbi1yZWFjdFwiXG5pbXBvcnQgeyBkZWZpbmVDb25maWcgfSBmcm9tIFwidml0ZVwiXG5pbXBvcnQgc3ZnciBmcm9tIFwidml0ZS1wbHVnaW4tc3ZnclwiXG5pbXBvcnQgeyBsb2FkQ29uZmlnIH0gZnJvbSBcIi4vYWN0aW9ucy9jb25maWcvbG9hZC50c1wiXG5pbXBvcnQgeyBXZWJzaXRlQ29uZmlnIH0gZnJvbSBcIi4vbW9kZWxzL2NvbmZpZy50c1wiXG5pbXBvcnQgeyBPVkVSUklERV9TVUJESVJTIH0gZnJvbSBcIi4vc2V0dGluZ3MudHNcIlxuaW1wb3J0IHsgbGl2ZW1hcmsgfSBmcm9tIFwiLi9wbHVnaW5zL3ZpdGUtbGl2ZW1hcmsudHNcIlxuXG5jb25zdCBjb25maWcgPSBhd2FpdCBsb2FkQ29uZmlnKClcbmNvbnN0IHNvdXJjZURpciA9IGltcG9ydC5tZXRhLmRpcm5hbWVcbmNvbnN0IHNvdXJjZVJlbGF0aXZlID0gcmVsYXRpdmUoY29uZmlnLnJvb3QsIHNvdXJjZURpcilcbmNvbnN0IG92ZXJyaWRlc1Jvb3QgPSBqb2luKGNvbmZpZy5yb290LCBcIi5saXZlbWFya1wiKVxuXG4vLyBTZWVkIGAubGl2ZW1hcmsvLmdpdGlnbm9yZWAgb24gZmlyc3QgcnVuIHNvIFZpdGUncyBidWlsZC9jYWNoZSBhcnRpZmFjdHNcbi8vIG5ldmVyIGdldCBjb21taXR0ZWQgYnkgYWNjaWRlbnQuXG5jb25zdCBnaXRpZ25vcmVQYXRoID0gam9pbihvdmVycmlkZXNSb290LCBcIi5naXRpZ25vcmVcIilcbmlmICghZXhpc3RzU3luYyhnaXRpZ25vcmVQYXRoKSkge1xuICBta2RpclN5bmMob3ZlcnJpZGVzUm9vdCwgeyByZWN1cnNpdmU6IHRydWUgfSlcbiAgd3JpdGVGaWxlU3luYyhnaXRpZ25vcmVQYXRoLCBcIi9idWlsZFxcbi9jYWNoZVxcblwiKVxufVxuXG5jb25zdCByb3V0ZUNoaWxkcmVuOiBWaXJ0dWFsUm91dGVOb2RlW10gPSBbcm91dGUoXCIvJFwiLCBcIiQudHN4XCIpXVxuaWYgKGV4aXN0c1N5bmMoam9pbihvdmVycmlkZXNSb290LCBcInJvdXRlc1wiKSkpIHtcbiAgLy8gcGh5c2ljYWwoZGlyKSByZXNvbHZlcyBgZGlyYCByZWxhdGl2ZSB0byB0aGUgcm91dGVzIGRpcmVjdG9yeVxuICAvLyAoYHNyY0RpcmVjdG9yeS9yb3V0ZXNgKS4gQSBoYXJkY29kZWQgXCIuLi8uLi8ubGl2ZW1hcmsvcm91dGVzXCIgb25seVxuICAvLyB3b3JrcyB3aGVuIHNvdXJjZS8gc2l0cyBvbmUgbGV2ZWwgdW5kZXIgY29uZmlnLnJvb3Qg4oCUIGl0IGxhbmRzIGF0XG4gIC8vIG5vZGVfbW9kdWxlcy8ubGl2ZW1hcmsvcm91dGVzIG9uY2UgbGl2ZW1hcmsgaXMgaW5zdGFsbGVkLiBDb21wdXRlXG4gIC8vIHRoZSBwYXRoIGR5bmFtaWNhbGx5IGZyb20gdGhlIGNvbnN1bWVyJ3MgYWN0dWFsIGxheW91dC5cbiAgY29uc3Qgcm91dGVzRGlyID0gam9pbihzb3VyY2VEaXIsIFwicm91dGVzXCIpXG4gIHJvdXRlQ2hpbGRyZW4ucHVzaChcbiAgICBwaHlzaWNhbChyZWxhdGl2ZShyb3V0ZXNEaXIsIGpvaW4ob3ZlcnJpZGVzUm9vdCwgXCJyb3V0ZXNcIikpKSxcbiAgKVxufVxuXG5leHBvcnQgZGVmYXVsdCBkZWZpbmVDb25maWcoe1xuICByb290OiBjb25maWcucm9vdCxcbiAgcHVibGljRGlyOiBqb2luKGNvbmZpZy5yb290LCBcIi5saXZlbWFya1wiLCBcInB1YmxpY1wiKSxcbiAgYnVpbGQ6IHsgb3V0RGlyOiBcIi5saXZlbWFyay9idWlsZFwiIH0sXG4gIGRlZmluZToge1xuICAgIFwiaW1wb3J0Lm1ldGEuZW52LkNPTkZJR1wiOiBKU09OLnN0cmluZ2lmeShXZWJzaXRlQ29uZmlnLnBhcnNlKGNvbmZpZykpLFxuICB9LFxuICAvLyBkZWR1cGU6IGNvbGxhcHNlIG11bHRpcGxlIHJlc29sdXRpb25zIG9mIHRoZSBzYW1lIFJlYWN0LWZhbWlseSBwYWNrYWdlXG4gIC8vIHRvIGEgc2luZ2xlIHBoeXNpY2FsIG1vZHVsZSwgc28gbGl2ZW1hcmsncyBzb3VyY2UsIHRoZSBjb25zdW1lcidzXG4gIC8vIC5saXZlbWFyay8gb3ZlcnJpZGVzLCBhbmQgYW55IHRyYW5zaXRpdmUgcGFja2FnZSB0aGF0IHJlLXJlc29sdmVzIFJlYWN0XG4gIC8vIHRocm91Z2ggaXRzIG93biBwZWVyLWRlcCBjaGFpbiBhbGwgc2hhcmUgb25lIGluc3RhbmNlLiBXaXRob3V0IHRoaXMsXG4gIC8vIHBucG0ncyBpc29sYXRlZCBsYXlvdXQgY2FuIGxhbmQgZGlmZmVyZW50IGltcG9ydGVycyBvbiBkaWZmZXJlbnQgY29waWVzXG4gIC8vIG9mIFJlYWN0LCBicmVha2luZyBzaW5nbGUtaW5zdGFuY2UgaW52YXJpYW50cyAodXNlU3luY0V4dGVybmFsU3RvcmVcbiAgLy8gcmV0dXJucyBudWxsLCBob29rcyBzZWUgd3Jvbmcgc3RvcmVzKS5cbiAgcmVzb2x2ZToge1xuICAgIGRlZHVwZTogW1wicmVhY3RcIiwgXCJyZWFjdC1kb21cIl0sXG4gIH0sXG4gIHBsdWdpbnM6IFtcbiAgICBsaXZlbWFyayh7XG4gICAgICBkZWZhdWx0c1Jvb3Q6IHNvdXJjZURpcixcbiAgICAgIG92ZXJyaWRlc1Jvb3QsXG4gICAgICBzdWJkaXJzOiBbLi4uT1ZFUlJJREVfU1VCRElSU10sXG4gICAgICBjb25maWdQYXRoOiBjb25maWcuY29uZmlnUGF0aCxcbiAgICB9KSxcbiAgICBkZXZ0b29scygpLFxuICAgIHRhaWx3aW5kKCksXG4gICAgY29udGVudENvbGxlY3Rpb25zKHtcbiAgICAgIGNvbmZpZ1BhdGg6IGpvaW4oc291cmNlUmVsYXRpdmUsIFwiY29udGVudC1jb2xsZWN0aW9ucy50c1wiKSxcbiAgICB9KSxcbiAgICB0YW5zdGFja1N0YXJ0KHtcbiAgICAgIHNyY0RpcmVjdG9yeTogc291cmNlUmVsYXRpdmUsXG4gICAgICBwYWdlczogW3sgcGF0aDogXCIvXCIgfV0sXG4gICAgICBwcmVyZW5kZXI6IHsgZW5hYmxlZDogdHJ1ZSwgY3Jhd2xMaW5rczogdHJ1ZSB9LFxuICAgICAgc2l0ZW1hcDogY29uZmlnLnNpdGVcbiAgICAgICAgPyB7IGVuYWJsZWQ6IHRydWUsIGhvc3Q6IGNvbmZpZy5zaXRlIH1cbiAgICAgICAgOiB7IGVuYWJsZWQ6IGZhbHNlIH0sXG4gICAgICByb3V0ZXI6IHtcbiAgICAgICAgdmlydHVhbFJvdXRlQ29uZmlnOiByb290Um91dGUoXCJfX3Jvb3QudHN4XCIsIHJvdXRlQ2hpbGRyZW4pLFxuICAgICAgfSxcbiAgICB9KSxcbiAgICByZWFjdCgpLFxuICAgIHN2Z3IoKSxcbiAgXSxcbn0pXG4iXX0=
|