@vercel/fs-detectors 1.0.0
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/LICENSE +202 -0
- package/dist/detect-builders.d.ts +37 -0
- package/dist/detect-builders.js +842 -0
- package/dist/detect-builders.js.map +1 -0
- package/dist/detect-file-system-api.d.ts +34 -0
- package/dist/detect-file-system-api.js +174 -0
- package/dist/detect-file-system-api.js.map +1 -0
- package/dist/detect-framework.d.ts +12 -0
- package/dist/detect-framework.js +61 -0
- package/dist/detect-framework.js.map +1 -0
- package/dist/detectors/filesystem.d.ts +54 -0
- package/dist/detectors/filesystem.js +79 -0
- package/dist/detectors/filesystem.js.map +1 -0
- package/dist/get-project-paths.d.ts +9 -0
- package/dist/get-project-paths.js +40 -0
- package/dist/get-project-paths.js.map +1 -0
- package/dist/index.d.ts +10 -0
- package/dist/index.js +28 -0
- package/dist/index.js.map +1 -0
- package/dist/is-official-runtime.d.ts +2 -0
- package/dist/is-official-runtime.js +24 -0
- package/dist/is-official-runtime.js.map +1 -0
- package/dist/monorepos/monorepo-managers.d.ts +16 -0
- package/dist/monorepos/monorepo-managers.js +35 -0
- package/dist/monorepos/monorepo-managers.js.map +1 -0
- package/dist/workspaces/get-glob-fs.d.ts +6 -0
- package/dist/workspaces/get-glob-fs.js +72 -0
- package/dist/workspaces/get-glob-fs.js.map +1 -0
- package/dist/workspaces/get-workspace-package-paths.d.ts +11 -0
- package/dist/workspaces/get-workspace-package-paths.js +64 -0
- package/dist/workspaces/get-workspace-package-paths.js.map +1 -0
- package/dist/workspaces/get-workspaces.d.ts +12 -0
- package/dist/workspaces/get-workspaces.js +36 -0
- package/dist/workspaces/get-workspaces.js.map +1 -0
- package/dist/workspaces/workspace-managers.d.ts +16 -0
- package/dist/workspaces/workspace-managers.js +61 -0
- package/dist/workspaces/workspace-managers.js.map +1 -0
- package/package.json +41 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"detect-builders.js","sourceRoot":"","sources":["../src/detect-builders.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import type { Builder, BuilderFunctions, PackageJson, ProjectSettings } from '@vercel/build-utils';
|
|
2
|
+
interface Metadata {
|
|
3
|
+
plugins: string[];
|
|
4
|
+
hasDotOutput: boolean;
|
|
5
|
+
hasMiddleware: boolean;
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* If the Deployment can be built with the new File System API,
|
|
9
|
+
* return the new Builder. Otherwise an "Exclusion Condition"
|
|
10
|
+
* was hit so return `null` builder with a `reason` for exclusion.
|
|
11
|
+
*/
|
|
12
|
+
export declare function detectFileSystemAPI({ files, projectSettings, builders, vercelConfig, pkg, tag, enableFlag, }: {
|
|
13
|
+
files: {
|
|
14
|
+
[relPath: string]: any;
|
|
15
|
+
};
|
|
16
|
+
projectSettings: ProjectSettings;
|
|
17
|
+
builders: Builder[];
|
|
18
|
+
vercelConfig: {
|
|
19
|
+
builds?: Builder[];
|
|
20
|
+
functions?: BuilderFunctions;
|
|
21
|
+
} | null | undefined;
|
|
22
|
+
pkg: PackageJson | null | undefined;
|
|
23
|
+
tag: string | undefined;
|
|
24
|
+
enableFlag: boolean | undefined;
|
|
25
|
+
}): Promise<{
|
|
26
|
+
metadata: Metadata;
|
|
27
|
+
fsApiBuilder: Builder;
|
|
28
|
+
reason: null;
|
|
29
|
+
} | {
|
|
30
|
+
metadata: Metadata;
|
|
31
|
+
fsApiBuilder: null;
|
|
32
|
+
reason: string;
|
|
33
|
+
}>;
|
|
34
|
+
export {};
|
|
@@ -0,0 +1,174 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.detectFileSystemAPI = void 0;
|
|
7
|
+
const semver_1 = __importDefault(require("semver"));
|
|
8
|
+
const _1 = require("./");
|
|
9
|
+
const enableFileSystemApiFrameworks = new Set(['solidstart']);
|
|
10
|
+
/**
|
|
11
|
+
* If the Deployment can be built with the new File System API,
|
|
12
|
+
* return the new Builder. Otherwise an "Exclusion Condition"
|
|
13
|
+
* was hit so return `null` builder with a `reason` for exclusion.
|
|
14
|
+
*/
|
|
15
|
+
async function detectFileSystemAPI({ files, projectSettings, builders, vercelConfig, pkg, tag, enableFlag = false, }) {
|
|
16
|
+
const framework = projectSettings.framework || '';
|
|
17
|
+
const deps = Object.assign({}, pkg?.dependencies, pkg?.devDependencies);
|
|
18
|
+
const plugins = Object.keys(deps).filter(dep => dep.startsWith('vercel-plugin-'));
|
|
19
|
+
const hasDotOutput = Object.keys(files).some(file => file.startsWith('.output/'));
|
|
20
|
+
const hasMiddleware = Boolean(files['_middleware.js'] || files['_middleware.ts']);
|
|
21
|
+
const metadata = {
|
|
22
|
+
plugins,
|
|
23
|
+
hasDotOutput,
|
|
24
|
+
hasMiddleware,
|
|
25
|
+
};
|
|
26
|
+
const isEnabled = enableFlag ||
|
|
27
|
+
hasMiddleware ||
|
|
28
|
+
hasDotOutput ||
|
|
29
|
+
enableFileSystemApiFrameworks.has(framework);
|
|
30
|
+
if (!isEnabled) {
|
|
31
|
+
return { metadata, fsApiBuilder: null, reason: 'Flag not enabled.' };
|
|
32
|
+
}
|
|
33
|
+
if (vercelConfig?.builds && vercelConfig.builds.length > 0) {
|
|
34
|
+
return {
|
|
35
|
+
metadata,
|
|
36
|
+
fsApiBuilder: null,
|
|
37
|
+
reason: 'Detected `builds` in vercel.json. Please remove it in favor of CLI plugins.',
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
if (Object.values(vercelConfig?.functions || {}).some(fn => !!fn.runtime)) {
|
|
41
|
+
return {
|
|
42
|
+
metadata,
|
|
43
|
+
fsApiBuilder: null,
|
|
44
|
+
reason: 'Detected `functions.runtime` in vercel.json. Please remove it in favor of CLI plugins.',
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
if (process.env.HUGO_VERSION) {
|
|
48
|
+
return {
|
|
49
|
+
metadata,
|
|
50
|
+
fsApiBuilder: null,
|
|
51
|
+
reason: 'Detected `HUGO_VERSION` environment variable. Please remove it.',
|
|
52
|
+
};
|
|
53
|
+
}
|
|
54
|
+
if (process.env.ZOLA_VERSION) {
|
|
55
|
+
return {
|
|
56
|
+
metadata,
|
|
57
|
+
fsApiBuilder: null,
|
|
58
|
+
reason: 'Detected `ZOLA_VERSION` environment variable. Please remove it.',
|
|
59
|
+
};
|
|
60
|
+
}
|
|
61
|
+
if (process.env.GUTENBERG_VERSION) {
|
|
62
|
+
return {
|
|
63
|
+
metadata,
|
|
64
|
+
fsApiBuilder: null,
|
|
65
|
+
reason: 'Detected `GUTENBERG_VERSION` environment variable. Please remove it.',
|
|
66
|
+
};
|
|
67
|
+
}
|
|
68
|
+
const invalidBuilder = builders.find(({ use }) => {
|
|
69
|
+
const valid = _1.isOfficialRuntime('go', use) ||
|
|
70
|
+
_1.isOfficialRuntime('python', use) ||
|
|
71
|
+
_1.isOfficialRuntime('ruby', use) ||
|
|
72
|
+
_1.isOfficialRuntime('node', use) ||
|
|
73
|
+
_1.isOfficialRuntime('next', use) ||
|
|
74
|
+
_1.isOfficialRuntime('static', use) ||
|
|
75
|
+
_1.isOfficialRuntime('static-build', use);
|
|
76
|
+
return !valid;
|
|
77
|
+
});
|
|
78
|
+
if (invalidBuilder) {
|
|
79
|
+
return {
|
|
80
|
+
metadata,
|
|
81
|
+
fsApiBuilder: null,
|
|
82
|
+
reason: `Detected \`${invalidBuilder.use}\` in vercel.json. Please remove it in favor of CLI plugins.`,
|
|
83
|
+
};
|
|
84
|
+
}
|
|
85
|
+
for (const lang of ['go', 'python', 'ruby']) {
|
|
86
|
+
for (const { use } of builders) {
|
|
87
|
+
const plugin = 'vercel-plugin-' + lang;
|
|
88
|
+
if (_1.isOfficialRuntime(lang, use) && !deps[plugin]) {
|
|
89
|
+
return {
|
|
90
|
+
metadata,
|
|
91
|
+
fsApiBuilder: null,
|
|
92
|
+
reason: `Detected \`${lang}\` Serverless Function usage without plugin \`${plugin}\`. Please run \`npm i ${plugin}\`.`,
|
|
93
|
+
};
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
if (framework === 'nuxtjs' ||
|
|
98
|
+
framework === 'sveltekit' ||
|
|
99
|
+
framework === 'redwoodjs') {
|
|
100
|
+
return {
|
|
101
|
+
metadata,
|
|
102
|
+
fsApiBuilder: null,
|
|
103
|
+
reason: `Detected framework \`${framework}\` that only supports legacy File System API. Please contact the framework author.`,
|
|
104
|
+
};
|
|
105
|
+
}
|
|
106
|
+
if (framework === 'nextjs' && !hasDotOutput) {
|
|
107
|
+
// Use the old pipeline if a custom output directory was specified for Next.js
|
|
108
|
+
// because `vercel build` cannot ensure that the directory will be in the same
|
|
109
|
+
// location as `.output`, which can break imports (not just nft.json files).
|
|
110
|
+
if (projectSettings?.outputDirectory) {
|
|
111
|
+
return {
|
|
112
|
+
metadata,
|
|
113
|
+
fsApiBuilder: null,
|
|
114
|
+
reason: `Detected Next.js with Output Directory \`${projectSettings.outputDirectory}\` override. Please change it back to the default.`,
|
|
115
|
+
};
|
|
116
|
+
}
|
|
117
|
+
const nextVersion = deps['next'];
|
|
118
|
+
if (!nextVersion) {
|
|
119
|
+
return {
|
|
120
|
+
metadata,
|
|
121
|
+
fsApiBuilder: null,
|
|
122
|
+
reason: `Detected Next.js in Project Settings but missing \`next\` package.json dependencies. Please run \`npm i next\`.`,
|
|
123
|
+
};
|
|
124
|
+
}
|
|
125
|
+
// TODO: Read version from lockfile instead of package.json
|
|
126
|
+
if (nextVersion !== 'latest' && nextVersion !== 'canary') {
|
|
127
|
+
const fixedVersion = semver_1.default.valid(semver_1.default.coerce(nextVersion) || '');
|
|
128
|
+
if (!fixedVersion || !semver_1.default.gte(fixedVersion, '12.0.0')) {
|
|
129
|
+
return {
|
|
130
|
+
metadata,
|
|
131
|
+
fsApiBuilder: null,
|
|
132
|
+
reason: `Detected legacy Next.js version "${nextVersion}" in package.json. Please run \`npm i next@latest\` to upgrade.`,
|
|
133
|
+
};
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
if (!hasDotOutput) {
|
|
138
|
+
// TODO: Read version from lockfile instead of package.json
|
|
139
|
+
const vercelCliVersion = deps['vercel'];
|
|
140
|
+
if (vercelCliVersion &&
|
|
141
|
+
vercelCliVersion !== 'latest' &&
|
|
142
|
+
vercelCliVersion !== 'canary') {
|
|
143
|
+
const fixedVersion = semver_1.default.valid(semver_1.default.coerce(vercelCliVersion) || '');
|
|
144
|
+
// TODO: we might want to use '24.0.0' once its released
|
|
145
|
+
if (!fixedVersion || !semver_1.default.gte(fixedVersion, '23.1.3-canary.68')) {
|
|
146
|
+
return {
|
|
147
|
+
metadata,
|
|
148
|
+
fsApiBuilder: null,
|
|
149
|
+
reason: `Detected legacy Vercel CLI version "${vercelCliVersion}" in package.json. Please run \`npm i vercel@latest\` to upgrade.`,
|
|
150
|
+
};
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
const frontendBuilder = builders.find(({ use }) => _1.isOfficialRuntime('next', use) ||
|
|
155
|
+
_1.isOfficialRuntime('static', use) ||
|
|
156
|
+
_1.isOfficialRuntime('static-build', use));
|
|
157
|
+
const config = frontendBuilder?.config || {};
|
|
158
|
+
const withTag = tag ? `@${tag}` : '';
|
|
159
|
+
const fsApiBuilder = {
|
|
160
|
+
use: `@vercelruntimes/file-system-api${withTag}`,
|
|
161
|
+
src: '**',
|
|
162
|
+
config: {
|
|
163
|
+
...config,
|
|
164
|
+
fileSystemAPI: true,
|
|
165
|
+
framework: config.framework || framework || null,
|
|
166
|
+
projectSettings,
|
|
167
|
+
hasMiddleware,
|
|
168
|
+
hasDotOutput,
|
|
169
|
+
},
|
|
170
|
+
};
|
|
171
|
+
return { metadata, fsApiBuilder, reason: null };
|
|
172
|
+
}
|
|
173
|
+
exports.detectFileSystemAPI = detectFileSystemAPI;
|
|
174
|
+
//# sourceMappingURL=detect-file-system-api.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"detect-file-system-api.js","sourceRoot":"","sources":["../src/detect-file-system-api.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { Framework } from '@vercel/frameworks';
|
|
2
|
+
import { DetectorFilesystem } from './detectors/filesystem';
|
|
3
|
+
interface BaseFramework {
|
|
4
|
+
slug: Framework['slug'];
|
|
5
|
+
detectors?: Framework['detectors'];
|
|
6
|
+
}
|
|
7
|
+
export interface DetectFrameworkOptions {
|
|
8
|
+
fs: DetectorFilesystem;
|
|
9
|
+
frameworkList: readonly BaseFramework[];
|
|
10
|
+
}
|
|
11
|
+
export declare function detectFramework({ fs, frameworkList, }: DetectFrameworkOptions): Promise<string | null>;
|
|
12
|
+
export {};
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.detectFramework = void 0;
|
|
4
|
+
async function matches(fs, framework) {
|
|
5
|
+
const { detectors } = framework;
|
|
6
|
+
if (!detectors) {
|
|
7
|
+
return false;
|
|
8
|
+
}
|
|
9
|
+
const { every, some } = detectors;
|
|
10
|
+
if (every !== undefined && !Array.isArray(every)) {
|
|
11
|
+
return false;
|
|
12
|
+
}
|
|
13
|
+
if (some !== undefined && !Array.isArray(some)) {
|
|
14
|
+
return false;
|
|
15
|
+
}
|
|
16
|
+
const check = async ({ path, matchContent }) => {
|
|
17
|
+
if (!path) {
|
|
18
|
+
return false;
|
|
19
|
+
}
|
|
20
|
+
if ((await fs.hasPath(path)) === false) {
|
|
21
|
+
return false;
|
|
22
|
+
}
|
|
23
|
+
if (matchContent) {
|
|
24
|
+
if ((await fs.isFile(path)) === false) {
|
|
25
|
+
return false;
|
|
26
|
+
}
|
|
27
|
+
const regex = new RegExp(matchContent, 'gm');
|
|
28
|
+
const content = await fs.readFile(path);
|
|
29
|
+
if (!regex.test(content.toString())) {
|
|
30
|
+
return false;
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
return true;
|
|
34
|
+
};
|
|
35
|
+
const result = [];
|
|
36
|
+
if (every) {
|
|
37
|
+
const everyResult = await Promise.all(every.map(item => check(item)));
|
|
38
|
+
result.push(...everyResult);
|
|
39
|
+
}
|
|
40
|
+
if (some) {
|
|
41
|
+
let someResult = false;
|
|
42
|
+
for (const item of some) {
|
|
43
|
+
if (await check(item)) {
|
|
44
|
+
someResult = true;
|
|
45
|
+
break;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
result.push(someResult);
|
|
49
|
+
}
|
|
50
|
+
return result.every(res => res === true);
|
|
51
|
+
}
|
|
52
|
+
async function detectFramework({ fs, frameworkList, }) {
|
|
53
|
+
for (const framework of frameworkList) {
|
|
54
|
+
if (await matches(fs, framework)) {
|
|
55
|
+
return framework.slug;
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
return null;
|
|
59
|
+
}
|
|
60
|
+
exports.detectFramework = detectFramework;
|
|
61
|
+
//# sourceMappingURL=detect-framework.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"detect-framework.js","sourceRoot":"","sources":["../src/detect-framework.ts"],"names":[],"mappings":";;;AAaA,KAAK,UAAU,OAAO,CAAC,EAAsB,EAAE,SAAwB;IACrE,MAAM,EAAE,SAAS,EAAE,GAAG,SAAS,CAAC;IAEhC,IAAI,CAAC,SAAS,EAAE;QACd,OAAO,KAAK,CAAC;KACd;IAED,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,SAAS,CAAC;IAElC,IAAI,KAAK,KAAK,SAAS,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;QAChD,OAAO,KAAK,CAAC;KACd;IAED,IAAI,IAAI,KAAK,SAAS,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;QAC9C,OAAO,KAAK,CAAC;KACd;IAED,MAAM,KAAK,GAAG,KAAK,EAAE,EAAE,IAAI,EAAE,YAAY,EAA0B,EAAE,EAAE;QACrE,IAAI,CAAC,IAAI,EAAE;YACT,OAAO,KAAK,CAAC;SACd;QAED,IAAI,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,KAAK,EAAE;YACtC,OAAO,KAAK,CAAC;SACd;QAED,IAAI,YAAY,EAAE;YAChB,IAAI,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,KAAK,EAAE;gBACrC,OAAO,KAAK,CAAC;aACd;YAED,MAAM,KAAK,GAAG,IAAI,MAAM,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;YAC7C,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;YAExC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,EAAE;gBACnC,OAAO,KAAK,CAAC;aACd;SACF;QAED,OAAO,IAAI,CAAC;IACd,CAAC,CAAC;IAEF,MAAM,MAAM,GAAc,EAAE,CAAC;IAE7B,IAAI,KAAK,EAAE;QACT,MAAM,WAAW,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACtE,MAAM,CAAC,IAAI,CAAC,GAAG,WAAW,CAAC,CAAC;KAC7B;IAED,IAAI,IAAI,EAAE;QACR,IAAI,UAAU,GAAG,KAAK,CAAC;QAEvB,KAAK,MAAM,IAAI,IAAI,IAAI,EAAE;YACvB,IAAI,MAAM,KAAK,CAAC,IAAI,CAAC,EAAE;gBACrB,UAAU,GAAG,IAAI,CAAC;gBAClB,MAAM;aACP;SACF;QAED,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;KACzB;IAED,OAAO,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,IAAI,CAAC,CAAC;AAC3C,CAAC;AAEM,KAAK,UAAU,eAAe,CAAC,EACpC,EAAE,EACF,aAAa,GACU;IACvB,KAAK,MAAM,SAAS,IAAI,aAAa,EAAE;QACrC,IAAI,MAAM,OAAO,CAAC,EAAE,EAAE,SAAS,CAAC,EAAE;YAChC,OAAO,SAAS,CAAC,IAAI,CAAC;SACvB;KACF;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAXD,0CAWC"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
/// <reference types="node" />
|
|
2
|
+
export interface Stat {
|
|
3
|
+
name: string;
|
|
4
|
+
path: string;
|
|
5
|
+
type: 'file' | 'dir';
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* `DetectorFilesystem` is an abstract class that represents a virtual filesystem
|
|
9
|
+
* to perform read-only operations on in order to detect which framework is being
|
|
10
|
+
* used.
|
|
11
|
+
*
|
|
12
|
+
* Its abstract methods must be implemented by a subclass that perform the actual
|
|
13
|
+
* FS operations. Example subclasses could be implemented as:
|
|
14
|
+
*
|
|
15
|
+
* - Local filesystem, which proxies the FS operations to the equivalent `fs`
|
|
16
|
+
* module functions.
|
|
17
|
+
* - HTTP filesystem, which implements the FS operations over an HTTP server
|
|
18
|
+
* and does not require a local copy of the files.
|
|
19
|
+
* - `Files` filesystem, which operates on a virtual `Files` object (i.e. from
|
|
20
|
+
* the `glob()` function) which could include `FileFsRef`, `FileBlob`, etc.
|
|
21
|
+
*
|
|
22
|
+
* This base class implements various helper functions for common tasks (i.e.
|
|
23
|
+
* read and parse a JSON file). It also includes caching for all FS operations
|
|
24
|
+
* so that multiple detector functions de-dup read operations on the same file
|
|
25
|
+
* to reduce network/filesystem overhead.
|
|
26
|
+
*
|
|
27
|
+
* **NOTE:** It's important that all instance methods in this base class are
|
|
28
|
+
* bound to `this` so that the `fs` object may be destructured in the detector
|
|
29
|
+
* functions. The easiest way to do this is to use the `=` syntax when defining
|
|
30
|
+
* methods in this class definition.
|
|
31
|
+
*/
|
|
32
|
+
export declare abstract class DetectorFilesystem {
|
|
33
|
+
protected abstract _hasPath(name: string): Promise<boolean>;
|
|
34
|
+
protected abstract _readFile(name: string): Promise<Buffer>;
|
|
35
|
+
protected abstract _isFile(name: string): Promise<boolean>;
|
|
36
|
+
protected abstract _readdir(name: string): Promise<Stat[]>;
|
|
37
|
+
protected abstract _chdir(name: string): DetectorFilesystem;
|
|
38
|
+
private pathCache;
|
|
39
|
+
private fileCache;
|
|
40
|
+
private readFileCache;
|
|
41
|
+
private readdirCache;
|
|
42
|
+
constructor();
|
|
43
|
+
hasPath: (path: string) => Promise<boolean>;
|
|
44
|
+
isFile: (name: string) => Promise<boolean>;
|
|
45
|
+
readFile: (name: string) => Promise<Buffer>;
|
|
46
|
+
/**
|
|
47
|
+
* Returns a list of Stat objects from the current working directory.
|
|
48
|
+
*/
|
|
49
|
+
readdir: (name: string) => Promise<Stat[]>;
|
|
50
|
+
/**
|
|
51
|
+
* Changes the current directory to the specified path and returns a new instance of DetectorFilesystem.
|
|
52
|
+
*/
|
|
53
|
+
chdir: (name: string) => DetectorFilesystem;
|
|
54
|
+
}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DetectorFilesystem = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* `DetectorFilesystem` is an abstract class that represents a virtual filesystem
|
|
6
|
+
* to perform read-only operations on in order to detect which framework is being
|
|
7
|
+
* used.
|
|
8
|
+
*
|
|
9
|
+
* Its abstract methods must be implemented by a subclass that perform the actual
|
|
10
|
+
* FS operations. Example subclasses could be implemented as:
|
|
11
|
+
*
|
|
12
|
+
* - Local filesystem, which proxies the FS operations to the equivalent `fs`
|
|
13
|
+
* module functions.
|
|
14
|
+
* - HTTP filesystem, which implements the FS operations over an HTTP server
|
|
15
|
+
* and does not require a local copy of the files.
|
|
16
|
+
* - `Files` filesystem, which operates on a virtual `Files` object (i.e. from
|
|
17
|
+
* the `glob()` function) which could include `FileFsRef`, `FileBlob`, etc.
|
|
18
|
+
*
|
|
19
|
+
* This base class implements various helper functions for common tasks (i.e.
|
|
20
|
+
* read and parse a JSON file). It also includes caching for all FS operations
|
|
21
|
+
* so that multiple detector functions de-dup read operations on the same file
|
|
22
|
+
* to reduce network/filesystem overhead.
|
|
23
|
+
*
|
|
24
|
+
* **NOTE:** It's important that all instance methods in this base class are
|
|
25
|
+
* bound to `this` so that the `fs` object may be destructured in the detector
|
|
26
|
+
* functions. The easiest way to do this is to use the `=` syntax when defining
|
|
27
|
+
* methods in this class definition.
|
|
28
|
+
*/
|
|
29
|
+
class DetectorFilesystem {
|
|
30
|
+
constructor() {
|
|
31
|
+
this.hasPath = async (path) => {
|
|
32
|
+
let p = this.pathCache.get(path);
|
|
33
|
+
if (!p) {
|
|
34
|
+
p = this._hasPath(path);
|
|
35
|
+
this.pathCache.set(path, p);
|
|
36
|
+
}
|
|
37
|
+
return p;
|
|
38
|
+
};
|
|
39
|
+
this.isFile = async (name) => {
|
|
40
|
+
let p = this.fileCache.get(name);
|
|
41
|
+
if (!p) {
|
|
42
|
+
p = this._isFile(name);
|
|
43
|
+
this.fileCache.set(name, p);
|
|
44
|
+
}
|
|
45
|
+
return p;
|
|
46
|
+
};
|
|
47
|
+
this.readFile = async (name) => {
|
|
48
|
+
let p = this.readFileCache.get(name);
|
|
49
|
+
if (!p) {
|
|
50
|
+
p = this._readFile(name);
|
|
51
|
+
this.readFileCache.set(name, p);
|
|
52
|
+
}
|
|
53
|
+
return p;
|
|
54
|
+
};
|
|
55
|
+
/**
|
|
56
|
+
* Returns a list of Stat objects from the current working directory.
|
|
57
|
+
*/
|
|
58
|
+
this.readdir = async (name) => {
|
|
59
|
+
let p = this.readdirCache.get(name);
|
|
60
|
+
if (!p) {
|
|
61
|
+
p = this._readdir(name);
|
|
62
|
+
this.readdirCache.set(name, p);
|
|
63
|
+
}
|
|
64
|
+
return p;
|
|
65
|
+
};
|
|
66
|
+
/**
|
|
67
|
+
* Changes the current directory to the specified path and returns a new instance of DetectorFilesystem.
|
|
68
|
+
*/
|
|
69
|
+
this.chdir = (name) => {
|
|
70
|
+
return this._chdir(name);
|
|
71
|
+
};
|
|
72
|
+
this.pathCache = new Map();
|
|
73
|
+
this.fileCache = new Map();
|
|
74
|
+
this.readFileCache = new Map();
|
|
75
|
+
this.readdirCache = new Map();
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
exports.DetectorFilesystem = DetectorFilesystem;
|
|
79
|
+
//# sourceMappingURL=filesystem.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"filesystem.js","sourceRoot":"","sources":["../../src/detectors/filesystem.ts"],"names":[],"mappings":";;;AAKA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,MAAsB,kBAAkB;IAYtC;QAOO,YAAO,GAAG,KAAK,EAAE,IAAY,EAAoB,EAAE;YACxD,IAAI,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YACjC,IAAI,CAAC,CAAC,EAAE;gBACN,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;gBACxB,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;aAC7B;YACD,OAAO,CAAC,CAAC;QACX,CAAC,CAAC;QAEK,WAAM,GAAG,KAAK,EAAE,IAAY,EAAoB,EAAE;YACvD,IAAI,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YACjC,IAAI,CAAC,CAAC,EAAE;gBACN,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;gBACvB,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;aAC7B;YACD,OAAO,CAAC,CAAC;QACX,CAAC,CAAC;QAEK,aAAQ,GAAG,KAAK,EAAE,IAAY,EAAmB,EAAE;YACxD,IAAI,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YACrC,IAAI,CAAC,CAAC,EAAE;gBACN,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;gBACzB,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;aACjC;YACD,OAAO,CAAC,CAAC;QACX,CAAC,CAAC;QAEF;;WAEG;QACI,YAAO,GAAG,KAAK,EAAE,IAAY,EAAmB,EAAE;YACvD,IAAI,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YACpC,IAAI,CAAC,CAAC,EAAE;gBACN,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;gBACxB,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;aAChC;YACD,OAAO,CAAC,CAAC;QACX,CAAC,CAAC;QAEF;;WAEG;QACI,UAAK,GAAG,CAAC,IAAY,EAAsB,EAAE;YAClD,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAC3B,CAAC,CAAC;QAlDA,IAAI,CAAC,SAAS,GAAG,IAAI,GAAG,EAAE,CAAC;QAC3B,IAAI,CAAC,SAAS,GAAG,IAAI,GAAG,EAAE,CAAC;QAC3B,IAAI,CAAC,aAAa,GAAG,IAAI,GAAG,EAAE,CAAC;QAC/B,IAAI,CAAC,YAAY,GAAG,IAAI,GAAG,EAAE,CAAC;IAChC,CAAC;CA+CF;AAhED,gDAgEC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { DetectorFilesystem } from './detectors/filesystem';
|
|
2
|
+
export interface GetProjectPathsOptions {
|
|
3
|
+
fs: DetectorFilesystem;
|
|
4
|
+
path?: string;
|
|
5
|
+
skipPaths?: string[];
|
|
6
|
+
depth?: number;
|
|
7
|
+
}
|
|
8
|
+
export declare type ProjectPath = string;
|
|
9
|
+
export declare const getProjectPaths: ({ fs, path, skipPaths, depth, }: GetProjectPathsOptions) => Promise<ProjectPath[]>;
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.getProjectPaths = void 0;
|
|
7
|
+
const detect_framework_1 = require("./detect-framework");
|
|
8
|
+
const frameworks_1 = __importDefault(require("@vercel/frameworks"));
|
|
9
|
+
const MAX_DEPTH_TRAVERSE = 3;
|
|
10
|
+
const getProjectPaths = async ({ fs, path, skipPaths, depth = MAX_DEPTH_TRAVERSE, }) => {
|
|
11
|
+
if (depth === 0)
|
|
12
|
+
return [];
|
|
13
|
+
const allPaths = [];
|
|
14
|
+
const topPath = path ?? './';
|
|
15
|
+
if (path && skipPaths?.includes(path)) {
|
|
16
|
+
return allPaths;
|
|
17
|
+
}
|
|
18
|
+
const framework = await detect_framework_1.detectFramework({
|
|
19
|
+
fs: fs.chdir(topPath),
|
|
20
|
+
frameworkList: frameworks_1.default,
|
|
21
|
+
});
|
|
22
|
+
if (framework !== null)
|
|
23
|
+
allPaths.push(topPath);
|
|
24
|
+
if (depth > 1) {
|
|
25
|
+
const directoryContents = await fs.readdir(topPath);
|
|
26
|
+
const childDirectories = directoryContents.filter(stat => stat.type === 'dir' && !skipPaths?.includes(stat.path));
|
|
27
|
+
const paths = (await Promise.all(childDirectories.map(({ path }) => {
|
|
28
|
+
return exports.getProjectPaths({
|
|
29
|
+
fs,
|
|
30
|
+
path,
|
|
31
|
+
depth: depth - 1,
|
|
32
|
+
skipPaths,
|
|
33
|
+
});
|
|
34
|
+
}))).flat();
|
|
35
|
+
return [...paths, ...allPaths];
|
|
36
|
+
}
|
|
37
|
+
return allPaths;
|
|
38
|
+
};
|
|
39
|
+
exports.getProjectPaths = getProjectPaths;
|
|
40
|
+
//# sourceMappingURL=get-project-paths.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-project-paths.js","sourceRoot":"","sources":["../src/get-project-paths.ts"],"names":[],"mappings":";;;;;;AAAA,yDAAqD;AAErD,oEAA4C;AAE5C,MAAM,kBAAkB,GAAG,CAAC,CAAC;AAWtB,MAAM,eAAe,GAAG,KAAK,EAAE,EACpC,EAAE,EACF,IAAI,EACJ,SAAS,EACT,KAAK,GAAG,kBAAkB,GACH,EAA0B,EAAE;IACnD,IAAI,KAAK,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IAE3B,MAAM,QAAQ,GAAuB,EAAE,CAAC;IACxC,MAAM,OAAO,GAAW,IAAI,IAAI,IAAI,CAAC;IAErC,IAAI,IAAI,IAAI,SAAS,EAAE,QAAQ,CAAC,IAAI,CAAC,EAAE;QACrC,OAAO,QAAQ,CAAC;KACjB;IACD,MAAM,SAAS,GAAG,MAAM,kCAAe,CAAC;QACtC,EAAE,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC;QACrB,aAAa,EAAE,oBAAU;KAC1B,CAAC,CAAC;IAEH,IAAI,SAAS,KAAK,IAAI;QAAE,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAE/C,IAAI,KAAK,GAAG,CAAC,EAAE;QACb,MAAM,iBAAiB,GAAG,MAAM,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QACpD,MAAM,gBAAgB,GAAG,iBAAiB,CAAC,MAAM,CAC/C,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,KAAK,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAC/D,CAAC;QAEF,MAAM,KAAK,GAAG,CACZ,MAAM,OAAO,CAAC,GAAG,CACf,gBAAgB,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE;YAChC,OAAO,uBAAe,CAAC;gBACrB,EAAE;gBACF,IAAI;gBACJ,KAAK,EAAE,KAAK,GAAG,CAAC;gBAChB,SAAS;aACV,CAAC,CAAC;QACL,CAAC,CAAC,CACH,CACF,CAAC,IAAI,EAAE,CAAC;QAET,OAAO,CAAC,GAAG,KAAK,EAAE,GAAG,QAAQ,CAAC,CAAC;KAChC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC,CAAC;AA5CW,QAAA,eAAe,mBA4C1B"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export { detectBuilders, detectOutputDirectory, detectApiDirectory, detectApiExtensions, } from './detect-builders';
|
|
2
|
+
export { detectFileSystemAPI } from './detect-file-system-api';
|
|
3
|
+
export { detectFramework } from './detect-framework';
|
|
4
|
+
export { getProjectPaths } from './get-project-paths';
|
|
5
|
+
export { DetectorFilesystem } from './detectors/filesystem';
|
|
6
|
+
export { workspaceManagers } from './workspaces/workspace-managers';
|
|
7
|
+
export { getWorkspaces, GetWorkspaceOptions, Workspace, WorkspaceType, } from './workspaces/get-workspaces';
|
|
8
|
+
export { getWorkspacePackagePaths, GetWorkspacePackagePathsOptions, } from './workspaces/get-workspace-package-paths';
|
|
9
|
+
export { monorepoManagers } from './monorepos/monorepo-managers';
|
|
10
|
+
export { isOfficialRuntime, isStaticRuntime } from './is-official-runtime';
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.isStaticRuntime = exports.isOfficialRuntime = exports.monorepoManagers = exports.getWorkspacePackagePaths = exports.getWorkspaces = exports.workspaceManagers = exports.DetectorFilesystem = exports.getProjectPaths = exports.detectFramework = exports.detectFileSystemAPI = exports.detectApiExtensions = exports.detectApiDirectory = exports.detectOutputDirectory = exports.detectBuilders = void 0;
|
|
4
|
+
var detect_builders_1 = require("./detect-builders");
|
|
5
|
+
Object.defineProperty(exports, "detectBuilders", { enumerable: true, get: function () { return detect_builders_1.detectBuilders; } });
|
|
6
|
+
Object.defineProperty(exports, "detectOutputDirectory", { enumerable: true, get: function () { return detect_builders_1.detectOutputDirectory; } });
|
|
7
|
+
Object.defineProperty(exports, "detectApiDirectory", { enumerable: true, get: function () { return detect_builders_1.detectApiDirectory; } });
|
|
8
|
+
Object.defineProperty(exports, "detectApiExtensions", { enumerable: true, get: function () { return detect_builders_1.detectApiExtensions; } });
|
|
9
|
+
var detect_file_system_api_1 = require("./detect-file-system-api");
|
|
10
|
+
Object.defineProperty(exports, "detectFileSystemAPI", { enumerable: true, get: function () { return detect_file_system_api_1.detectFileSystemAPI; } });
|
|
11
|
+
var detect_framework_1 = require("./detect-framework");
|
|
12
|
+
Object.defineProperty(exports, "detectFramework", { enumerable: true, get: function () { return detect_framework_1.detectFramework; } });
|
|
13
|
+
var get_project_paths_1 = require("./get-project-paths");
|
|
14
|
+
Object.defineProperty(exports, "getProjectPaths", { enumerable: true, get: function () { return get_project_paths_1.getProjectPaths; } });
|
|
15
|
+
var filesystem_1 = require("./detectors/filesystem");
|
|
16
|
+
Object.defineProperty(exports, "DetectorFilesystem", { enumerable: true, get: function () { return filesystem_1.DetectorFilesystem; } });
|
|
17
|
+
var workspace_managers_1 = require("./workspaces/workspace-managers");
|
|
18
|
+
Object.defineProperty(exports, "workspaceManagers", { enumerable: true, get: function () { return workspace_managers_1.workspaceManagers; } });
|
|
19
|
+
var get_workspaces_1 = require("./workspaces/get-workspaces");
|
|
20
|
+
Object.defineProperty(exports, "getWorkspaces", { enumerable: true, get: function () { return get_workspaces_1.getWorkspaces; } });
|
|
21
|
+
var get_workspace_package_paths_1 = require("./workspaces/get-workspace-package-paths");
|
|
22
|
+
Object.defineProperty(exports, "getWorkspacePackagePaths", { enumerable: true, get: function () { return get_workspace_package_paths_1.getWorkspacePackagePaths; } });
|
|
23
|
+
var monorepo_managers_1 = require("./monorepos/monorepo-managers");
|
|
24
|
+
Object.defineProperty(exports, "monorepoManagers", { enumerable: true, get: function () { return monorepo_managers_1.monorepoManagers; } });
|
|
25
|
+
var is_official_runtime_1 = require("./is-official-runtime");
|
|
26
|
+
Object.defineProperty(exports, "isOfficialRuntime", { enumerable: true, get: function () { return is_official_runtime_1.isOfficialRuntime; } });
|
|
27
|
+
Object.defineProperty(exports, "isStaticRuntime", { enumerable: true, get: function () { return is_official_runtime_1.isStaticRuntime; } });
|
|
28
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,qDAK2B;AAJzB,iHAAA,cAAc,OAAA;AACd,wHAAA,qBAAqB,OAAA;AACrB,qHAAA,kBAAkB,OAAA;AAClB,sHAAA,mBAAmB,OAAA;AAErB,mEAA+D;AAAtD,6HAAA,mBAAmB,OAAA;AAC5B,uDAAqD;AAA5C,mHAAA,eAAe,OAAA;AACxB,yDAAsD;AAA7C,oHAAA,eAAe,OAAA;AACxB,qDAA4D;AAAnD,gHAAA,kBAAkB,OAAA;AAC3B,sEAAoE;AAA3D,uHAAA,iBAAiB,OAAA;AAC1B,8DAKqC;AAJnC,+GAAA,aAAa,OAAA;AAKf,wFAGkD;AAFhD,uIAAA,wBAAwB,OAAA;AAG1B,mEAAiE;AAAxD,qHAAA,gBAAgB,OAAA;AACzB,6DAA2E;AAAlE,wHAAA,iBAAiB,OAAA;AAAE,sHAAA,eAAe,OAAA"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.isStaticRuntime = exports.isOfficialRuntime = void 0;
|
|
4
|
+
/*
|
|
5
|
+
* Helper function to support both `@vercel` and legacy `@now` official Runtimes.
|
|
6
|
+
*/
|
|
7
|
+
const isOfficialRuntime = (desired, name) => {
|
|
8
|
+
if (typeof name !== 'string') {
|
|
9
|
+
return false;
|
|
10
|
+
}
|
|
11
|
+
return (name === `@vercel/${desired}` ||
|
|
12
|
+
name === `@now/${desired}` ||
|
|
13
|
+
name.startsWith(`@vercel/${desired}@`) ||
|
|
14
|
+
name.startsWith(`@now/${desired}@`));
|
|
15
|
+
};
|
|
16
|
+
exports.isOfficialRuntime = isOfficialRuntime;
|
|
17
|
+
/*
|
|
18
|
+
* Helper function to detect both `@vercel/static` and legacy `@now/static` official Runtimes.
|
|
19
|
+
*/
|
|
20
|
+
const isStaticRuntime = (name) => {
|
|
21
|
+
return exports.isOfficialRuntime('static', name);
|
|
22
|
+
};
|
|
23
|
+
exports.isStaticRuntime = isStaticRuntime;
|
|
24
|
+
//# sourceMappingURL=is-official-runtime.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"is-official-runtime.js","sourceRoot":"","sources":["../src/is-official-runtime.ts"],"names":[],"mappings":";;;AAAA;;GAEG;AACI,MAAM,iBAAiB,GAAG,CAAC,OAAe,EAAE,IAAa,EAAW,EAAE;IAC3E,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;QAC5B,OAAO,KAAK,CAAC;KACd;IACD,OAAO,CACL,IAAI,KAAK,WAAW,OAAO,EAAE;QAC7B,IAAI,KAAK,QAAQ,OAAO,EAAE;QAC1B,IAAI,CAAC,UAAU,CAAC,WAAW,OAAO,GAAG,CAAC;QACtC,IAAI,CAAC,UAAU,CAAC,QAAQ,OAAO,GAAG,CAAC,CACpC,CAAC;AACJ,CAAC,CAAC;AAVW,QAAA,iBAAiB,qBAU5B;AAEF;;GAEG;AACI,MAAM,eAAe,GAAG,CAAC,IAAa,EAAW,EAAE;IACxD,OAAO,yBAAiB,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;AAC3C,CAAC,CAAC;AAFW,QAAA,eAAe,mBAE1B"}
|