@matter/tools 0.11.1 → 0.11.2-alpha.0-20241102-aa282dab8

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.
Files changed (72) hide show
  1. package/README.md +2 -2
  2. package/dist/cjs/building/builder.d.ts.map +1 -1
  3. package/dist/cjs/building/builder.js.map +1 -1
  4. package/dist/cjs/building/cli.d.ts.map +1 -1
  5. package/dist/cjs/building/cli.js +27 -5
  6. package/dist/cjs/building/cli.js.map +1 -1
  7. package/dist/cjs/building/docs.d.ts +18 -0
  8. package/dist/cjs/building/docs.d.ts.map +1 -0
  9. package/dist/cjs/building/docs.js +249 -0
  10. package/dist/cjs/building/docs.js.map +6 -0
  11. package/dist/cjs/index.d.ts +1 -1
  12. package/dist/cjs/index.d.ts.map +1 -1
  13. package/dist/cjs/index.js +1 -1
  14. package/dist/cjs/index.js.map +1 -1
  15. package/dist/cjs/util/{files.d.ts → file.d.ts} +3 -1
  16. package/dist/cjs/util/file.d.ts.map +1 -0
  17. package/dist/cjs/util/{files.js → file.js} +21 -7
  18. package/dist/cjs/util/file.js.map +6 -0
  19. package/dist/cjs/util/index.d.ts +1 -1
  20. package/dist/cjs/util/index.d.ts.map +1 -1
  21. package/dist/cjs/util/index.js +1 -1
  22. package/dist/cjs/util/index.js.map +1 -1
  23. package/dist/cjs/util/package.d.ts +11 -0
  24. package/dist/cjs/util/package.d.ts.map +1 -1
  25. package/dist/cjs/util/package.js +104 -4
  26. package/dist/cjs/util/package.js.map +1 -1
  27. package/dist/cjs/util/progress.d.ts +1 -0
  28. package/dist/cjs/util/progress.d.ts.map +1 -1
  29. package/dist/cjs/util/progress.js +5 -3
  30. package/dist/cjs/util/progress.js.map +1 -1
  31. package/dist/esm/building/builder.d.ts.map +1 -1
  32. package/dist/esm/building/builder.js +1 -1
  33. package/dist/esm/building/builder.js.map +1 -1
  34. package/dist/esm/building/cli.d.ts.map +1 -1
  35. package/dist/esm/building/cli.js +28 -6
  36. package/dist/esm/building/cli.js.map +1 -1
  37. package/dist/esm/building/docs.d.ts +18 -0
  38. package/dist/esm/building/docs.d.ts.map +1 -0
  39. package/dist/esm/building/docs.js +237 -0
  40. package/dist/esm/building/docs.js.map +6 -0
  41. package/dist/esm/index.d.ts +1 -1
  42. package/dist/esm/index.d.ts.map +1 -1
  43. package/dist/esm/index.js +2 -2
  44. package/dist/esm/util/{files.d.ts → file.d.ts} +3 -1
  45. package/dist/esm/util/file.d.ts.map +1 -0
  46. package/dist/esm/util/file.js +140 -0
  47. package/dist/esm/util/file.js.map +6 -0
  48. package/dist/esm/util/index.d.ts +1 -1
  49. package/dist/esm/util/index.d.ts.map +1 -1
  50. package/dist/esm/util/index.js +2 -2
  51. package/dist/esm/util/package.d.ts +11 -0
  52. package/dist/esm/util/package.d.ts.map +1 -1
  53. package/dist/esm/util/package.js +102 -2
  54. package/dist/esm/util/package.js.map +1 -1
  55. package/dist/esm/util/progress.d.ts +1 -0
  56. package/dist/esm/util/progress.d.ts.map +1 -1
  57. package/dist/esm/util/progress.js +6 -4
  58. package/dist/esm/util/progress.js.map +1 -1
  59. package/package.json +6 -2
  60. package/src/building/builder.ts +5 -0
  61. package/src/building/cli.ts +28 -2
  62. package/src/building/docs.ts +348 -0
  63. package/src/index.ts +1 -1
  64. package/src/util/{files.ts → file.ts} +17 -3
  65. package/src/util/index.ts +1 -1
  66. package/src/util/package.ts +134 -1
  67. package/src/util/progress.ts +5 -5
  68. package/dist/cjs/util/files.d.ts.map +0 -1
  69. package/dist/cjs/util/files.js.map +0 -6
  70. package/dist/esm/util/files.d.ts.map +0 -1
  71. package/dist/esm/util/files.js +0 -126
  72. package/dist/esm/util/files.js.map +0 -6
@@ -0,0 +1,237 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2022-2024 Matter.js Authors
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import { relative } from "path";
7
+ import {
8
+ Application,
9
+ ContainerReflection,
10
+ Converter,
11
+ DeclarationReflection,
12
+ LogLevel,
13
+ ReflectionFlag,
14
+ ReflectionKind
15
+ } from "typedoc";
16
+ import { isFile } from "../util/file.js";
17
+ import { Graph } from "./graph.js";
18
+ const PLUGINS = ["typedoc-material-theme"];
19
+ const OUTPUT_PATH = "build/docs/docs";
20
+ const THEME_OPTIONS = {
21
+ themeColor: "#cb9820"
22
+ // TODO - add service links
23
+ // GitHub: "https://github.com/project-chip/matter.js",
24
+ // Discord: "https://discord.gg/ujmRNrhDuW",
25
+ // NPM: "https://www.npmjs.com/package/@project-chip/matter.js",
26
+ };
27
+ async function buildDocs(pkg, progress) {
28
+ const modules = pkg.sourceModules;
29
+ const entryPoints = Array();
30
+ const basePath = pkg.root.path;
31
+ for (const name in modules) {
32
+ const path = modules[name];
33
+ if (path.endsWith(".json")) {
34
+ continue;
35
+ }
36
+ if (isFile(path)) {
37
+ if (!entryPoints.includes(path)) {
38
+ entryPoints.push(path);
39
+ }
40
+ } else {
41
+ throw new Error(`No source found for module ${name} path ${modules[name]}`);
42
+ }
43
+ }
44
+ const app = await createApplication({
45
+ excludeExternals: true,
46
+ entryPoints,
47
+ tsconfig: pkg.resolve("tsconfig.json"),
48
+ basePath,
49
+ skipErrorChecking: true,
50
+ // Removes a couple hundred MB of tabs so worth uncommenting at some point
51
+ //pretty: false,
52
+ readme: "none"
53
+ });
54
+ instrumentForEntrypointRepair(app, pkg);
55
+ const analysis = new ReflectionAnalysis();
56
+ app.converter.on(Converter.EVENT_CREATE_DECLARATION, () => {
57
+ progress.refresh();
58
+ });
59
+ app.converter.on(Converter.EVENT_RESOLVE, () => {
60
+ progress.refresh();
61
+ });
62
+ const reflection = await loadReflections(app, pkg);
63
+ analyzeReflections(reflection, analysis);
64
+ repairReflections(analysis);
65
+ await app.generateJson(reflection, pkg.resolve("build/docs.json"));
66
+ }
67
+ function reflectionsPath(pkg) {
68
+ const path = pkg.resolve("build/docs.json");
69
+ if (isFile(path)) {
70
+ return path;
71
+ }
72
+ }
73
+ function instrumentForEntrypointRepair(app, pkg) {
74
+ const baseGetEntryPoints = app.getEntryPoints.bind(app);
75
+ const mapping = naiveToRealNamesFor(pkg);
76
+ app.getEntryPoints = () => {
77
+ const list = baseGetEntryPoints();
78
+ if (list === void 0) {
79
+ return list;
80
+ }
81
+ for (const ep of list) {
82
+ const realName = mapping[ep.displayName];
83
+ if (realName === void 0) {
84
+ throw new Error(`Typedoc naive module name "${ep.displayName}" is unmapped`);
85
+ }
86
+ ep.displayName = realName;
87
+ }
88
+ return list;
89
+ };
90
+ }
91
+ function naiveToRealNamesFor(pkg) {
92
+ const modules = pkg.sourceModules;
93
+ const mapping = {};
94
+ const packagePrefix = `${pkg.name}/`;
95
+ const basePath = pkg.root.path;
96
+ for (const name in modules) {
97
+ const path = modules[name];
98
+ if (path.endsWith(".json")) {
99
+ continue;
100
+ }
101
+ const naiveName = relative(basePath, path).replace(/.(?:ts|js|mjs|cjs)$/, "").replace(/\/index$/, "");
102
+ if (name.startsWith(packagePrefix)) {
103
+ mapping[naiveName] = name.substring(packagePrefix.length);
104
+ } else if (name === pkg.name) {
105
+ mapping[naiveName] = ".";
106
+ } else {
107
+ mapping[naiveName] = name;
108
+ }
109
+ }
110
+ return mapping;
111
+ }
112
+ async function mergeDocs(pkg) {
113
+ const entryPoints = Array();
114
+ const root = pkg.root;
115
+ if (root.isWorkspace) {
116
+ const graph = await Graph.load(root);
117
+ if (graph === void 0) {
118
+ throw new Error(`Internal: ${pkg.name} has workspaces but no graph`);
119
+ }
120
+ for (const node of graph.nodes) {
121
+ const path = reflectionsPath(node.pkg);
122
+ if (path) {
123
+ entryPoints.push(path);
124
+ }
125
+ }
126
+ if (!entryPoints.length) {
127
+ throw new Error(`No reflections detected in workspace ${pkg.name}`);
128
+ }
129
+ } else {
130
+ const path = reflectionsPath(pkg);
131
+ if (path === void 0) {
132
+ throw new Error(`No reflections present for ${pkg.name}`);
133
+ }
134
+ entryPoints.push(path);
135
+ }
136
+ const app = await createApplication({
137
+ entryPoints,
138
+ entryPointStrategy: "merge",
139
+ ...THEME_OPTIONS
140
+ });
141
+ const reflection = await loadReflections(app, pkg);
142
+ await app.generateDocs(reflection, pkg.resolve(OUTPUT_PATH));
143
+ }
144
+ async function createApplication(options) {
145
+ return await Application.bootstrapWithPlugins({
146
+ plugin: PLUGINS,
147
+ logLevel: LogLevel.Warn,
148
+ ...options
149
+ });
150
+ }
151
+ async function loadReflections(app, pkg) {
152
+ const reflection = await app.convert();
153
+ if (reflection === void 0) {
154
+ throw new Error(`Project ${pkg.path} produced no documentation`);
155
+ }
156
+ return reflection;
157
+ }
158
+ class ReflectionAnalysis {
159
+ // TODO - need to populate this during analysis so we can warn; will replace typedoc-plugin-missing-exports
160
+ unexportedReference = /* @__PURE__ */ new Set();
161
+ mergeWithParent = /* @__PURE__ */ new Set();
162
+ mergeInto = /* @__PURE__ */ new Map();
163
+ }
164
+ function analyzeReflections(node, analysis) {
165
+ visit(node, (subject) => {
166
+ const children = childrenOf(subject);
167
+ const mergeable = {};
168
+ const namespaces = /* @__PURE__ */ new Set();
169
+ for (const child of children) {
170
+ if (child.kindOf(ReflectionKind.ClassOrInterface | ReflectionKind.Function)) {
171
+ mergeable[child.name] = child;
172
+ } else if (child.kindOf(ReflectionKind.Namespace)) {
173
+ namespaces.add(child);
174
+ }
175
+ }
176
+ for (const ns of namespaces) {
177
+ const mergeInto2 = mergeable[ns.name];
178
+ if (mergeInto2) {
179
+ analysis.mergeInto.set(ns, mergeInto2);
180
+ }
181
+ }
182
+ });
183
+ }
184
+ function repairReflections(analysis) {
185
+ for (const toMerge of analysis.mergeWithParent) {
186
+ if (toMerge.parent instanceof DeclarationReflection) {
187
+ mergeInto(toMerge, toMerge.parent);
188
+ }
189
+ }
190
+ for (const [toMerge, into] of analysis.mergeInto.entries()) {
191
+ mergeInto(toMerge, into);
192
+ }
193
+ }
194
+ function moveNode(subject, into) {
195
+ const from = subject.parent;
196
+ if (from === into) {
197
+ return;
198
+ }
199
+ if (from) {
200
+ from.removeChild(subject);
201
+ }
202
+ into.addChild(subject);
203
+ subject.parent = into;
204
+ if (from.kindOf(ReflectionKind.Namespace) && into.kindOf(ReflectionKind.ClassOrInterface) && subject.kindOf(ReflectionKind.SomeValue)) {
205
+ subject.flags.setFlag(ReflectionFlag.Static, true);
206
+ if (subject.kindOf(ReflectionKind.Variable)) {
207
+ subject.kind = ReflectionKind.Property;
208
+ }
209
+ }
210
+ }
211
+ function mergeInto(from, into) {
212
+ const children = childrenOf(from);
213
+ while (children.length) {
214
+ moveNode(children[0], into);
215
+ }
216
+ from.parent?.removeChild(from);
217
+ }
218
+ function childrenOf(node) {
219
+ if (node instanceof ContainerReflection) {
220
+ if (node.children === void 0) {
221
+ node.children = [];
222
+ }
223
+ return node.children;
224
+ }
225
+ return [];
226
+ }
227
+ function visit(node, visitor) {
228
+ visitor(node);
229
+ for (const child of childrenOf(node)) {
230
+ visit(child, visitor);
231
+ }
232
+ }
233
+ export {
234
+ buildDocs,
235
+ mergeDocs
236
+ };
237
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL2J1aWxkaW5nL2RvY3MudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCAyMDIyLTIwMjQgTWF0dGVyLmpzIEF1dGhvcnNcbiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wXG4gKi9cblxuaW1wb3J0IHsgcmVsYXRpdmUgfSBmcm9tIFwicGF0aFwiO1xuaW1wb3J0IHtcbiAgICBBcHBsaWNhdGlvbixcbiAgICBDb250YWluZXJSZWZsZWN0aW9uLFxuICAgIENvbnZlcnRlcixcbiAgICBEZWNsYXJhdGlvblJlZmxlY3Rpb24sXG4gICAgTG9nTGV2ZWwsXG4gICAgUmVmbGVjdGlvbixcbiAgICBSZWZsZWN0aW9uRmxhZyxcbiAgICBSZWZsZWN0aW9uS2luZCxcbiAgICBUeXBlRG9jT3B0aW9ucyxcbn0gZnJvbSBcInR5cGVkb2NcIjtcbmltcG9ydCB7IGlzRmlsZSB9IGZyb20gXCIuLi91dGlsL2ZpbGUuanNcIjtcbmltcG9ydCB7IFBhY2thZ2UgfSBmcm9tIFwiLi4vdXRpbC9wYWNrYWdlLmpzXCI7XG5pbXBvcnQgeyBQcm9ncmVzcyB9IGZyb20gXCIuLi91dGlsL3Byb2dyZXNzLmpzXCI7XG5pbXBvcnQgeyBHcmFwaCB9IGZyb20gXCIuL2dyYXBoLmpzXCI7XG5cbi8vIE5PVEUgLSB0aGlzIGlzIGEgXCJiZXN0IGF0dGVtcHRcIiBhdCBkb2MgZ2VuZXJhdGlvbiB2aWEgdHlwZXNjcmlwdC4gIFRoZSByZXN1bHQgaXMgbm90IGFsbCB0aGF0IGdyZWF0OyB0eXBlZG9jIGlzIHRvb1xuLy8gbGltaXRlZCBmb3Igb3VyIGNvbXBsZXggQVBJIHNvIHdlJ3JlIGdvaW5nIHRvIG5lZWQgc29tZXRoaW5nIGN1c3RvbSB0byBkbyBpdCByaWdodFxuXG5jb25zdCBQTFVHSU5TID0gW1widHlwZWRvYy1tYXRlcmlhbC10aGVtZVwiXSBhcyBzdHJpbmdbXTtcblxuLy8gRG91YmxlIFwiZG9jc1wiIGRpcmVjdG9yaWVzIHNvIHRvcC1sZXZlbCBkaXJlY3RvcnkgY2FuIGJlIGEgR0ggcmVwb3NpdG9yeSB3aXRoIHBhZ2VzIGNvbmZpZ3VyZWQgdW5kZXIgXCJkb2NzXCJcbmNvbnN0IE9VVFBVVF9QQVRIID0gXCJidWlsZC9kb2NzL2RvY3NcIjtcblxuY29uc3QgVEhFTUVfT1BUSU9OUyA9IHtcbiAgICB0aGVtZUNvbG9yOiBcIiNjYjk4MjBcIixcblxuICAgIC8vIFRPRE8gLSBhZGQgc2VydmljZSBsaW5rc1xuICAgIC8vICAgR2l0SHViOiBcImh0dHBzOi8vZ2l0aHViLmNvbS9wcm9qZWN0LWNoaXAvbWF0dGVyLmpzXCIsXG4gICAgLy8gICBEaXNjb3JkOiBcImh0dHBzOi8vZGlzY29yZC5nZy91am1STnJoRHVXXCIsXG4gICAgLy8gICBOUE06IFwiaHR0cHM6Ly93d3cubnBtanMuY29tL3BhY2thZ2UvQHByb2plY3QtY2hpcC9tYXR0ZXIuanNcIixcbn07XG5cbi8qKlxuICogR2VuZXJhdGUgYnVpbGQvZG9jcy5qc29uIGZvciBhIHNpbmdsZSBwcm9qZWN0LlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gYnVpbGREb2NzKHBrZzogUGFja2FnZSwgcHJvZ3Jlc3M6IFByb2dyZXNzKSB7XG4gICAgY29uc3QgbW9kdWxlcyA9IHBrZy5zb3VyY2VNb2R1bGVzO1xuXG4gICAgLy8gV2UgcG9pbnQgdHlwZWRvYyBhdCBlYWNoIG9mIG91ciBwdWJsaWMgZXhwb3J0c1xuICAgIGNvbnN0IGVudHJ5UG9pbnRzID0gQXJyYXk8c3RyaW5nPigpO1xuXG4gICAgLy8gSW4gYSB3b3Jrc3BhY2UgdHlwZWRvYyByZXF1aXJlcyBmaWxlcyB0byBiZSByZWxhdGl2ZSB0byB0aGUgd29ya3NwYWNlIGZvciBtZXJnZVxuICAgIGNvbnN0IGJhc2VQYXRoID0gcGtnLnJvb3QucGF0aDtcblxuICAgIGZvciAoY29uc3QgbmFtZSBpbiBtb2R1bGVzKSB7XG4gICAgICAgIGNvbnN0IHBhdGggPSBtb2R1bGVzW25hbWVdO1xuICAgICAgICBpZiAocGF0aC5lbmRzV2l0aChcIi5qc29uXCIpKSB7XG4gICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChpc0ZpbGUocGF0aCkpIHtcbiAgICAgICAgICAgIGlmICghZW50cnlQb2ludHMuaW5jbHVkZXMocGF0aCkpIHtcbiAgICAgICAgICAgICAgICBlbnRyeVBvaW50cy5wdXNoKHBhdGgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBObyBzb3VyY2UgZm91bmQgZm9yIG1vZHVsZSAke25hbWV9IHBhdGggJHttb2R1bGVzW25hbWVdfWApO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgY29uc3QgYXBwID0gYXdhaXQgY3JlYXRlQXBwbGljYXRpb24oe1xuICAgICAgICBleGNsdWRlRXh0ZXJuYWxzOiB0cnVlLFxuICAgICAgICBlbnRyeVBvaW50cyxcbiAgICAgICAgdHNjb25maWc6IHBrZy5yZXNvbHZlKFwidHNjb25maWcuanNvblwiKSxcbiAgICAgICAgYmFzZVBhdGgsXG4gICAgICAgIHNraXBFcnJvckNoZWNraW5nOiB0cnVlLFxuXG4gICAgICAgIC8vIFJlbW92ZXMgYSBjb3VwbGUgaHVuZHJlZCBNQiBvZiB0YWJzIHNvIHdvcnRoIHVuY29tbWVudGluZyBhdCBzb21lIHBvaW50XG4gICAgICAgIC8vcHJldHR5OiBmYWxzZSxcblxuICAgICAgICByZWFkbWU6IFwibm9uZVwiLFxuICAgIH0pO1xuXG4gICAgaW5zdHJ1bWVudEZvckVudHJ5cG9pbnRSZXBhaXIoYXBwLCBwa2cpO1xuXG4gICAgY29uc3QgYW5hbHlzaXMgPSBuZXcgUmVmbGVjdGlvbkFuYWx5c2lzKCk7XG5cbiAgICBhcHAuY29udmVydGVyLm9uKENvbnZlcnRlci5FVkVOVF9DUkVBVEVfREVDTEFSQVRJT04sICgvKl9jb250ZXh0LCByZWZsZWN0aW9uOiBEZWNsYXJhdGlvblJlZmxlY3Rpb24qLykgPT4ge1xuICAgICAgICBwcm9ncmVzcy5yZWZyZXNoKCk7XG4gICAgfSk7XG5cbiAgICBhcHAuY29udmVydGVyLm9uKENvbnZlcnRlci5FVkVOVF9SRVNPTFZFLCAoKSA9PiB7XG4gICAgICAgIHByb2dyZXNzLnJlZnJlc2goKTtcbiAgICB9KTtcblxuICAgIGNvbnN0IHJlZmxlY3Rpb24gPSBhd2FpdCBsb2FkUmVmbGVjdGlvbnMoYXBwLCBwa2cpO1xuXG4gICAgYW5hbHl6ZVJlZmxlY3Rpb25zKHJlZmxlY3Rpb24sIGFuYWx5c2lzKTtcbiAgICByZXBhaXJSZWZsZWN0aW9ucyhhbmFseXNpcyk7XG5cbiAgICBhd2FpdCBhcHAuZ2VuZXJhdGVKc29uKHJlZmxlY3Rpb24sIHBrZy5yZXNvbHZlKFwiYnVpbGQvZG9jcy5qc29uXCIpKTtcbn1cblxuZnVuY3Rpb24gcmVmbGVjdGlvbnNQYXRoKHBrZzogUGFja2FnZSkge1xuICAgIGNvbnN0IHBhdGggPSBwa2cucmVzb2x2ZShcImJ1aWxkL2RvY3MuanNvblwiKTtcbiAgICBpZiAoaXNGaWxlKHBhdGgpKSB7XG4gICAgICAgIHJldHVybiBwYXRoO1xuICAgIH1cbn1cblxuLyoqXG4gKiBUeXBlZG9jIGlzIGluc3VmZmljaWVudGx5IGNvbmZpZ3VyYWJsZSB0byBjb3JyZWN0bHkgbmFtZSBtb2R1bGVzLiAgVGhlIG9mZmljaWFsIGRpcmVjdGlvbiBpcyB0byByZW5hbWUgbW9kdWxlcyB1c2luZ1xuICogdGhlIFwibW9kdWxlXCIgYW5ub3RhdGlvbiBidXQgc2VlbXMgZHVtYiB0byBoYXZlIHRvIGRvIHRoYXQgd2hlbiB3ZSBjYW4gY29tcHV0ZSB0aGUgY29ycmVjdCBuYW1lLiAgV2UnZCBoYXZlIHRvIGVkaXRcbiAqIGFuZCBtYWludGFpbiBtYW55IGZpbGVzIGluY2x1ZGluZyBjb2RlZ2VuLlxuICpcbiAqIEluc3RlYWQgd2UgY3JlYXRlIGEgbWFwIG9mIHR5cGVkb2MncyBuYWl2ZSBtb2R1bGUgbmFtZSB0byB0aGUgY29ycmVjdCBuYW1lIHNvIHdlIGNhbiB1cGRhdGUgbmFtZXMgYXMgcmVmbGVjdGlvbnNcbiAqIGxvYWQuXG4gKi9cbmZ1bmN0aW9uIGluc3RydW1lbnRGb3JFbnRyeXBvaW50UmVwYWlyKGFwcDogQXBwbGljYXRpb24sIHBrZzogUGFja2FnZSkge1xuICAgIGNvbnN0IGJhc2VHZXRFbnRyeVBvaW50cyA9IGFwcC5nZXRFbnRyeVBvaW50cy5iaW5kKGFwcCk7XG4gICAgY29uc3QgbWFwcGluZyA9IG5haXZlVG9SZWFsTmFtZXNGb3IocGtnKTtcbiAgICBhcHAuZ2V0RW50cnlQb2ludHMgPSAoKSA9PiB7XG4gICAgICAgIGNvbnN0IGxpc3QgPSBiYXNlR2V0RW50cnlQb2ludHMoKTtcbiAgICAgICAgaWYgKGxpc3QgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgcmV0dXJuIGxpc3Q7XG4gICAgICAgIH1cblxuICAgICAgICBmb3IgKGNvbnN0IGVwIG9mIGxpc3QpIHtcbiAgICAgICAgICAgIGNvbnN0IHJlYWxOYW1lID0gbWFwcGluZ1tlcC5kaXNwbGF5TmFtZV07XG4gICAgICAgICAgICBpZiAocmVhbE5hbWUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgVHlwZWRvYyBuYWl2ZSBtb2R1bGUgbmFtZSBcIiR7ZXAuZGlzcGxheU5hbWV9XCIgaXMgdW5tYXBwZWRgKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVwLmRpc3BsYXlOYW1lID0gcmVhbE5hbWU7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGxpc3Q7XG4gICAgfTtcbn1cblxuLyoqXG4gKiBCdWlsZCB0aGUgbWFwIG9mIHR5cGVkb2MncyBuYWl2ZSBuYW1lIC0+IHJlYWwgbmFtZS5cbiAqL1xuZnVuY3Rpb24gbmFpdmVUb1JlYWxOYW1lc0Zvcihwa2c6IFBhY2thZ2UpIHtcbiAgICBjb25zdCBtb2R1bGVzID0gcGtnLnNvdXJjZU1vZHVsZXM7XG5cbiAgICAvLyBNYXAgb2Ygc3R1cGlkIG5hbWVzIHRoYXQgdHlwZWRvYyBjaG9vc2VzIHRvIGFjdHVhbCBleHBvcnQgbmFtZXNcbiAgICBjb25zdCBtYXBwaW5nID0ge30gYXMgUmVjb3JkPHN0cmluZywgc3RyaW5nPjtcblxuICAgIGNvbnN0IHBhY2thZ2VQcmVmaXggPSBgJHtwa2cubmFtZX0vYDtcblxuICAgIC8vIEluIGEgd29ya3NwYWNlIHR5cGVkb2MgcmVxdWlyZXMgZmlsZXMgdG8gYmUgcmVsYXRpdmUgdG8gdGhlIHdvcmtzcGFjZSBmb3IgbWVyZ2VcbiAgICBjb25zdCBiYXNlUGF0aCA9IHBrZy5yb290LnBhdGg7XG5cbiAgICBmb3IgKGNvbnN0IG5hbWUgaW4gbW9kdWxlcykge1xuICAgICAgICBjb25zdCBwYXRoID0gbW9kdWxlc1tuYW1lXTtcbiAgICAgICAgaWYgKHBhdGguZW5kc1dpdGgoXCIuanNvblwiKSkge1xuICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBuYWl2ZU5hbWUgPSByZWxhdGl2ZShiYXNlUGF0aCwgcGF0aClcbiAgICAgICAgICAgIC5yZXBsYWNlKC8uKD86dHN8anN8bWpzfGNqcykkLywgXCJcIilcblxuICAgICAgICAgICAgLy8gdHlwZWRvYyBzdHJpcHMgXCIvaW5kZXhcIjsgdGhpcyBpcyBoYXJkLWNvZGVkIGFuZCBkb2Vzbid0IHJlc3BlY3QgZXhwb3J0c1xuICAgICAgICAgICAgLnJlcGxhY2UoL1xcL2luZGV4JC8sIFwiXCIpO1xuXG4gICAgICAgIGlmIChuYW1lLnN0YXJ0c1dpdGgocGFja2FnZVByZWZpeCkpIHtcbiAgICAgICAgICAgIG1hcHBpbmdbbmFpdmVOYW1lXSA9IG5hbWUuc3Vic3RyaW5nKHBhY2thZ2VQcmVmaXgubGVuZ3RoKTtcbiAgICAgICAgfSBlbHNlIGlmIChuYW1lID09PSBwa2cubmFtZSkge1xuICAgICAgICAgICAgLy8gRmxhZ3MgZm9yIG1lcmdlIHdpdGggcGFyZW50XG4gICAgICAgICAgICBtYXBwaW5nW25haXZlTmFtZV0gPSBcIi5cIjtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIG1hcHBpbmdbbmFpdmVOYW1lXSA9IG5hbWU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gbWFwcGluZztcbn1cblxuLyoqXG4gKiBHZW5lcmF0ZSBzdGF0aWMgZG9jdW1lbnRhdGlvbiB3ZWJzaXRlLlxuICpcbiAqIFN1cHBvcnRzIGluZGl2aWR1YWwgcHJvamVjdHMgb3Igd29ya3NwYWNlcyBidXQgbm90IGluZGl2aWR1YWwgcHJvamVjdHMgd2l0aGluIHdvcmtzcGFjZXMuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBtZXJnZURvY3MocGtnOiBQYWNrYWdlKSB7XG4gICAgY29uc3QgZW50cnlQb2ludHMgPSBBcnJheTxzdHJpbmc+KCk7XG5cbiAgICBjb25zdCByb290ID0gcGtnLnJvb3Q7XG5cbiAgICBpZiAocm9vdC5pc1dvcmtzcGFjZSkge1xuICAgICAgICAvLyBXb3Jrc3BhY2VcbiAgICAgICAgY29uc3QgZ3JhcGggPSBhd2FpdCBHcmFwaC5sb2FkKHJvb3QpO1xuICAgICAgICBpZiAoZ3JhcGggPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgLy8gU2hvdWxkbid0IGhhcHBlblxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBJbnRlcm5hbDogJHtwa2cubmFtZX0gaGFzIHdvcmtzcGFjZXMgYnV0IG5vIGdyYXBoYCk7XG4gICAgICAgIH1cbiAgICAgICAgZm9yIChjb25zdCBub2RlIG9mIGdyYXBoLm5vZGVzKSB7XG4gICAgICAgICAgICBjb25zdCBwYXRoID0gcmVmbGVjdGlvbnNQYXRoKG5vZGUucGtnKTtcbiAgICAgICAgICAgIGlmIChwYXRoKSB7XG4gICAgICAgICAgICAgICAgZW50cnlQb2ludHMucHVzaChwYXRoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAoIWVudHJ5UG9pbnRzLmxlbmd0aCkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBObyByZWZsZWN0aW9ucyBkZXRlY3RlZCBpbiB3b3Jrc3BhY2UgJHtwa2cubmFtZX1gKTtcbiAgICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIFN0YW5kYWxvbmUgcGFja2FnZVxuICAgICAgICBjb25zdCBwYXRoID0gcmVmbGVjdGlvbnNQYXRoKHBrZyk7XG4gICAgICAgIGlmIChwYXRoID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgTm8gcmVmbGVjdGlvbnMgcHJlc2VudCBmb3IgJHtwa2cubmFtZX1gKTtcbiAgICAgICAgfVxuICAgICAgICBlbnRyeVBvaW50cy5wdXNoKHBhdGgpO1xuICAgIH1cblxuICAgIGNvbnN0IGFwcCA9IGF3YWl0IGNyZWF0ZUFwcGxpY2F0aW9uKHtcbiAgICAgICAgZW50cnlQb2ludHMsXG4gICAgICAgIGVudHJ5UG9pbnRTdHJhdGVneTogXCJtZXJnZVwiLFxuICAgICAgICAuLi5USEVNRV9PUFRJT05TLFxuICAgIH0pO1xuXG4gICAgY29uc3QgcmVmbGVjdGlvbiA9IGF3YWl0IGxvYWRSZWZsZWN0aW9ucyhhcHAsIHBrZyk7XG5cbiAgICBhd2FpdCBhcHAuZ2VuZXJhdGVEb2NzKHJlZmxlY3Rpb24sIHBrZy5yZXNvbHZlKE9VVFBVVF9QQVRIKSk7XG59XG5cbi8qKlxuICogQ3JlYXRlIGEgdHlwZWRvYyBcImFwcGxpY2F0aW9uXCIgd2hpY2ggaXMgdGhlIGludGVyZmFjZSBmb3IgZXh0cmFjdGluZyB0eXBlcyBhbmQgZ2VuZXJhdGluZyBkb2NzLlxuICovXG5hc3luYyBmdW5jdGlvbiBjcmVhdGVBcHBsaWNhdGlvbihvcHRpb25zOiBQYXJ0aWFsPFR5cGVEb2NPcHRpb25zPikge1xuICAgIHJldHVybiBhd2FpdCBBcHBsaWNhdGlvbi5ib290c3RyYXBXaXRoUGx1Z2lucyh7XG4gICAgICAgIHBsdWdpbjogUExVR0lOUyxcbiAgICAgICAgbG9nTGV2ZWw6IExvZ0xldmVsLldhcm4sXG4gICAgICAgIC4uLm9wdGlvbnMsXG4gICAgfSk7XG59XG5cbi8qKlxuICogUGVyZm9ybSBcImNvbnZlcnNpb25cIiB3aGljaCBpcyB0eXBlZG9jIHRlcm1pbm9sb2d5IGZvciBleGVjdXRpbmcgdGhlIG9wZXJhdGlvbiBkZWZpbmVkIGJ5IHRoZSBhcHBsaWNhdGlvbi5cbiAqL1xuYXN5bmMgZnVuY3Rpb24gbG9hZFJlZmxlY3Rpb25zKGFwcDogQXBwbGljYXRpb24sIHBrZzogUGFja2FnZSkge1xuICAgIGNvbnN0IHJlZmxlY3Rpb24gPSBhd2FpdCBhcHAuY29udmVydCgpO1xuICAgIGlmIChyZWZsZWN0aW9uID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBQcm9qZWN0ICR7cGtnLnBhdGh9IHByb2R1Y2VkIG5vIGRvY3VtZW50YXRpb25gKTtcbiAgICB9XG4gICAgcmV0dXJuIHJlZmxlY3Rpb247XG59XG5cbmNsYXNzIFJlZmxlY3Rpb25BbmFseXNpcyB7XG4gICAgLy8gVE9ETyAtIG5lZWQgdG8gcG9wdWxhdGUgdGhpcyBkdXJpbmcgYW5hbHlzaXMgc28gd2UgY2FuIHdhcm47IHdpbGwgcmVwbGFjZSB0eXBlZG9jLXBsdWdpbi1taXNzaW5nLWV4cG9ydHNcbiAgICB1bmV4cG9ydGVkUmVmZXJlbmNlID0gbmV3IFNldDxSZWZsZWN0aW9uPigpO1xuXG4gICAgbWVyZ2VXaXRoUGFyZW50ID0gbmV3IFNldDxEZWNsYXJhdGlvblJlZmxlY3Rpb24+KCk7XG4gICAgbWVyZ2VJbnRvID0gbmV3IE1hcDxEZWNsYXJhdGlvblJlZmxlY3Rpb24sIERlY2xhcmF0aW9uUmVmbGVjdGlvbj4oKTtcbn1cblxuLyoqXG4gKiBUcmFuc2Zvcm0gcmVmbGVjdGlvbnMgdG8gaW1wcm92ZSBmaW5hbCBvdXRwdXQuXG4gKi9cbmZ1bmN0aW9uIGFuYWx5emVSZWZsZWN0aW9ucyhub2RlOiBSZWZsZWN0aW9uLCBhbmFseXNpczogUmVmbGVjdGlvbkFuYWx5c2lzKSB7XG4gICAgdmlzaXQobm9kZSwgc3ViamVjdCA9PiB7XG4gICAgICAgIC8vIFRPRE8gLSBwb3B1bGF0ZSBhbmFseXNpcy51bmV4cG9yZWRSZWZlcmVuY2UgKG9yIHBlcmhhcHMganVzdCBwcmludCB3YXJuaW5nKVxuXG4gICAgICAgIGNvbnN0IGNoaWxkcmVuID0gY2hpbGRyZW5PZihzdWJqZWN0KTtcbiAgICAgICAgY29uc3QgbWVyZ2VhYmxlID0ge30gYXMgUmVjb3JkPHN0cmluZywgRGVjbGFyYXRpb25SZWZsZWN0aW9uPjtcbiAgICAgICAgY29uc3QgbmFtZXNwYWNlcyA9IG5ldyBTZXQ8RGVjbGFyYXRpb25SZWZsZWN0aW9uPigpO1xuICAgICAgICBmb3IgKGNvbnN0IGNoaWxkIG9mIGNoaWxkcmVuKSB7XG4gICAgICAgICAgICBpZiAoY2hpbGQua2luZE9mKFJlZmxlY3Rpb25LaW5kLkNsYXNzT3JJbnRlcmZhY2UgfCBSZWZsZWN0aW9uS2luZC5GdW5jdGlvbikpIHtcbiAgICAgICAgICAgICAgICBtZXJnZWFibGVbY2hpbGQubmFtZV0gPSBjaGlsZDtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoY2hpbGQua2luZE9mKFJlZmxlY3Rpb25LaW5kLk5hbWVzcGFjZSkpIHtcbiAgICAgICAgICAgICAgICBuYW1lc3BhY2VzLmFkZChjaGlsZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBmb3IgKGNvbnN0IG5zIG9mIG5hbWVzcGFjZXMpIHtcbiAgICAgICAgICAgIGNvbnN0IG1lcmdlSW50byA9IG1lcmdlYWJsZVtucy5uYW1lXTtcbiAgICAgICAgICAgIGlmIChtZXJnZUludG8pIHtcbiAgICAgICAgICAgICAgICBhbmFseXNpcy5tZXJnZUludG8uc2V0KG5zLCBtZXJnZUludG8pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfSk7XG59XG5cbmZ1bmN0aW9uIHJlcGFpclJlZmxlY3Rpb25zKGFuYWx5c2lzOiBSZWZsZWN0aW9uQW5hbHlzaXMpIHtcbiAgICBmb3IgKGNvbnN0IHRvTWVyZ2Ugb2YgYW5hbHlzaXMubWVyZ2VXaXRoUGFyZW50KSB7XG4gICAgICAgIGlmICh0b01lcmdlLnBhcmVudCBpbnN0YW5jZW9mIERlY2xhcmF0aW9uUmVmbGVjdGlvbikge1xuICAgICAgICAgICAgbWVyZ2VJbnRvKHRvTWVyZ2UsIHRvTWVyZ2UucGFyZW50KTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBmb3IgKGNvbnN0IFt0b01lcmdlLCBpbnRvXSBvZiBhbmFseXNpcy5tZXJnZUludG8uZW50cmllcygpKSB7XG4gICAgICAgIG1lcmdlSW50byh0b01lcmdlLCBpbnRvKTtcbiAgICB9XG59XG5cbmZ1bmN0aW9uIG1vdmVOb2RlKHN1YmplY3Q6IERlY2xhcmF0aW9uUmVmbGVjdGlvbiwgaW50bzogQ29udGFpbmVyUmVmbGVjdGlvbikge1xuICAgIGNvbnN0IGZyb20gPSBzdWJqZWN0LnBhcmVudCBhcyBDb250YWluZXJSZWZsZWN0aW9uO1xuXG4gICAgLy8gTm8gYWN0dWFsIG1vdmVtZW50XG4gICAgaWYgKGZyb20gPT09IGludG8pIHtcbiAgICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8vIFJlbW92ZSBmcm9tIG9sZCBwYXJlbnRcbiAgICBpZiAoZnJvbSkge1xuICAgICAgICBmcm9tLnJlbW92ZUNoaWxkKHN1YmplY3QpO1xuICAgIH1cblxuICAgIC8vIEFkZCB0byBuZXcgcGFyZW50XG4gICAgaW50by5hZGRDaGlsZChzdWJqZWN0KTtcbiAgICBzdWJqZWN0LnBhcmVudCA9IGludG87XG5cbiAgICAvLyBXaGVuIG1lcmdpbmcgYSBuYW1lc3BhY2UgaW50byBhIHR5cGUgdHdlYWsgbW9kaWZpZXIgYW5kIGtpbmQgYXBwcm9wcmlhdGVseSAoYSBiaXQgb2YgZ3Vlc3NpbmcgaGVyZTsgbWlnaHQgbmVlZFxuICAgIC8vIHR3ZWFraW5nKVxuICAgIGlmIChcbiAgICAgICAgZnJvbS5raW5kT2YoUmVmbGVjdGlvbktpbmQuTmFtZXNwYWNlKSAmJlxuICAgICAgICBpbnRvLmtpbmRPZihSZWZsZWN0aW9uS2luZC5DbGFzc09ySW50ZXJmYWNlKSAmJlxuICAgICAgICBzdWJqZWN0LmtpbmRPZihSZWZsZWN0aW9uS2luZC5Tb21lVmFsdWUpXG4gICAgKSB7XG4gICAgICAgIHN1YmplY3QuZmxhZ3Muc2V0RmxhZyhSZWZsZWN0aW9uRmxhZy5TdGF0aWMsIHRydWUpO1xuICAgICAgICBpZiAoc3ViamVjdC5raW5kT2YoUmVmbGVjdGlvbktpbmQuVmFyaWFibGUpKSB7XG4gICAgICAgICAgICBzdWJqZWN0LmtpbmQgPSBSZWZsZWN0aW9uS2luZC5Qcm9wZXJ0eTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuZnVuY3Rpb24gbWVyZ2VJbnRvKGZyb206IERlY2xhcmF0aW9uUmVmbGVjdGlvbiwgaW50bzogQ29udGFpbmVyUmVmbGVjdGlvbikge1xuICAgIGNvbnN0IGNoaWxkcmVuID0gY2hpbGRyZW5PZihmcm9tKTtcbiAgICB3aGlsZSAoY2hpbGRyZW4ubGVuZ3RoKSB7XG4gICAgICAgIG1vdmVOb2RlKGNoaWxkcmVuWzBdLCBpbnRvKTtcbiAgICB9XG4gICAgKGZyb20ucGFyZW50IGFzIENvbnRhaW5lclJlZmxlY3Rpb24pPy5yZW1vdmVDaGlsZChmcm9tKTtcbiAgICAvLyBUT0RPIC0gcmVtYXAgbmFtZVxufVxuXG5mdW5jdGlvbiBjaGlsZHJlbk9mKG5vZGU6IFJlZmxlY3Rpb24pIHtcbiAgICBpZiAobm9kZSBpbnN0YW5jZW9mIENvbnRhaW5lclJlZmxlY3Rpb24pIHtcbiAgICAgICAgaWYgKG5vZGUuY2hpbGRyZW4gPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgbm9kZS5jaGlsZHJlbiA9IFtdO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBub2RlLmNoaWxkcmVuO1xuICAgIH1cbiAgICByZXR1cm4gW107XG59XG5cbi8qKlxuICogVmlzaXQgYWxsIG5vZGVzIGluIGEgcmVmbGVjdGlvbiB0cmVlLiAgUmVmbGVjdGlvbiBoYXMgYSBcInZpc2l0XCIgbWV0aG9kIGJ1dCBpdCdzIGp1c3QgYSBicmFuY2ggb24gdHlwZS5cbiAqL1xuZnVuY3Rpb24gdmlzaXQobm9kZTogUmVmbGVjdGlvbiwgdmlzaXRvcjogKG5vZGU6IFJlZmxlY3Rpb24pID0+IHZvaWQpIHtcbiAgICB2aXNpdG9yKG5vZGUpO1xuXG4gICAgZm9yIChjb25zdCBjaGlsZCBvZiBjaGlsZHJlbk9mKG5vZGUpKSB7XG4gICAgICAgIHZpc2l0KGNoaWxkLCB2aXNpdG9yKTtcbiAgICB9XG59XG4iXSwKICAibWFwcGluZ3MiOiAiQUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBTUEsU0FBUyxnQkFBZ0I7QUFDekI7QUFBQSxFQUNJO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBRUE7QUFBQSxFQUNBO0FBQUEsT0FFRztBQUNQLFNBQVMsY0FBYztBQUd2QixTQUFTLGFBQWE7QUFLdEIsTUFBTSxVQUFVLENBQUMsd0JBQXdCO0FBR3pDLE1BQU0sY0FBYztBQUVwQixNQUFNLGdCQUFnQjtBQUFBLEVBQ2xCLFlBQVk7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU1oQjtBQUtBLGVBQXNCLFVBQVUsS0FBYyxVQUFvQjtBQUM5RCxRQUFNLFVBQVUsSUFBSTtBQUdwQixRQUFNLGNBQWMsTUFBYztBQUdsQyxRQUFNLFdBQVcsSUFBSSxLQUFLO0FBRTFCLGFBQVcsUUFBUSxTQUFTO0FBQ3hCLFVBQU0sT0FBTyxRQUFRLElBQUk7QUFDekIsUUFBSSxLQUFLLFNBQVMsT0FBTyxHQUFHO0FBQ3hCO0FBQUEsSUFDSjtBQUVBLFFBQUksT0FBTyxJQUFJLEdBQUc7QUFDZCxVQUFJLENBQUMsWUFBWSxTQUFTLElBQUksR0FBRztBQUM3QixvQkFBWSxLQUFLLElBQUk7QUFBQSxNQUN6QjtBQUFBLElBQ0osT0FBTztBQUNILFlBQU0sSUFBSSxNQUFNLDhCQUE4QixJQUFJLFNBQVMsUUFBUSxJQUFJLENBQUMsRUFBRTtBQUFBLElBQzlFO0FBQUEsRUFDSjtBQUVBLFFBQU0sTUFBTSxNQUFNLGtCQUFrQjtBQUFBLElBQ2hDLGtCQUFrQjtBQUFBLElB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
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/building/docs.ts"],
4
+ "mappings": "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",
5
+ "names": ["mergeInto"]
6
+ }
@@ -7,7 +7,7 @@ export * from "./building/builder.js";
7
7
  export * from "./building/graph.js";
8
8
  export * from "./building/project.js";
9
9
  export * from "./util/commander.js";
10
- export * from "./util/files.js";
10
+ export * from "./util/file.js";
11
11
  export * from "./util/package.js";
12
12
  export * from "./util/progress.js";
13
13
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,uBAAuB,CAAC;AACtC,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC;AACtC,cAAc,qBAAqB,CAAC;AACpC,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,uBAAuB,CAAC;AACtC,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC;AACtC,cAAc,qBAAqB,CAAC;AACpC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC"}
package/dist/esm/index.js CHANGED
@@ -7,7 +7,7 @@ export * from "./building/builder.js";
7
7
  export * from "./building/graph.js";
8
8
  export * from "./building/project.js";
9
9
  export * from "./util/commander.js";
10
- export * from "./util/files.js";
10
+ export * from "./util/file.js";
11
11
  export * from "./util/package.js";
12
12
  export * from "./util/progress.js";
13
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vc3JjL2luZGV4LnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgMjAyMi0yMDI0IE1hdHRlci5qcyBBdXRob3JzXG4gKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMFxuICovXG5cbmV4cG9ydCAqIGZyb20gXCIuL2J1aWxkaW5nL2J1aWxkZXIuanNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2J1aWxkaW5nL2dyYXBoLmpzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9idWlsZGluZy9wcm9qZWN0LmpzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi91dGlsL2NvbW1hbmRlci5qc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vdXRpbC9maWxlcy5qc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vdXRpbC9wYWNrYWdlLmpzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi91dGlsL3Byb2dyZXNzLmpzXCI7XG4iXSwKICAibWFwcGluZ3MiOiAiQUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBTUEsY0FBYztBQUNkLGNBQWM7QUFDZCxjQUFjO0FBQ2QsY0FBYztBQUNkLGNBQWM7QUFDZCxjQUFjO0FBQ2QsY0FBYzsiLAogICJuYW1lcyI6IFtdCn0K
13
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vc3JjL2luZGV4LnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgMjAyMi0yMDI0IE1hdHRlci5qcyBBdXRob3JzXG4gKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMFxuICovXG5cbmV4cG9ydCAqIGZyb20gXCIuL2J1aWxkaW5nL2J1aWxkZXIuanNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2J1aWxkaW5nL2dyYXBoLmpzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9idWlsZGluZy9wcm9qZWN0LmpzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi91dGlsL2NvbW1hbmRlci5qc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vdXRpbC9maWxlLmpzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi91dGlsL3BhY2thZ2UuanNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3V0aWwvcHJvZ3Jlc3MuanNcIjtcbiJdLAogICJtYXBwaW5ncyI6ICJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFNQSxjQUFjO0FBQ2QsY0FBYztBQUNkLGNBQWM7QUFDZCxjQUFjO0FBQ2QsY0FBYztBQUNkLGNBQWM7QUFDZCxjQUFjOyIsCiAgIm5hbWVzIjogW10KfQo=
@@ -9,4 +9,6 @@ export declare function maybeReaddirSync(path: string): string[] | undefined;
9
9
  export declare class GlobError extends Error {
10
10
  }
11
11
  export declare function globSync(pattern: string | string[]): string[];
12
- //# sourceMappingURL=files.d.ts.map
12
+ export declare function isDirectory(path: string): boolean;
13
+ export declare function isFile(path: string): boolean;
14
+ //# sourceMappingURL=file.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"file.d.ts","sourceRoot":"","sources":["../../../src/util/file.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAWH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,kCASzC;AAED,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,OAa7C;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,wBAQ5C;AAED,qBAAa,SAAU,SAAQ,KAAK;CAAG;AAEvC,wBAAgB,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,YAWlD;AAiGD,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,WAEvC;AAED,wBAAgB,MAAM,CAAC,IAAI,EAAE,MAAM,WAElC"}
@@ -0,0 +1,140 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2022-2024 Matter.js Authors
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import { readdirSync, readFileSync, statSync } from "fs";
7
+ import { GLOBSTAR, Minimatch } from "minimatch";
8
+ import { resolve } from "path";
9
+ import { ignoreErrorSync } from "./errors.js";
10
+ function isNotFoundError(e) {
11
+ return typeof e === "object" && e !== null && "code" in e && (e.code === "ENOENT" || e.code === "ENOTDIR");
12
+ }
13
+ function maybeStatSync(path) {
14
+ try {
15
+ return statSync(path);
16
+ } catch (e) {
17
+ if (isNotFoundError(e)) {
18
+ return;
19
+ }
20
+ throw e;
21
+ }
22
+ }
23
+ function maybeReadJsonSync(path) {
24
+ try {
25
+ return JSON.parse(readFileSync(path, "utf-8"));
26
+ } catch (e) {
27
+ if (isNotFoundError(e)) {
28
+ return;
29
+ }
30
+ if (e instanceof SyntaxError) {
31
+ e.message = `Error parsing ${path}: ${e.message}`;
32
+ throw e;
33
+ }
34
+ throw e;
35
+ }
36
+ }
37
+ function maybeReaddirSync(path) {
38
+ try {
39
+ return readdirSync(path);
40
+ } catch (e) {
41
+ if (isNotFoundError(e)) {
42
+ return;
43
+ }
44
+ }
45
+ }
46
+ class GlobError extends Error {
47
+ }
48
+ function globSync(pattern) {
49
+ if (typeof pattern === "string") {
50
+ return [...globOneSync(pattern)];
51
+ }
52
+ const result = Array();
53
+ for (const p of pattern) {
54
+ result.push(...globOneSync(p));
55
+ }
56
+ return result;
57
+ }
58
+ function globOneSync(pattern) {
59
+ const mm = new Minimatch(pattern.replace(/\\/g, "/"), {});
60
+ const results = /* @__PURE__ */ new Set();
61
+ for (const part of mm.set) {
62
+ for (const path of globOnePartSync(mm, part)) {
63
+ results.add(path);
64
+ }
65
+ }
66
+ return results;
67
+ }
68
+ function globOnePartSync(mm, segments) {
69
+ let rootPath = "";
70
+ let didOne = false;
71
+ while (typeof segments[0] === "string") {
72
+ if (didOne) {
73
+ rootPath += "/";
74
+ } else {
75
+ didOne = true;
76
+ }
77
+ rootPath += segments.shift();
78
+ }
79
+ if (!segments.length) {
80
+ const stat = maybeStatSync(rootPath);
81
+ if (stat?.[rootPath.endsWith("/") ? "isDirectory" : "isFile"]()) {
82
+ return [rootPath];
83
+ }
84
+ return [];
85
+ }
86
+ const results = /* @__PURE__ */ new Set();
87
+ function match(path, filter) {
88
+ if (!filter.length) {
89
+ results.add(path);
90
+ return;
91
+ }
92
+ if (typeof filter[0] === "string") {
93
+ const subpath = resolve(path, filter[0]);
94
+ if (maybeStatSync(resolve(path, filter[0]))) {
95
+ match(subpath, filter.slice(1));
96
+ return;
97
+ }
98
+ }
99
+ if (filter.length === 1 && filter[0] === GLOBSTAR) {
100
+ results.add(path);
101
+ }
102
+ const subnames = maybeReaddirSync(path);
103
+ if (!subnames) {
104
+ return;
105
+ }
106
+ for (const subname of subnames) {
107
+ const subpath = resolve(path, subname);
108
+ if (segments[0] !== GLOBSTAR) {
109
+ if (mm.matchOne([subname], segments, true)) {
110
+ match(subpath, segments.slice(1));
111
+ }
112
+ continue;
113
+ }
114
+ if (segments.length > 1) {
115
+ if (mm.matchOne([subname], segments.slice(1), true)) {
116
+ match(subpath, segments.slice(2));
117
+ }
118
+ }
119
+ match(subpath, segments);
120
+ }
121
+ }
122
+ match(rootPath, segments);
123
+ return results;
124
+ }
125
+ function isDirectory(path) {
126
+ return !!ignoreErrorSync("ENOENT", () => statSync(path).isDirectory());
127
+ }
128
+ function isFile(path) {
129
+ return !!ignoreErrorSync("ENOENT", () => statSync(path).isFile());
130
+ }
131
+ export {
132
+ GlobError,
133
+ globSync,
134
+ isDirectory,
135
+ isFile,
136
+ maybeReadJsonSync,
137
+ maybeReaddirSync,
138
+ maybeStatSync
139
+ };
140
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL3V0aWwvZmlsZS50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IDIwMjItMjAyNCBNYXR0ZXIuanMgQXV0aG9yc1xuICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjBcbiAqL1xuXG5pbXBvcnQgeyByZWFkZGlyU3luYywgcmVhZEZpbGVTeW5jLCBzdGF0U3luYyB9IGZyb20gXCJmc1wiO1xuaW1wb3J0IHsgR0xPQlNUQVIsIE1pbmltYXRjaCwgUGFyc2VSZXR1cm5GaWx0ZXJlZCB9IGZyb20gXCJtaW5pbWF0Y2hcIjtcbmltcG9ydCB7IHJlc29sdmUgfSBmcm9tIFwicGF0aFwiO1xuaW1wb3J0IHsgaWdub3JlRXJyb3JTeW5jIH0gZnJvbSBcIi4vZXJyb3JzLmpzXCI7XG5cbmZ1bmN0aW9uIGlzTm90Rm91bmRFcnJvcihlOiB1bmtub3duKSB7XG4gICAgcmV0dXJuIHR5cGVvZiBlID09PSBcIm9iamVjdFwiICYmIGUgIT09IG51bGwgJiYgXCJjb2RlXCIgaW4gZSAmJiAoZS5jb2RlID09PSBcIkVOT0VOVFwiIHx8IGUuY29kZSA9PT0gXCJFTk9URElSXCIpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gbWF5YmVTdGF0U3luYyhwYXRoOiBzdHJpbmcpIHtcbiAgICB0cnkge1xuICAgICAgICByZXR1cm4gc3RhdFN5bmMocGF0aCk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgICBpZiAoaXNOb3RGb3VuZEVycm9yKGUpKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhyb3cgZTtcbiAgICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBtYXliZVJlYWRKc29uU3luYyhwYXRoOiBzdHJpbmcpIHtcbiAgICB0cnkge1xuICAgICAgICByZXR1cm4gSlNPTi5wYXJzZShyZWFkRmlsZVN5bmMocGF0aCwgXCJ1dGYtOFwiKSk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgICBpZiAoaXNOb3RGb3VuZEVycm9yKGUpKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGUgaW5zdGFuY2VvZiBTeW50YXhFcnJvcikge1xuICAgICAgICAgICAgZS5tZXNzYWdlID0gYEVycm9yIHBhcnNpbmcgJHtwYXRofTogJHtlLm1lc3NhZ2V9YDtcbiAgICAgICAgICAgIHRocm93IGU7XG4gICAgICAgIH1cbiAgICAgICAgdGhyb3cgZTtcbiAgICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBtYXliZVJlYWRkaXJTeW5jKHBhdGg6IHN0cmluZykge1xuICAgIHRyeSB7XG4gICAgICAgIHJldHVybiByZWFkZGlyU3luYyhwYXRoKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIGlmIChpc05vdEZvdW5kRXJyb3IoZSkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIEdsb2JFcnJvciBleHRlbmRzIEVycm9yIHt9XG5cbmV4cG9ydCBmdW5jdGlvbiBnbG9iU3luYyhwYXR0ZXJuOiBzdHJpbmcgfCBzdHJpbmdbXSkge1xuICAgIGlmICh0eXBlb2YgcGF0dGVybiA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgICByZXR1cm4gWy4uLmdsb2JPbmVTeW5jKHBhdHRlcm4pXTtcbiAgICB9XG5cbiAgICBjb25zdCByZXN1bHQgPSBBcnJheTxzdHJpbmc+KCk7XG4gICAgZm9yIChjb25zdCBwIG9mIHBhdHRlcm4pIHtcbiAgICAgICAgcmVzdWx0LnB1c2goLi4uZ2xvYk9uZVN5bmMocCkpO1xuICAgIH1cblxuICAgIHJldHVybiByZXN1bHQ7XG59XG5cbmZ1bmN0aW9uIGdsb2JPbmVTeW5jKHBhdHRlcm46IHN0cmluZykge1xuICAgIC8vIFBhcnNlIHRoZSBnbG9iXG4gICAgY29uc3QgbW0gPSBuZXcgTWluaW1hdGNoKHBhdHRlcm4ucmVwbGFjZSgvXFxcXC9nLCBcIi9cIiksIHt9KTtcbiAgICBjb25zdCByZXN1bHRzID0gbmV3IFNldDxzdHJpbmc+KCk7XG4gICAgZm9yIChjb25zdCBwYXJ0IG9mIG1tLnNldCkge1xuICAgICAgICBmb3IgKGNvbnN0IHBhdGggb2YgZ2xvYk9uZVBhcnRTeW5jKG1tLCBwYXJ0KSkge1xuICAgICAgICAgICAgcmVzdWx0cy5hZGQocGF0aCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdHM7XG59XG5cbmZ1bmN0aW9uIGdsb2JPbmVQYXJ0U3luYyhtbTogTWluaW1hdGNoLCBzZWdtZW50czogUGFyc2VSZXR1cm5GaWx0ZXJlZFtdKSB7XG4gICAgLy8gRmluZCB0aGUgc3RhcnRpbmcgcGF0aFxuICAgIGxldCByb290UGF0aCA9IFwiXCI7XG4gICAgbGV0IGRpZE9uZSA9IGZhbHNlO1xuICAgIHdoaWxlICh0eXBlb2Ygc2VnbWVudHNbMF0gPT09IFwic3RyaW5nXCIpIHtcbiAgICAgICAgaWYgKGRpZE9uZSkge1xuICAgICAgICAgICAgcm9vdFBhdGggKz0gXCIvXCI7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBkaWRPbmUgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIHJvb3RQYXRoICs9IHNlZ21lbnRzLnNoaWZ0KCkgYXMgc3RyaW5nO1xuICAgIH1cblxuICAgIC8vIElmIHdlIGFyZSBvdXQgb2Ygc2VnbWVudHMsIHRoaXMgaXMgbm90IGEgZ2xvYi4gIEp1c3QgY2hlY2sgZm9yIHByZXNlbmNlXG4gICAgaWYgKCFzZWdtZW50cy5sZW5ndGgpIHtcbiAgICAgICAgY29uc3Qgc3RhdCA9IG1heWJlU3RhdFN5bmMocm9vdFBhdGgpO1xuXG4gICAgICAgIGlmIChzdGF0Py5bcm9vdFBhdGguZW5kc1dpdGgoXCIvXCIpID8gXCJpc0RpcmVjdG9yeVwiIDogXCJpc0ZpbGVcIl0oKSkge1xuICAgICAgICAgICAgcmV0dXJuIFtyb290UGF0aF07XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gW107XG4gICAgfVxuXG4gICAgLy8gV2FsayBmaWxlc3lzdGVtIGFuZCBhcHBseSBnbG9iXG4gICAgY29uc3QgcmVzdWx0cyA9IG5ldyBTZXQ8c3RyaW5nPigpO1xuXG4gICAgZnVuY3Rpb24gbWF0Y2gocGF0aDogc3RyaW5nLCBmaWx0ZXI6IFBhcnNlUmV0dXJuRmlsdGVyZWRbXSkge1xuICAgICAgICAvLyBJZiB0aGUgZmlsdGVyIGlzIGVtcHR5IHRoZW4gbWF0Y2ggY3VycmVudCBwYXRoXG4gICAgICAgIGlmICghZmlsdGVyLmxlbmd0aCkge1xuICAgICAgICAgICAgcmVzdWx0cy5hZGQocGF0aCk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICAvLyBJZiBmaWx0ZXIgc3RhcnRzIHdpdGhvdXQgbWFnaWMgdGhlbiBqdXN0IHN0YXQgdGhhdCBvbmUgcGF0aFxuICAgICAgICBpZiAodHlwZW9mIGZpbHRlclswXSA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgICAgICAgY29uc3Qgc3VicGF0aCA9IHJlc29sdmUocGF0aCwgZmlsdGVyWzBdKTtcbiAgICAgICAgICAgIGlmIChtYXliZVN0YXRTeW5jKHJlc29sdmUocGF0aCwgZmlsdGVyWzBdKSkpIHtcbiAgICAgICAgICAgICAgICBtYXRjaChzdWJwYXRoLCBmaWx0ZXIuc2xpY2UoMSkpO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC8vIElmIGZpbHRlciBpcyBqdXN0IEdMT0JTVEFSIHRoZW4gYWxsIHBhdGhzIG1hdGNoIGJ1dCBzZWFyY2ggY29udGludWVzXG4gICAgICAgIGlmIChmaWx0ZXIubGVuZ3RoID09PSAxICYmIGZpbHRlclswXSA9PT0gR0xPQlNUQVIpIHtcbiAgICAgICAgICAgIHJlc3VsdHMuYWRkKHBhdGgpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gRmlsdGVyIHN0YXJ0cyB3aXRoIG1hZ2ljIHNvIGxvYWQgZGlyZWN0b3J5IGVudHJpZXMgdG8gbWF0Y2hcbiAgICAgICAgY29uc3Qgc3VibmFtZXMgPSBtYXliZVJlYWRkaXJTeW5jKHBhdGgpO1xuICAgICAgICBpZiAoIXN1Ym5hbWVzKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICAvLyBUZXN0IGVhY2ggZGlyZWN0b3J5IGVudHJ5XG4gICAgICAgIGZvciAoY29uc3Qgc3VibmFtZSBvZiBzdWJuYW1lcykge1xuICAgICAgICAgICAgY29uc3Qgc3VicGF0aCA9IHJlc29sdmUocGF0aCwgc3VibmFtZSk7XG5cbiAgICAgICAgICAgIC8vIEFueXRoaW5nIGJ1dCBHTE9CU1RBUiBpcyAxOjEgc3VibmFtZS9zZWdtZW50IG1hdGNoXG4gICAgICAgICAgICBpZiAoc2VnbWVudHNbMF0gIT09IEdMT0JTVEFSKSB7XG4gICAgICAgICAgICAgICAgaWYgKG1tLm1hdGNoT25lKFtzdWJuYW1lXSwgc2VnbWVudHMsIHRydWUpKSB7XG4gICAgICAgICAgICAgICAgICAgIG1hdGNoKHN1YnBhdGgsIHNlZ21lbnRzLnNsaWNlKDEpKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8vIEdMT0JTVEFSIG1hdGNoZXMgbm90aGluZyBzbyB0ZXN0IHNlY29uZCBzZWdtZW50XG4gICAgICAgICAgICBpZiAoc2VnbWVudHMubGVuZ3RoID4gMSkge1xuICAgICAgICAgICAgICAgIGlmIChtbS5tYXRjaE9uZShbc3VibmFtZV0sIHNlZ21lbnRzLnNsaWNlKDEpLCB0cnVlKSkge1xuICAgICAgICAgICAgICAgICAgICBtYXRjaChzdWJwYXRoLCBzZWdtZW50cy5zbGljZSgyKSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyBHTE9CU1RBUiBtYXRjaGVzIGV2ZXJ5dGhpbmdcbiAgICAgICAgICAgIG1hdGNoKHN1YnBhdGgsIHNlZ21lbnRzKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG1hdGNoKHJvb3RQYXRoLCBzZWdtZW50cyk7XG5cbiAgICByZXR1cm4gcmVzdWx0cztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzRGlyZWN0b3J5KHBhdGg6IHN0cmluZykge1xuICAgIHJldHVybiAhIWlnbm9yZUVycm9yU3luYyhcIkVOT0VOVFwiLCAoKSA9PiBzdGF0U3luYyhwYXRoKS5pc0RpcmVjdG9yeSgpKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzRmlsZShwYXRoOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gISFpZ25vcmVFcnJvclN5bmMoXCJFTk9FTlRcIiwgKCkgPT4gc3RhdFN5bmMocGF0aCkuaXNGaWxlKCkpO1xufVxuIl0sCiAgIm1hcHBpbmdzIjogIkFBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU1BLFNBQVMsYUFBYSxjQUFjLGdCQUFnQjtBQUNwRCxTQUFTLFVBQVUsaUJBQXNDO0FBQ3pELFNBQVMsZUFBZTtBQUN4QixTQUFTLHVCQUF1QjtBQUVoQyxTQUFTLGdCQUFnQixHQUFZO0FBQ2pDLFNBQU8sT0FBTyxNQUFNLFlBQVksTUFBTSxRQUFRLFVBQVUsTUFBTSxFQUFFLFNBQVMsWUFBWSxFQUFFLFNBQVM7QUFDcEc7QUFFTyxTQUFTLGNBQWMsTUFBYztBQUN4QyxNQUFJO0FBQ0EsV0FBTyxTQUFTLElBQUk7QUFBQSxFQUN4QixTQUFTLEdBQUc7QUFDUixRQUFJLGdCQUFnQixDQUFDLEdBQUc7QUFDcEI7QUFBQSxJQUNKO0FBQ0EsVUFBTTtBQUFBLEVBQ1Y7QUFDSjtBQUVPLFNBQVMsa0JBQWtCLE1BQWM7QUFDNUMsTUFBSTtBQUNBLFdBQU8sS0FBSyxNQUFNLGFBQWEsTUFBTSxPQUFPLENBQUM7QUFBQSxFQUNqRCxTQUFTLEdBQUc7QUFDUixRQUFJLGdCQUFnQixDQUFDLEdBQUc7QUFDcEI7QUFBQSxJQUNKO0FBQ0EsUUFBSSxhQUFhLGFBQWE7QUFDMUIsUUFBRSxVQUFVLGlCQUFpQixJQUFJLEtBQUssRUFB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
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/util/file.ts"],
4
+ "mappings": "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",
5
+ "names": []
6
+ }
@@ -5,6 +5,6 @@
5
5
  */
6
6
  export * from "./commander.js";
7
7
  export * from "./errors.js";
8
- export * from "./files.js";
8
+ export * from "./file.js";
9
9
  export * from "./package.js";
10
10
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/util/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/util/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC"}
@@ -5,6 +5,6 @@
5
5
  */
6
6
  export * from "./commander.js";
7
7
  export * from "./errors.js";
8
- export * from "./files.js";
8
+ export * from "./file.js";
9
9
  export * from "./package.js";
10
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL3V0aWwvaW5kZXgudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCAyMDIyLTIwMjQgTWF0dGVyLmpzIEF1dGhvcnNcbiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wXG4gKi9cblxuZXhwb3J0ICogZnJvbSBcIi4vY29tbWFuZGVyLmpzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9lcnJvcnMuanNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2ZpbGVzLmpzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9wYWNrYWdlLmpzXCI7XG4iXSwKICAibWFwcGluZ3MiOiAiQUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBTUEsY0FBYztBQUNkLGNBQWM7QUFDZCxjQUFjO0FBQ2QsY0FBYzsiLAogICJuYW1lcyI6IFtdCn0K
10
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL3V0aWwvaW5kZXgudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCAyMDIyLTIwMjQgTWF0dGVyLmpzIEF1dGhvcnNcbiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wXG4gKi9cblxuZXhwb3J0ICogZnJvbSBcIi4vY29tbWFuZGVyLmpzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9lcnJvcnMuanNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2ZpbGUuanNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3BhY2thZ2UuanNcIjtcbiJdLAogICJtYXBwaW5ncyI6ICJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFNQSxjQUFjO0FBQ2QsY0FBYztBQUNkLGNBQWM7QUFDZCxjQUFjOyIsCiAgIm5hbWVzIjogW10KfQo=
@@ -23,6 +23,7 @@ export declare class Package {
23
23
  name?: string;
24
24
  });
25
25
  get name(): string;
26
+ get version(): string;
26
27
  get exports(): any;
27
28
  get hasCodegen(): boolean;
28
29
  resolve(...paths: string[]): string;
@@ -33,6 +34,8 @@ export declare class Package {
33
34
  private lastModifiedAbsolute;
34
35
  get dependencies(): string[];
35
36
  get workspace(): Package;
37
+ get isWorkspace(): boolean;
38
+ get root(): Package;
36
39
  static set workingDir(wd: string);
37
40
  static get workspace(): Package;
38
41
  static workspaceFor(cwd: string): Package;
@@ -52,6 +55,14 @@ export declare class Package {
52
55
  static maybeForPath(path: string): Package | undefined;
53
56
  static forPath(path: string): Package;
54
57
  get aliases(): Record<string, string>;
58
+ get modules(): Record<string, string>;
59
+ get sourceModules(): Record<string, string>;
60
+ /**
61
+ * Create a map of module name -> implementation file. If "source" is true, searches source files rather than
62
+ * transpiled files. We do this rather than finding transpilation files then mapping to source files so this works
63
+ * even if there isn't a build.
64
+ */
65
+ listModules(source: boolean, ...conditions: string[]): Record<string, string>;
55
66
  }
56
67
  export type PackageJson = {
57
68
  name: string;
@@ -1 +1 @@
1
- {"version":3,"file":"package.d.ts","sourceRoot":"","sources":["../../../src/util/package.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAOH,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAGzC,qBAAa,iBAAkB,SAAQ,KAAK;CAAG;AAE/C,eAAO,MAAM,WAAW,wBAAwB,CAAC;AACjD,eAAO,MAAM,YAAY,YAAY,CAAC;AA2BtC,qBAAa,OAAO;;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,WAAW,CAAC;IAClB,WAAW,EAAE,OAAO,CAAC;IACrB,WAAW,EAAE,OAAO,CAAC;IACrB,MAAM,EAAE,OAAO,CAAC;IAChB,QAAQ,EAAE,OAAO,CAAC;IAClB,SAAS,EAAE,OAAO,CAAC;IACnB,SAAS,EAAE,OAAO,CAAC;gBAGP,EACR,IAAU,EACV,IAAI,GACP,GAAE;QACC,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,IAAI,CAAC,EAAE,MAAM,CAAC;KACZ;IA2BN,IAAI,IAAI,WAEP;IAED,IAAI,OAAO,QAEV;IAED,IAAI,UAAU,YAEb;IAED,OAAO,CAAC,GAAG,KAAK,EAAE,MAAM,EAAE;IAI1B,QAAQ,CAAC,IAAI,EAAE,MAAM;IAIf,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE;IAYrC,KAAK,CAAC,IAAI,EAAE,MAAM;IAMZ,YAAY,CAAC,GAAG,KAAK,EAAE,MAAM,EAAE;YAIvB,oBAAoB;IAwBlC,IAAI,YAAY,aAQf;IAED,IAAI,SAAS,YAEZ;IAED,MAAM,KAAK,UAAU,CAAC,EAAE,EAAE,MAAM,EAE/B;IAED,MAAM,KAAK,SAAS,YAEnB;IAED,MAAM,CAAC,YAAY,CAAC,GAAG,EAAE,MAAM;IAO/B,MAAM,KAAK,KAAK,YAKf;IAED,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,GAAE,KAAK,GAAG,KAAa;IAI3D,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,GAAE,KAAK,GAAG,KAAa;IAyBvD,WAAW,CAAC,IAAI,EAAE,MAAM;IAgBxB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,GAAE,KAAK,GAAG,KAAa;IAYvD,OAAO,CAAC,IAAI,EAAE,MAAM;IAIpB,YAAY,CAAC,IAAI,EAAE,MAAM;IAInB,QAAQ,CAAC,IAAI,EAAE,MAAM;IAI3B,YAAY,CAAC,IAAI,EAAE,MAAM;IAInB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO;IAIzC,IAAI;IAIJ,QAAQ,CAAC,IAAI,EAAE,MAAM;IAarB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE;IAIvC,MAAM,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM;IAmBhC,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM;IAQ3B,IAAI,OAAO,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAWpC;CAKJ;AAED,MAAM,MAAM,WAAW,GAAG;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACtB,CAAC"}
1
+ {"version":3,"file":"package.d.ts","sourceRoot":"","sources":["../../../src/util/package.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAOH,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAGzC,qBAAa,iBAAkB,SAAQ,KAAK;CAAG;AAE/C,eAAO,MAAM,WAAW,wBAAwB,CAAC;AACjD,eAAO,MAAM,YAAY,YAAY,CAAC;AA2BtC,qBAAa,OAAO;;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,WAAW,CAAC;IAClB,WAAW,EAAE,OAAO,CAAC;IACrB,WAAW,EAAE,OAAO,CAAC;IACrB,MAAM,EAAE,OAAO,CAAC;IAChB,QAAQ,EAAE,OAAO,CAAC;IAClB,SAAS,EAAE,OAAO,CAAC;IACnB,SAAS,EAAE,OAAO,CAAC;gBAGP,EACR,IAAU,EACV,IAAI,GACP,GAAE;QACC,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,IAAI,CAAC,EAAE,MAAM,CAAC;KACZ;IA2BN,IAAI,IAAI,WAEP;IAED,IAAI,OAAO,WAEV;IAED,IAAI,OAAO,QAEV;IAED,IAAI,UAAU,YAEb;IAED,OAAO,CAAC,GAAG,KAAK,EAAE,MAAM,EAAE;IAI1B,QAAQ,CAAC,IAAI,EAAE,MAAM;IAIf,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE;IAYrC,KAAK,CAAC,IAAI,EAAE,MAAM;IAMZ,YAAY,CAAC,GAAG,KAAK,EAAE,MAAM,EAAE;YAIvB,oBAAoB;IAwBlC,IAAI,YAAY,aAQf;IAED,IAAI,SAAS,YAEZ;IAED,IAAI,WAAW,YAEd;IAED,IAAI,IAAI,IAAI,OAAO,CASlB;IAED,MAAM,KAAK,UAAU,CAAC,EAAE,EAAE,MAAM,EAE/B;IAED,MAAM,KAAK,SAAS,YAEnB;IAED,MAAM,CAAC,YAAY,CAAC,GAAG,EAAE,MAAM;IAO/B,MAAM,KAAK,KAAK,YAKf;IAED,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,GAAE,KAAK,GAAG,KAAa;IAI3D,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,GAAE,KAAK,GAAG,KAAa;IAyBvD,WAAW,CAAC,IAAI,EAAE,MAAM;IAgBxB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,GAAE,KAAK,GAAG,KAAa;IAYvD,OAAO,CAAC,IAAI,EAAE,MAAM;IAIpB,YAAY,CAAC,IAAI,EAAE,MAAM;IAInB,QAAQ,CAAC,IAAI,EAAE,MAAM;IAI3B,YAAY,CAAC,IAAI,EAAE,MAAM;IAInB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO;IAIzC,IAAI;IAIJ,QAAQ,CAAC,IAAI,EAAE,MAAM;IAarB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE;IAIvC,MAAM,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM;IAmBhC,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM;IAQ3B,IAAI,OAAO,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAWpC;IAED,IAAI,OAAO,2BAEV;IAED,IAAI,aAAa,2BAEhB;IAED;;;;OAIG;IACH,WAAW,CAAC,MAAM,EAAE,OAAO,EAAE,GAAG,UAAU,EAAE,MAAM,EAAE;CAkBvD;AAED,MAAM,MAAM,WAAW,GAAG;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACtB,CAAC"}