@slicemachine/init 0.1.1-dev-plugins.3 → 0.1.1-dev-plugins.5
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/dist/SliceMachineInitProcess.cjs +111 -43
- package/dist/SliceMachineInitProcess.cjs.map +1 -1
- package/dist/SliceMachineInitProcess.d.ts +4 -0
- package/dist/SliceMachineInitProcess.js +112 -44
- package/dist/SliceMachineInitProcess.js.map +1 -1
- package/dist/__node_modules/@babel/code-frame/lib/index.cjs +1 -1
- package/dist/__node_modules/@babel/code-frame/lib/index.js +1 -1
- package/dist/__node_modules/@babel/helper-validator-identifier/lib/index.cjs +1 -1
- package/dist/__node_modules/@babel/helper-validator-identifier/lib/index.js +1 -1
- package/dist/__node_modules/@babel/highlight/lib/index.cjs +3 -3
- package/dist/__node_modules/@babel/highlight/lib/index.js +3 -3
- package/dist/__node_modules/@nodelib/fs.scandir/out/providers/async.cjs +1 -1
- package/dist/__node_modules/@nodelib/fs.scandir/out/providers/async.js +1 -1
- package/dist/__node_modules/@nodelib/fs.scandir/out/providers/sync.cjs +1 -1
- package/dist/__node_modules/@nodelib/fs.scandir/out/providers/sync.js +1 -1
- package/dist/__node_modules/@nodelib/fs.scandir/out/settings.cjs +1 -1
- package/dist/__node_modules/@nodelib/fs.scandir/out/settings.js +1 -1
- package/dist/__node_modules/@nodelib/fs.stat/out/index.cjs +1 -1
- package/dist/__node_modules/@nodelib/fs.stat/out/index.js +1 -1
- package/dist/__node_modules/@nodelib/fs.walk/out/index.cjs +1 -1
- package/dist/__node_modules/@nodelib/fs.walk/out/index.js +1 -1
- package/dist/__node_modules/camelcase-keys/index.cjs +1 -1
- package/dist/__node_modules/camelcase-keys/index.js +1 -1
- package/dist/__node_modules/cross-spawn/index.cjs +1 -1
- package/dist/__node_modules/cross-spawn/index.js +1 -1
- package/dist/__node_modules/cross-spawn/lib/util/resolveCommand.cjs +1 -1
- package/dist/__node_modules/cross-spawn/lib/util/resolveCommand.js +1 -1
- package/dist/__node_modules/dir-glob/index.cjs +2 -2
- package/dist/__node_modules/dir-glob/index.js +2 -2
- package/dist/__node_modules/fast-glob/out/index.cjs +1 -1
- package/dist/__node_modules/fast-glob/out/index.js +1 -1
- package/dist/__node_modules/fast-glob/out/managers/tasks.cjs +1 -1
- package/dist/__node_modules/fast-glob/out/managers/tasks.js +1 -1
- package/dist/__node_modules/fast-glob/out/providers/filters/deep.cjs +1 -1
- package/dist/__node_modules/fast-glob/out/providers/filters/deep.js +1 -1
- package/dist/__node_modules/fast-glob/out/providers/filters/entry.cjs +1 -1
- package/dist/__node_modules/fast-glob/out/providers/filters/entry.js +1 -1
- package/dist/__node_modules/fast-glob/out/providers/filters/error.cjs +1 -1
- package/dist/__node_modules/fast-glob/out/providers/filters/error.js +1 -1
- package/dist/__node_modules/fast-glob/out/providers/matchers/matcher.cjs +1 -1
- package/dist/__node_modules/fast-glob/out/providers/matchers/matcher.js +1 -1
- package/dist/__node_modules/fast-glob/out/providers/transformers/entry.cjs +1 -1
- package/dist/__node_modules/fast-glob/out/providers/transformers/entry.js +1 -1
- package/dist/__node_modules/fast-glob/out/readers/async.cjs +1 -1
- package/dist/__node_modules/fast-glob/out/readers/async.js +1 -1
- package/dist/__node_modules/fast-glob/out/readers/reader.cjs +2 -2
- package/dist/__node_modules/fast-glob/out/readers/reader.js +2 -2
- package/dist/__node_modules/fast-glob/out/readers/stream.cjs +2 -2
- package/dist/__node_modules/fast-glob/out/readers/stream.js +2 -2
- package/dist/__node_modules/fast-glob/out/readers/sync.cjs +2 -2
- package/dist/__node_modules/fast-glob/out/readers/sync.js +2 -2
- package/dist/__node_modules/fast-glob/out/utils/index.cjs +1 -1
- package/dist/__node_modules/fast-glob/out/utils/index.js +1 -1
- package/dist/__node_modules/globby/index.cjs +1 -1
- package/dist/__node_modules/globby/index.js +1 -1
- package/dist/__node_modules/js-tokens/index.cjs +1 -1
- package/dist/__node_modules/js-tokens/index.js +1 -1
- package/dist/__node_modules/map-obj/index.cjs +1 -1
- package/dist/__node_modules/map-obj/index.js +1 -1
- package/dist/__node_modules/meow/__node_modules/hosted-git-info/lib/index.cjs +1 -1
- package/dist/__node_modules/meow/__node_modules/hosted-git-info/lib/index.js +1 -1
- package/dist/__node_modules/meow/__node_modules/normalize-package-data/lib/fixer.cjs +1 -1
- package/dist/__node_modules/meow/__node_modules/normalize-package-data/lib/fixer.js +1 -1
- package/dist/__node_modules/meow/__node_modules/read-pkg/__node_modules/hosted-git-info/index.cjs +1 -1
- package/dist/__node_modules/meow/__node_modules/read-pkg/__node_modules/hosted-git-info/index.js +1 -1
- package/dist/__node_modules/meow/__node_modules/read-pkg/__node_modules/normalize-package-data/lib/fixer.cjs +1 -1
- package/dist/__node_modules/meow/__node_modules/read-pkg/__node_modules/normalize-package-data/lib/fixer.js +1 -1
- package/dist/__node_modules/micromatch/index.cjs +1 -1
- package/dist/__node_modules/micromatch/index.js +1 -1
- package/dist/__node_modules/path-key/index.cjs +1 -1
- package/dist/__node_modules/path-key/index.js +1 -1
- package/dist/__node_modules/path-type/index.cjs +1 -1
- package/dist/__node_modules/path-type/index.js +1 -1
- package/dist/__node_modules/picomatch/index.cjs +1 -1
- package/dist/__node_modules/picomatch/index.js +1 -1
- package/dist/_virtual/index13.cjs +2 -2
- package/dist/_virtual/index13.js +2 -2
- package/dist/_virtual/index14.cjs +10 -2
- package/dist/_virtual/index14.cjs.map +1 -1
- package/dist/_virtual/index14.js +11 -2
- package/dist/_virtual/index14.js.map +1 -1
- package/dist/_virtual/index15.cjs +2 -2
- package/dist/_virtual/index15.js +2 -2
- package/dist/_virtual/index16.cjs +2 -10
- package/dist/_virtual/index16.cjs.map +1 -1
- package/dist/_virtual/index16.js +2 -11
- package/dist/_virtual/index16.js.map +1 -1
- package/dist/_virtual/index17.cjs +2 -2
- package/dist/_virtual/index17.js +6 -6
- package/dist/_virtual/index18.cjs +2 -10
- package/dist/_virtual/index18.cjs.map +1 -1
- package/dist/_virtual/index18.js +2 -11
- package/dist/_virtual/index18.js.map +1 -1
- package/dist/_virtual/index19.cjs +2 -2
- package/dist/_virtual/index19.js +2 -2
- package/dist/_virtual/index20.cjs +10 -2
- package/dist/_virtual/index20.cjs.map +1 -1
- package/dist/_virtual/index20.js +11 -2
- package/dist/_virtual/index20.js.map +1 -1
- package/dist/_virtual/index3.cjs +2 -2
- package/dist/_virtual/index3.js +6 -6
- package/dist/_virtual/index4.cjs +2 -2
- package/dist/_virtual/index4.js +6 -6
- package/dist/_virtual/index5.cjs +10 -2
- package/dist/_virtual/index5.cjs.map +1 -1
- package/dist/_virtual/index5.js +11 -2
- package/dist/_virtual/index5.js.map +1 -1
- package/dist/_virtual/index6.cjs +10 -2
- package/dist/_virtual/index6.cjs.map +1 -1
- package/dist/_virtual/index6.js +11 -2
- package/dist/_virtual/index6.js.map +1 -1
- package/dist/_virtual/index7.cjs +2 -10
- package/dist/_virtual/index7.cjs.map +1 -1
- package/dist/_virtual/index7.js +2 -11
- package/dist/_virtual/index7.js.map +1 -1
- package/dist/_virtual/index8.cjs +2 -10
- package/dist/_virtual/index8.cjs.map +1 -1
- package/dist/_virtual/index8.js +2 -11
- package/dist/_virtual/index8.js.map +1 -1
- package/dist/constants.cjs +7 -0
- package/dist/constants.cjs.map +1 -0
- package/dist/constants.d.ts +2 -0
- package/dist/constants.js +7 -0
- package/dist/constants.js.map +1 -0
- package/dist/lib/framework.cjs +7 -3
- package/dist/lib/framework.cjs.map +1 -1
- package/dist/lib/framework.d.ts +8 -0
- package/dist/lib/framework.js +7 -3
- package/dist/lib/framework.js.map +1 -1
- package/dist/lib/packageManager.cjs +11 -3
- package/dist/lib/packageManager.cjs.map +1 -1
- package/dist/lib/packageManager.d.ts +9 -1
- package/dist/lib/packageManager.js +12 -4
- package/dist/lib/packageManager.js.map +1 -1
- package/dist/lib/prompt.cjs +3 -2
- package/dist/lib/prompt.cjs.map +1 -1
- package/dist/lib/prompt.js +3 -2
- package/dist/lib/prompt.js.map +1 -1
- package/dist/packages/init/__node_modules/execa/index.cjs +1 -1
- package/dist/packages/init/__node_modules/execa/index.js +1 -1
- package/dist/packages/init/package.json.cjs +1 -1
- package/dist/packages/init/package.json.js +1 -1
- package/package.json +8 -3
- package/src/SliceMachineInitProcess.ts +176 -61
- package/src/constants.ts +3 -0
- package/src/lib/framework.ts +20 -7
- package/src/lib/packageManager.ts +20 -4
- package/src/lib/prompt.ts +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"framework.cjs","sources":["../../../src/lib/framework.ts"],"sourcesContent":["import { readFile } from \"node:fs/promises\";\nimport { join } from \"node:path\";\n\nimport semver from \"semver\";\n\nexport type Framework = {\n\t/**\n\t * Framework's human readable name.\n\t */\n\tname: string;\n\n\t/**\n\t * Framework's name sent to Prismic\n\t */\n\tprismicName: string;\n\n\t/**\n\t * Package name of the adapter responsible for this framework\n\t */\n\tadapterName: string;\n\n\t/**\n\t * A package name/semver range map defining framework compatibility\n\t * requirements.\n\t *\n\t * Project should match all entries to be considered compatible.\n\t */\n\tcompatibility: Record<string, string>;\n\n\t/**\n\t * A package name/semver range map defining development dependencies to be\n\t * installed. Typically Slice Machine and the framework's adapter.\n\t *\n\t * @remarks\n\t * Dependencies required to work with the framework (e.g. `@prismicio/next`\n\t * for Next.js) should not be defined here. Those are to be defined by the\n\t * adapter.\n\t */\n\tdevDependencies: Record<string, string>;\n};\n\nconst DEFAULT_DEV_DEPENDENCIES: Record<string, string> = {\n\t\"slice-machine-ui\": \"<1.0.0\",\n};\n\nexport const FRAMEWORKS: Record<string, Framework> = {\n\t\"nuxt-2\": {\n\t\tname: \"Nuxt 2\",\n\t\tprismicName: \"nuxt-2\",\n\t\tadapterName: \"@slicemachine/adapter-nuxt\",\n\t\tcompatibility: {\n\t\t\tnuxt: \"^2.0.0\",\n\t\t},\n\t\tdevDependencies: {\n\t\t\t...DEFAULT_DEV_DEPENDENCIES,\n\t\t\t\"@slicemachine/adapter-nuxt\": \"latest\",\n\t\t},\n\t},\n\t\"next-11-13\": {\n\t\tname: \"Next.js 11-13\",\n\t\tprismicName: \"next-11-13\",\n\t\tadapterName: \"@slicemachine/adapter-next\",\n\t\tcompatibility: {\n\t\t\tnext: \"^11.0.0 || ^12.0.0 || ^13.0.0\",\n\t\t},\n\t\tdevDependencies: {\n\t\t\t...DEFAULT_DEV_DEPENDENCIES,\n\t\t\t\"@slicemachine/adapter-next\": \"latest\",\n\t\t},\n\t},\n} as const;\n\n/**\n * Universal package used when framework is not supported.\n */\nexport const UNIVERSAL: Framework = {\n\tname: \"universal (no framework)\",\n\tprismicName: \"universal\",\n\tadapterName: \"@slicemachine/adapter-universal\",\n\tcompatibility: {},\n\tdevDependencies: {\n\t\t...DEFAULT_DEV_DEPENDENCIES,\n\t\t\"@slicemachine/adapter-universal\": \"latest\",\n\t},\n};\n\nexport const detectFramework = async (cwd: string): Promise<Framework> => {\n\tconst path = join(cwd, \"package.json\");\n\n\tlet allDependencies: Record<string, string>;\n\ttry {\n\t\tconst pkg = JSON.parse(await readFile(path, \"utf-8\"));\n\n\t\tallDependencies = {\n\t\t\t...pkg.dependencies,\n\t\t\t...pkg.devDependencies,\n\t\t};\n\t} catch (error) {\n\t\tthrow new Error(\n\t\t\t`Failed to read project's \\`package.json\\` at \\`${path}\\``,\n\t\t\t{ cause: error },\n\t\t);\n\t}\n\n\treturn (\n\t\tObject.values(FRAMEWORKS).find((framework) => {\n\t\t\treturn Object.entries(framework.compatibility).every(([pkg, range]) => {\n\t\t\t\tif (pkg in allDependencies) {\n\t\t\t\t\t// Determine lowest version possibly in use\n\t\t\t\t\tconst minimumVersion = semver.minVersion(allDependencies[pkg]);\n\n\t\t\t\t\t//
|
|
1
|
+
{"version":3,"file":"framework.cjs","sources":["../../../src/lib/framework.ts"],"sourcesContent":["import { readFile } from \"node:fs/promises\";\nimport { join } from \"node:path\";\n\nimport semver from \"semver\";\n\nexport type Framework = {\n\t/**\n\t * Framework's human readable name.\n\t */\n\tname: string;\n\n\t/**\n\t * Framework's name sent to Prismic\n\t */\n\tprismicName: string;\n\n\t/**\n\t * A link to the Prismic documentation for the framework\n\t */\n\tprismicDocumentation: string;\n\n\t/**\n\t * Package name of the adapter responsible for this framework\n\t */\n\tadapterName: string;\n\n\t/**\n\t * A package name/semver range map defining framework compatibility\n\t * requirements.\n\t *\n\t * Project should match all entries to be considered compatible.\n\t */\n\tcompatibility: Record<string, string>;\n\n\t/**\n\t * A package name/semver range map defining development dependencies to be\n\t * installed. Typically Slice Machine and the framework's adapter.\n\t *\n\t * @remarks\n\t * Dependencies required to work with the framework (e.g. `@prismicio/next`\n\t * for Next.js) should not be defined here. Those are to be defined by the\n\t * adapter.\n\t */\n\tdevDependencies: Record<string, string>;\n};\n\nconst DEFAULT_DEV_DEPENDENCIES: Record<string, string> = {\n\t\"slice-machine-ui\": \"<1.0.0\",\n};\n\n/**\n * Frameworks we support, orders shouldn't matter much but is respected (the\n * higher it is the more priority it has in case multiple matches)\n */\nexport const FRAMEWORKS: Record<string, Framework> = {\n\t\"nuxt-2\": {\n\t\tname: \"Nuxt 2\",\n\t\tprismicName: \"nuxt-2\",\n\t\tprismicDocumentation: \"https://prismic.dev/init/nuxt-2\",\n\t\tadapterName: \"@slicemachine/adapter-nuxt\",\n\t\tcompatibility: {\n\t\t\tnuxt: \"^2.0.0\",\n\t\t},\n\t\tdevDependencies: {\n\t\t\t...DEFAULT_DEV_DEPENDENCIES,\n\t\t\t\"@slicemachine/adapter-nuxt\": \"latest\",\n\t\t},\n\t},\n\t\"next-11-13\": {\n\t\tname: \"Next.js 11-13\",\n\t\tprismicName: \"next-11-13\",\n\t\tprismicDocumentation: \"https://prismic.dev/init/next-11-13\",\n\t\tadapterName: \"@slicemachine/adapter-next\",\n\t\tcompatibility: {\n\t\t\tnext: \"^11.0.0 || ^12.0.0 || ^13.0.0\",\n\t\t},\n\t\tdevDependencies: {\n\t\t\t...DEFAULT_DEV_DEPENDENCIES,\n\t\t\t\"@slicemachine/adapter-next\": \"latest\",\n\t\t},\n\t},\n} as const;\n\n/**\n * Universal package used when framework is not supported.\n */\nexport const UNIVERSAL: Framework = {\n\tname: \"universal (no framework)\",\n\tprismicName: \"universal\",\n\tprismicDocumentation: \"https://prismic.dev/init/universal\",\n\tadapterName: \"@slicemachine/adapter-universal\",\n\tcompatibility: {},\n\tdevDependencies: {\n\t\t...DEFAULT_DEV_DEPENDENCIES,\n\t\t\"@slicemachine/adapter-universal\": \"latest\",\n\t},\n};\n\nexport const detectFramework = async (cwd: string): Promise<Framework> => {\n\tconst path = join(cwd, \"package.json\");\n\n\tlet allDependencies: Record<string, string>;\n\ttry {\n\t\tconst pkg = JSON.parse(await readFile(path, \"utf-8\"));\n\n\t\tallDependencies = {\n\t\t\t...pkg.dependencies,\n\t\t\t...pkg.devDependencies,\n\t\t};\n\t} catch (error) {\n\t\tthrow new Error(\n\t\t\t`Failed to read project's \\`package.json\\` at \\`${path}\\``,\n\t\t\t{ cause: error },\n\t\t);\n\t}\n\n\treturn (\n\t\tObject.values(FRAMEWORKS).find((framework) => {\n\t\t\treturn Object.entries(framework.compatibility).every(([pkg, range]) => {\n\t\t\t\tif (pkg in allDependencies) {\n\t\t\t\t\ttry {\n\t\t\t\t\t\t// Determine lowest version possibly in use\n\t\t\t\t\t\tconst minimumVersion = semver.minVersion(allDependencies[pkg]);\n\n\t\t\t\t\t\t// eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n\t\t\t\t\t\treturn semver.satisfies(minimumVersion!, range);\n\t\t\t\t\t} catch (error) {\n\t\t\t\t\t\t// We assume unconventional tags, `latest`, `beta`, `dev` matches the framework\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn false;\n\t\t\t});\n\t\t}) || UNIVERSAL\n\t);\n};\n"],"names":["path","join","readFile"],"mappings":";;;;;AA8CA,MAAM,2BAAmD;AAAA,EACxD,oBAAoB;;AAOd,MAAM,aAAwC;AAAA,EACpD,UAAU;AAAA,IACT,MAAM;AAAA,IACN,aAAa;AAAA,IACb,sBAAsB;AAAA,IACtB,aAAa;AAAA,IACb,eAAe;AAAA,MACd,MAAM;AAAA,IACN;AAAA,IACD,iBAAiB;AAAA,MAChB,GAAG;AAAA,MACH,8BAA8B;AAAA,IAC9B;AAAA,EACD;AAAA,EACD,cAAc;AAAA,IACb,MAAM;AAAA,IACN,aAAa;AAAA,IACb,sBAAsB;AAAA,IACtB,aAAa;AAAA,IACb,eAAe;AAAA,MACd,MAAM;AAAA,IACN;AAAA,IACD,iBAAiB;AAAA,MAChB,GAAG;AAAA,MACH,8BAA8B;AAAA,IAC9B;AAAA,EACD;;AAMK,MAAM,YAAuB;AAAA,EACnC,MAAM;AAAA,EACN,aAAa;AAAA,EACb,sBAAsB;AAAA,EACtB,aAAa;AAAA,EACb,eAAe,CAAE;AAAA,EACjB,iBAAiB;AAAA,IAChB,GAAG;AAAA,IACH,mCAAmC;AAAA,EACnC;;AAGW,MAAA,kBAAkB,OAAO,QAAmC;AAClE,QAAAA,SAAOC,KAAAA,KAAK,KAAK,cAAc;AAEjC,MAAA;AACA,MAAA;AACH,UAAM,MAAM,KAAK,MAAM,MAAMC,GAAAA,SAASF,QAAM,OAAO,CAAC;AAElC,sBAAA;AAAA,MACjB,GAAG,IAAI;AAAA,MACP,GAAG,IAAI;AAAA,IAAA;AAAA,WAEA;AACR,UAAM,IAAI,MACT,kDAAkDA,YAClD,EAAE,OAAO,OAAO;AAAA,EAEjB;AAED,SACC,OAAO,OAAO,UAAU,EAAE,KAAK,CAAC,cAAa;AACrC,WAAA,OAAO,QAAQ,UAAU,aAAa,EAAE,MAAM,CAAC,CAAC,KAAK,KAAK,MAAK;AACrE,UAAI,OAAO,iBAAiB;AACvB,YAAA;AAEH,gBAAM,iBAAiB,OAAO,WAAW,gBAAgB,GAAG,CAAC;AAGtD,iBAAA,OAAO,UAAU,gBAAiB,KAAK;AAAA,iBACtC;AAED,iBAAA;AAAA,QACP;AAAA,MACD;AAEM,aAAA;AAAA,IAAA,CACP;AAAA,EACD,CAAA,KAAK;AAER;;;;"}
|
package/dist/lib/framework.d.ts
CHANGED
|
@@ -7,6 +7,10 @@ export type Framework = {
|
|
|
7
7
|
* Framework's name sent to Prismic
|
|
8
8
|
*/
|
|
9
9
|
prismicName: string;
|
|
10
|
+
/**
|
|
11
|
+
* A link to the Prismic documentation for the framework
|
|
12
|
+
*/
|
|
13
|
+
prismicDocumentation: string;
|
|
10
14
|
/**
|
|
11
15
|
* Package name of the adapter responsible for this framework
|
|
12
16
|
*/
|
|
@@ -29,6 +33,10 @@ export type Framework = {
|
|
|
29
33
|
*/
|
|
30
34
|
devDependencies: Record<string, string>;
|
|
31
35
|
};
|
|
36
|
+
/**
|
|
37
|
+
* Frameworks we support, orders shouldn't matter much but is respected (the
|
|
38
|
+
* higher it is the more priority it has in case multiple matches)
|
|
39
|
+
*/
|
|
32
40
|
export declare const FRAMEWORKS: Record<string, Framework>;
|
|
33
41
|
/**
|
|
34
42
|
* Universal package used when framework is not supported.
|
package/dist/lib/framework.js
CHANGED
|
@@ -8,6 +8,7 @@ const FRAMEWORKS = {
|
|
|
8
8
|
"nuxt-2": {
|
|
9
9
|
name: "Nuxt 2",
|
|
10
10
|
prismicName: "nuxt-2",
|
|
11
|
+
prismicDocumentation: "https://prismic.dev/init/nuxt-2",
|
|
11
12
|
adapterName: "@slicemachine/adapter-nuxt",
|
|
12
13
|
compatibility: {
|
|
13
14
|
nuxt: "^2.0.0"
|
|
@@ -20,6 +21,7 @@ const FRAMEWORKS = {
|
|
|
20
21
|
"next-11-13": {
|
|
21
22
|
name: "Next.js 11-13",
|
|
22
23
|
prismicName: "next-11-13",
|
|
24
|
+
prismicDocumentation: "https://prismic.dev/init/next-11-13",
|
|
23
25
|
adapterName: "@slicemachine/adapter-next",
|
|
24
26
|
compatibility: {
|
|
25
27
|
next: "^11.0.0 || ^12.0.0 || ^13.0.0"
|
|
@@ -33,6 +35,7 @@ const FRAMEWORKS = {
|
|
|
33
35
|
const UNIVERSAL = {
|
|
34
36
|
name: "universal (no framework)",
|
|
35
37
|
prismicName: "universal",
|
|
38
|
+
prismicDocumentation: "https://prismic.dev/init/universal",
|
|
36
39
|
adapterName: "@slicemachine/adapter-universal",
|
|
37
40
|
compatibility: {},
|
|
38
41
|
devDependencies: {
|
|
@@ -55,11 +58,12 @@ const detectFramework = async (cwd) => {
|
|
|
55
58
|
return Object.values(FRAMEWORKS).find((framework) => {
|
|
56
59
|
return Object.entries(framework.compatibility).every(([pkg, range]) => {
|
|
57
60
|
if (pkg in allDependencies) {
|
|
58
|
-
|
|
59
|
-
|
|
61
|
+
try {
|
|
62
|
+
const minimumVersion = semver.minVersion(allDependencies[pkg]);
|
|
63
|
+
return semver.satisfies(minimumVersion, range);
|
|
64
|
+
} catch (error) {
|
|
60
65
|
return true;
|
|
61
66
|
}
|
|
62
|
-
return semver.satisfies(minimumVersion, range);
|
|
63
67
|
}
|
|
64
68
|
return false;
|
|
65
69
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"framework.js","sources":["../../../src/lib/framework.ts"],"sourcesContent":["import { readFile } from \"node:fs/promises\";\nimport { join } from \"node:path\";\n\nimport semver from \"semver\";\n\nexport type Framework = {\n\t/**\n\t * Framework's human readable name.\n\t */\n\tname: string;\n\n\t/**\n\t * Framework's name sent to Prismic\n\t */\n\tprismicName: string;\n\n\t/**\n\t * Package name of the adapter responsible for this framework\n\t */\n\tadapterName: string;\n\n\t/**\n\t * A package name/semver range map defining framework compatibility\n\t * requirements.\n\t *\n\t * Project should match all entries to be considered compatible.\n\t */\n\tcompatibility: Record<string, string>;\n\n\t/**\n\t * A package name/semver range map defining development dependencies to be\n\t * installed. Typically Slice Machine and the framework's adapter.\n\t *\n\t * @remarks\n\t * Dependencies required to work with the framework (e.g. `@prismicio/next`\n\t * for Next.js) should not be defined here. Those are to be defined by the\n\t * adapter.\n\t */\n\tdevDependencies: Record<string, string>;\n};\n\nconst DEFAULT_DEV_DEPENDENCIES: Record<string, string> = {\n\t\"slice-machine-ui\": \"<1.0.0\",\n};\n\nexport const FRAMEWORKS: Record<string, Framework> = {\n\t\"nuxt-2\": {\n\t\tname: \"Nuxt 2\",\n\t\tprismicName: \"nuxt-2\",\n\t\tadapterName: \"@slicemachine/adapter-nuxt\",\n\t\tcompatibility: {\n\t\t\tnuxt: \"^2.0.0\",\n\t\t},\n\t\tdevDependencies: {\n\t\t\t...DEFAULT_DEV_DEPENDENCIES,\n\t\t\t\"@slicemachine/adapter-nuxt\": \"latest\",\n\t\t},\n\t},\n\t\"next-11-13\": {\n\t\tname: \"Next.js 11-13\",\n\t\tprismicName: \"next-11-13\",\n\t\tadapterName: \"@slicemachine/adapter-next\",\n\t\tcompatibility: {\n\t\t\tnext: \"^11.0.0 || ^12.0.0 || ^13.0.0\",\n\t\t},\n\t\tdevDependencies: {\n\t\t\t...DEFAULT_DEV_DEPENDENCIES,\n\t\t\t\"@slicemachine/adapter-next\": \"latest\",\n\t\t},\n\t},\n} as const;\n\n/**\n * Universal package used when framework is not supported.\n */\nexport const UNIVERSAL: Framework = {\n\tname: \"universal (no framework)\",\n\tprismicName: \"universal\",\n\tadapterName: \"@slicemachine/adapter-universal\",\n\tcompatibility: {},\n\tdevDependencies: {\n\t\t...DEFAULT_DEV_DEPENDENCIES,\n\t\t\"@slicemachine/adapter-universal\": \"latest\",\n\t},\n};\n\nexport const detectFramework = async (cwd: string): Promise<Framework> => {\n\tconst path = join(cwd, \"package.json\");\n\n\tlet allDependencies: Record<string, string>;\n\ttry {\n\t\tconst pkg = JSON.parse(await readFile(path, \"utf-8\"));\n\n\t\tallDependencies = {\n\t\t\t...pkg.dependencies,\n\t\t\t...pkg.devDependencies,\n\t\t};\n\t} catch (error) {\n\t\tthrow new Error(\n\t\t\t`Failed to read project's \\`package.json\\` at \\`${path}\\``,\n\t\t\t{ cause: error },\n\t\t);\n\t}\n\n\treturn (\n\t\tObject.values(FRAMEWORKS).find((framework) => {\n\t\t\treturn Object.entries(framework.compatibility).every(([pkg, range]) => {\n\t\t\t\tif (pkg in allDependencies) {\n\t\t\t\t\t// Determine lowest version possibly in use\n\t\t\t\t\tconst minimumVersion = semver.minVersion(allDependencies[pkg]);\n\n\t\t\t\t\t//
|
|
1
|
+
{"version":3,"file":"framework.js","sources":["../../../src/lib/framework.ts"],"sourcesContent":["import { readFile } from \"node:fs/promises\";\nimport { join } from \"node:path\";\n\nimport semver from \"semver\";\n\nexport type Framework = {\n\t/**\n\t * Framework's human readable name.\n\t */\n\tname: string;\n\n\t/**\n\t * Framework's name sent to Prismic\n\t */\n\tprismicName: string;\n\n\t/**\n\t * A link to the Prismic documentation for the framework\n\t */\n\tprismicDocumentation: string;\n\n\t/**\n\t * Package name of the adapter responsible for this framework\n\t */\n\tadapterName: string;\n\n\t/**\n\t * A package name/semver range map defining framework compatibility\n\t * requirements.\n\t *\n\t * Project should match all entries to be considered compatible.\n\t */\n\tcompatibility: Record<string, string>;\n\n\t/**\n\t * A package name/semver range map defining development dependencies to be\n\t * installed. Typically Slice Machine and the framework's adapter.\n\t *\n\t * @remarks\n\t * Dependencies required to work with the framework (e.g. `@prismicio/next`\n\t * for Next.js) should not be defined here. Those are to be defined by the\n\t * adapter.\n\t */\n\tdevDependencies: Record<string, string>;\n};\n\nconst DEFAULT_DEV_DEPENDENCIES: Record<string, string> = {\n\t\"slice-machine-ui\": \"<1.0.0\",\n};\n\n/**\n * Frameworks we support, orders shouldn't matter much but is respected (the\n * higher it is the more priority it has in case multiple matches)\n */\nexport const FRAMEWORKS: Record<string, Framework> = {\n\t\"nuxt-2\": {\n\t\tname: \"Nuxt 2\",\n\t\tprismicName: \"nuxt-2\",\n\t\tprismicDocumentation: \"https://prismic.dev/init/nuxt-2\",\n\t\tadapterName: \"@slicemachine/adapter-nuxt\",\n\t\tcompatibility: {\n\t\t\tnuxt: \"^2.0.0\",\n\t\t},\n\t\tdevDependencies: {\n\t\t\t...DEFAULT_DEV_DEPENDENCIES,\n\t\t\t\"@slicemachine/adapter-nuxt\": \"latest\",\n\t\t},\n\t},\n\t\"next-11-13\": {\n\t\tname: \"Next.js 11-13\",\n\t\tprismicName: \"next-11-13\",\n\t\tprismicDocumentation: \"https://prismic.dev/init/next-11-13\",\n\t\tadapterName: \"@slicemachine/adapter-next\",\n\t\tcompatibility: {\n\t\t\tnext: \"^11.0.0 || ^12.0.0 || ^13.0.0\",\n\t\t},\n\t\tdevDependencies: {\n\t\t\t...DEFAULT_DEV_DEPENDENCIES,\n\t\t\t\"@slicemachine/adapter-next\": \"latest\",\n\t\t},\n\t},\n} as const;\n\n/**\n * Universal package used when framework is not supported.\n */\nexport const UNIVERSAL: Framework = {\n\tname: \"universal (no framework)\",\n\tprismicName: \"universal\",\n\tprismicDocumentation: \"https://prismic.dev/init/universal\",\n\tadapterName: \"@slicemachine/adapter-universal\",\n\tcompatibility: {},\n\tdevDependencies: {\n\t\t...DEFAULT_DEV_DEPENDENCIES,\n\t\t\"@slicemachine/adapter-universal\": \"latest\",\n\t},\n};\n\nexport const detectFramework = async (cwd: string): Promise<Framework> => {\n\tconst path = join(cwd, \"package.json\");\n\n\tlet allDependencies: Record<string, string>;\n\ttry {\n\t\tconst pkg = JSON.parse(await readFile(path, \"utf-8\"));\n\n\t\tallDependencies = {\n\t\t\t...pkg.dependencies,\n\t\t\t...pkg.devDependencies,\n\t\t};\n\t} catch (error) {\n\t\tthrow new Error(\n\t\t\t`Failed to read project's \\`package.json\\` at \\`${path}\\``,\n\t\t\t{ cause: error },\n\t\t);\n\t}\n\n\treturn (\n\t\tObject.values(FRAMEWORKS).find((framework) => {\n\t\t\treturn Object.entries(framework.compatibility).every(([pkg, range]) => {\n\t\t\t\tif (pkg in allDependencies) {\n\t\t\t\t\ttry {\n\t\t\t\t\t\t// Determine lowest version possibly in use\n\t\t\t\t\t\tconst minimumVersion = semver.minVersion(allDependencies[pkg]);\n\n\t\t\t\t\t\t// eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n\t\t\t\t\t\treturn semver.satisfies(minimumVersion!, range);\n\t\t\t\t\t} catch (error) {\n\t\t\t\t\t\t// We assume unconventional tags, `latest`, `beta`, `dev` matches the framework\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn false;\n\t\t\t});\n\t\t}) || UNIVERSAL\n\t);\n};\n"],"names":[],"mappings":";;;AA8CA,MAAM,2BAAmD;AAAA,EACxD,oBAAoB;;AAOd,MAAM,aAAwC;AAAA,EACpD,UAAU;AAAA,IACT,MAAM;AAAA,IACN,aAAa;AAAA,IACb,sBAAsB;AAAA,IACtB,aAAa;AAAA,IACb,eAAe;AAAA,MACd,MAAM;AAAA,IACN;AAAA,IACD,iBAAiB;AAAA,MAChB,GAAG;AAAA,MACH,8BAA8B;AAAA,IAC9B;AAAA,EACD;AAAA,EACD,cAAc;AAAA,IACb,MAAM;AAAA,IACN,aAAa;AAAA,IACb,sBAAsB;AAAA,IACtB,aAAa;AAAA,IACb,eAAe;AAAA,MACd,MAAM;AAAA,IACN;AAAA,IACD,iBAAiB;AAAA,MAChB,GAAG;AAAA,MACH,8BAA8B;AAAA,IAC9B;AAAA,EACD;;AAMK,MAAM,YAAuB;AAAA,EACnC,MAAM;AAAA,EACN,aAAa;AAAA,EACb,sBAAsB;AAAA,EACtB,aAAa;AAAA,EACb,eAAe,CAAE;AAAA,EACjB,iBAAiB;AAAA,IAChB,GAAG;AAAA,IACH,mCAAmC;AAAA,EACnC;;AAGW,MAAA,kBAAkB,OAAO,QAAmC;AAClE,QAAA,OAAO,KAAK,KAAK,cAAc;AAEjC,MAAA;AACA,MAAA;AACH,UAAM,MAAM,KAAK,MAAM,MAAM,SAAS,MAAM,OAAO,CAAC;AAElC,sBAAA;AAAA,MACjB,GAAG,IAAI;AAAA,MACP,GAAG,IAAI;AAAA,IAAA;AAAA,WAEA;AACR,UAAM,IAAI,MACT,kDAAkD,UAClD,EAAE,OAAO,OAAO;AAAA,EAEjB;AAED,SACC,OAAO,OAAO,UAAU,EAAE,KAAK,CAAC,cAAa;AACrC,WAAA,OAAO,QAAQ,UAAU,aAAa,EAAE,MAAM,CAAC,CAAC,KAAK,KAAK,MAAK;AACrE,UAAI,OAAO,iBAAiB;AACvB,YAAA;AAEH,gBAAM,iBAAiB,OAAO,WAAW,gBAAgB,GAAG,CAAC;AAGtD,iBAAA,OAAO,UAAU,gBAAiB,KAAK;AAAA,iBACtC;AAED,iBAAA;AAAA,QACP;AAAA,MACD;AAEM,aAAA;AAAA,IAAA,CACP;AAAA,EACD,CAAA,KAAK;AAER;"}
|
|
@@ -27,13 +27,21 @@ const installDependencies = async (args) => {
|
|
|
27
27
|
});
|
|
28
28
|
return { execaProcess };
|
|
29
29
|
};
|
|
30
|
-
const
|
|
31
|
-
|
|
30
|
+
const getRunScriptCommand = async (args) => {
|
|
31
|
+
return await ni.parseNr(args.agent, [args.script]) || `npm run ${args.script}`;
|
|
32
|
+
};
|
|
33
|
+
const getExecuteCommand = async (args) => {
|
|
34
|
+
return await ni.parseNx(args.agent, [args.script]) || `npx ${args.script}`;
|
|
35
|
+
};
|
|
36
|
+
const detectPackageManager = async (cwd) => {
|
|
37
|
+
const agent = await ni.detect({ autoInstall: true, cwd });
|
|
32
38
|
if (!agent) {
|
|
33
|
-
throw new Error("Failed to detect project's
|
|
39
|
+
throw new Error("Failed to detect project's package manager");
|
|
34
40
|
}
|
|
35
41
|
return agent;
|
|
36
42
|
};
|
|
37
43
|
exports.detectPackageManager = detectPackageManager;
|
|
44
|
+
exports.getExecuteCommand = getExecuteCommand;
|
|
45
|
+
exports.getRunScriptCommand = getRunScriptCommand;
|
|
38
46
|
exports.installDependencies = installDependencies;
|
|
39
47
|
//# sourceMappingURL=packageManager.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"packageManager.cjs","sources":["../../../src/lib/packageManager.ts"],"sourcesContent":["import { parseNi, detect as niDetect } from \"@antfu/ni\";\nimport {\n\tExecaChildProcess,\n\texecaCommand,\n\tOptions as ExacaOptions,\n} from \"execa\";\n\nexport type PackageManagerAgent = Exclude<\n\tAwaited<ReturnType<typeof niDetect>>,\n\tnull\n>;\n\nconst EXTRA_AGENT_FLAGS: Record<PackageManagerAgent, string[]> = {\n\tnpm: [\"--color=always\", \"--loglevel=info\"],\n\tpnpm: [\"--color\"], // TODO: Validate that flags are correct\n\tyarn: [\"--color\"],\n\t\"yarn@berry\": [\"--color\"], // TODO: Validate that flags are correct\n\t\"pnpm@6\": [\"--color\"], // TODO: Validate that flags are correct\n\tbun: [\"--color\"], // TODO: Validate that flags are correct\n};\n\ntype InstallDependenciesArgs = {\n\tagent: PackageManagerAgent;\n\tdependencies?: Record<string, string>;\n\tdev?: boolean;\n\texeca?: ExacaOptions;\n};\n\nexport const installDependencies = async (\n\targs: InstallDependenciesArgs,\n): Promise<{ execaProcess: ExecaChildProcess }> => {\n\tconst commandArgs = args.dependencies\n\t\t? Object.entries(args.dependencies).map(([pkg, range]) => `${pkg}@${range}`)\n\t\t: [];\n\n\tif (commandArgs.length && args.dev) {\n\t\tcommandArgs.unshift(\"-D\");\n\t}\n\n\tcommandArgs.push(...EXTRA_AGENT_FLAGS[args.agent]);\n\n\tconst command = await parseNi(args.agent, commandArgs);\n\n\tif (!command) {\n\t\tthrow new Error(\n\t\t\t\"Failed to begin dependency installation (could not parse command)\",\n\t\t);\n\t}\n\n\tconst execaProcess = execaCommand(command, {\n\t\tencoding: \"utf-8\",\n\t\t...args.execa,\n\t});\n\n\treturn { execaProcess };\n};\n\nexport const detectPackageManager = async (): Promise<PackageManagerAgent> => {\n\t// We auto install agent for now otherwise ni could cause some issues with prompt\n\tconst agent = await niDetect({ autoInstall: true });\n\n\tif (!agent) {\n\t\tthrow new Error(\"Failed to detect project's
|
|
1
|
+
{"version":3,"file":"packageManager.cjs","sources":["../../../src/lib/packageManager.ts"],"sourcesContent":["import { parseNi, parseNr, detect as niDetect, parseNx } from \"@antfu/ni\";\nimport {\n\tExecaChildProcess,\n\texecaCommand,\n\tOptions as ExacaOptions,\n} from \"execa\";\n\nexport type PackageManagerAgent = Exclude<\n\tAwaited<ReturnType<typeof niDetect>>,\n\tnull\n>;\n\nconst EXTRA_AGENT_FLAGS: Record<PackageManagerAgent, string[]> = {\n\tnpm: [\"--color=always\", \"--loglevel=info\"],\n\tpnpm: [\"--color\"], // TODO: Validate that flags are correct\n\tyarn: [\"--color\"],\n\t\"yarn@berry\": [\"--color\"], // TODO: Validate that flags are correct\n\t\"pnpm@6\": [\"--color\"], // TODO: Validate that flags are correct\n\tbun: [\"--color\"], // TODO: Validate that flags are correct\n};\n\ntype InstallDependenciesArgs = {\n\tagent: PackageManagerAgent;\n\tdependencies?: Record<string, string>;\n\tdev?: boolean;\n\texeca?: ExacaOptions;\n};\n\nexport const installDependencies = async (\n\targs: InstallDependenciesArgs,\n): Promise<{ execaProcess: ExecaChildProcess }> => {\n\tconst commandArgs = args.dependencies\n\t\t? Object.entries(args.dependencies).map(([pkg, range]) => `${pkg}@${range}`)\n\t\t: [];\n\n\tif (commandArgs.length && args.dev) {\n\t\tcommandArgs.unshift(\"-D\");\n\t}\n\n\tcommandArgs.push(...EXTRA_AGENT_FLAGS[args.agent]);\n\n\tconst command = await parseNi(args.agent, commandArgs);\n\n\tif (!command) {\n\t\tthrow new Error(\n\t\t\t\"Failed to begin dependency installation (could not parse command)\",\n\t\t);\n\t}\n\n\tconst execaProcess = execaCommand(command, {\n\t\tencoding: \"utf-8\",\n\t\t...args.execa,\n\t});\n\n\treturn { execaProcess };\n};\n\nexport const getRunScriptCommand = async (args: {\n\tagent: PackageManagerAgent;\n\tscript: string;\n}): Promise<string> => {\n\treturn (await parseNr(args.agent, [args.script])) || `npm run ${args.script}`;\n};\n\nexport const getExecuteCommand = async (args: {\n\tagent: PackageManagerAgent;\n\tscript: string;\n}): Promise<string> => {\n\treturn (await parseNx(args.agent, [args.script])) || `npx ${args.script}`;\n};\n\nexport const detectPackageManager = async (\n\tcwd?: string,\n): Promise<PackageManagerAgent> => {\n\t// We auto install agent for now otherwise ni could cause some issues with prompt\n\tconst agent = await niDetect({ autoInstall: true, cwd });\n\n\tif (!agent) {\n\t\tthrow new Error(\"Failed to detect project's package manager\");\n\t}\n\n\treturn agent;\n};\n"],"names":["parseNi","execaCommand","parseNr","parseNx","niDetect"],"mappings":";;;;AAYA,MAAM,oBAA2D;AAAA,EAChE,KAAK,CAAC,kBAAkB,iBAAiB;AAAA,EACzC,MAAM,CAAC,SAAS;AAAA,EAChB,MAAM,CAAC,SAAS;AAAA,EAChB,cAAc,CAAC,SAAS;AAAA,EACxB,UAAU,CAAC,SAAS;AAAA,EACpB,KAAK,CAAC,SAAS;AAAA;;AAUH,MAAA,sBAAsB,OAClC,SACiD;AACjD,QAAM,cAAc,KAAK,eACtB,OAAO,QAAQ,KAAK,YAAY,EAAE,IAAI,CAAC,CAAC,KAAK,KAAK,MAAM,GAAG,OAAO,OAAO,IACzE;AAEC,MAAA,YAAY,UAAU,KAAK,KAAK;AACnC,gBAAY,QAAQ,IAAI;AAAA,EACxB;AAED,cAAY,KAAK,GAAG,kBAAkB,KAAK,KAAK,CAAC;AAEjD,QAAM,UAAU,MAAMA,GAAQ,QAAA,KAAK,OAAO,WAAW;AAErD,MAAI,CAAC,SAAS;AACP,UAAA,IAAI,MACT,mEAAmE;AAAA,EAEpE;AAEK,QAAA,eAAeC,mBAAa,SAAS;AAAA,IAC1C,UAAU;AAAA,IACV,GAAG,KAAK;AAAA,EAAA,CACR;AAED,SAAO,EAAE,aAAY;AACtB;AAEa,MAAA,sBAAsB,OAAO,SAGpB;AACb,SAAA,MAAMC,GAAQ,QAAA,KAAK,OAAO,CAAC,KAAK,MAAM,CAAC,KAAM,WAAW,KAAK;AACtE;AAEa,MAAA,oBAAoB,OAAO,SAGlB;AACb,SAAA,MAAMC,GAAQ,QAAA,KAAK,OAAO,CAAC,KAAK,MAAM,CAAC,KAAM,OAAO,KAAK;AAClE;AAEa,MAAA,uBAAuB,OACnC,QACiC;AAEjC,QAAM,QAAQ,MAAMC,UAAS,EAAE,aAAa,MAAM,KAAK;AAEvD,MAAI,CAAC,OAAO;AACL,UAAA,IAAI,MAAM,4CAA4C;AAAA,EAC5D;AAEM,SAAA;AACR;;;;;"}
|
|
@@ -10,5 +10,13 @@ type InstallDependenciesArgs = {
|
|
|
10
10
|
export declare const installDependencies: (args: InstallDependenciesArgs) => Promise<{
|
|
11
11
|
execaProcess: ExecaChildProcess;
|
|
12
12
|
}>;
|
|
13
|
-
export declare const
|
|
13
|
+
export declare const getRunScriptCommand: (args: {
|
|
14
|
+
agent: PackageManagerAgent;
|
|
15
|
+
script: string;
|
|
16
|
+
}) => Promise<string>;
|
|
17
|
+
export declare const getExecuteCommand: (args: {
|
|
18
|
+
agent: PackageManagerAgent;
|
|
19
|
+
script: string;
|
|
20
|
+
}) => Promise<string>;
|
|
21
|
+
export declare const detectPackageManager: (cwd?: string) => Promise<PackageManagerAgent>;
|
|
14
22
|
export {};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { parseNi, detect } from "@antfu/ni";
|
|
1
|
+
import { parseNr, parseNx, parseNi, detect } from "@antfu/ni";
|
|
2
2
|
import { execaCommand } from './../packages/init/__node_modules/execa/index.js';
|
|
3
3
|
const EXTRA_AGENT_FLAGS = {
|
|
4
4
|
npm: ["--color=always", "--loglevel=info"],
|
|
@@ -25,15 +25,23 @@ const installDependencies = async (args) => {
|
|
|
25
25
|
});
|
|
26
26
|
return { execaProcess };
|
|
27
27
|
};
|
|
28
|
-
const
|
|
29
|
-
|
|
28
|
+
const getRunScriptCommand = async (args) => {
|
|
29
|
+
return await parseNr(args.agent, [args.script]) || `npm run ${args.script}`;
|
|
30
|
+
};
|
|
31
|
+
const getExecuteCommand = async (args) => {
|
|
32
|
+
return await parseNx(args.agent, [args.script]) || `npx ${args.script}`;
|
|
33
|
+
};
|
|
34
|
+
const detectPackageManager = async (cwd) => {
|
|
35
|
+
const agent = await detect({ autoInstall: true, cwd });
|
|
30
36
|
if (!agent) {
|
|
31
|
-
throw new Error("Failed to detect project's
|
|
37
|
+
throw new Error("Failed to detect project's package manager");
|
|
32
38
|
}
|
|
33
39
|
return agent;
|
|
34
40
|
};
|
|
35
41
|
export {
|
|
36
42
|
detectPackageManager,
|
|
43
|
+
getExecuteCommand,
|
|
44
|
+
getRunScriptCommand,
|
|
37
45
|
installDependencies
|
|
38
46
|
};
|
|
39
47
|
//# sourceMappingURL=packageManager.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"packageManager.js","sources":["../../../src/lib/packageManager.ts"],"sourcesContent":["import { parseNi, detect as niDetect } from \"@antfu/ni\";\nimport {\n\tExecaChildProcess,\n\texecaCommand,\n\tOptions as ExacaOptions,\n} from \"execa\";\n\nexport type PackageManagerAgent = Exclude<\n\tAwaited<ReturnType<typeof niDetect>>,\n\tnull\n>;\n\nconst EXTRA_AGENT_FLAGS: Record<PackageManagerAgent, string[]> = {\n\tnpm: [\"--color=always\", \"--loglevel=info\"],\n\tpnpm: [\"--color\"], // TODO: Validate that flags are correct\n\tyarn: [\"--color\"],\n\t\"yarn@berry\": [\"--color\"], // TODO: Validate that flags are correct\n\t\"pnpm@6\": [\"--color\"], // TODO: Validate that flags are correct\n\tbun: [\"--color\"], // TODO: Validate that flags are correct\n};\n\ntype InstallDependenciesArgs = {\n\tagent: PackageManagerAgent;\n\tdependencies?: Record<string, string>;\n\tdev?: boolean;\n\texeca?: ExacaOptions;\n};\n\nexport const installDependencies = async (\n\targs: InstallDependenciesArgs,\n): Promise<{ execaProcess: ExecaChildProcess }> => {\n\tconst commandArgs = args.dependencies\n\t\t? Object.entries(args.dependencies).map(([pkg, range]) => `${pkg}@${range}`)\n\t\t: [];\n\n\tif (commandArgs.length && args.dev) {\n\t\tcommandArgs.unshift(\"-D\");\n\t}\n\n\tcommandArgs.push(...EXTRA_AGENT_FLAGS[args.agent]);\n\n\tconst command = await parseNi(args.agent, commandArgs);\n\n\tif (!command) {\n\t\tthrow new Error(\n\t\t\t\"Failed to begin dependency installation (could not parse command)\",\n\t\t);\n\t}\n\n\tconst execaProcess = execaCommand(command, {\n\t\tencoding: \"utf-8\",\n\t\t...args.execa,\n\t});\n\n\treturn { execaProcess };\n};\n\nexport const detectPackageManager = async (): Promise<PackageManagerAgent> => {\n\t// We auto install agent for now otherwise ni could cause some issues with prompt\n\tconst agent = await niDetect({ autoInstall: true });\n\n\tif (!agent) {\n\t\tthrow new Error(\"Failed to detect project's
|
|
1
|
+
{"version":3,"file":"packageManager.js","sources":["../../../src/lib/packageManager.ts"],"sourcesContent":["import { parseNi, parseNr, detect as niDetect, parseNx } from \"@antfu/ni\";\nimport {\n\tExecaChildProcess,\n\texecaCommand,\n\tOptions as ExacaOptions,\n} from \"execa\";\n\nexport type PackageManagerAgent = Exclude<\n\tAwaited<ReturnType<typeof niDetect>>,\n\tnull\n>;\n\nconst EXTRA_AGENT_FLAGS: Record<PackageManagerAgent, string[]> = {\n\tnpm: [\"--color=always\", \"--loglevel=info\"],\n\tpnpm: [\"--color\"], // TODO: Validate that flags are correct\n\tyarn: [\"--color\"],\n\t\"yarn@berry\": [\"--color\"], // TODO: Validate that flags are correct\n\t\"pnpm@6\": [\"--color\"], // TODO: Validate that flags are correct\n\tbun: [\"--color\"], // TODO: Validate that flags are correct\n};\n\ntype InstallDependenciesArgs = {\n\tagent: PackageManagerAgent;\n\tdependencies?: Record<string, string>;\n\tdev?: boolean;\n\texeca?: ExacaOptions;\n};\n\nexport const installDependencies = async (\n\targs: InstallDependenciesArgs,\n): Promise<{ execaProcess: ExecaChildProcess }> => {\n\tconst commandArgs = args.dependencies\n\t\t? Object.entries(args.dependencies).map(([pkg, range]) => `${pkg}@${range}`)\n\t\t: [];\n\n\tif (commandArgs.length && args.dev) {\n\t\tcommandArgs.unshift(\"-D\");\n\t}\n\n\tcommandArgs.push(...EXTRA_AGENT_FLAGS[args.agent]);\n\n\tconst command = await parseNi(args.agent, commandArgs);\n\n\tif (!command) {\n\t\tthrow new Error(\n\t\t\t\"Failed to begin dependency installation (could not parse command)\",\n\t\t);\n\t}\n\n\tconst execaProcess = execaCommand(command, {\n\t\tencoding: \"utf-8\",\n\t\t...args.execa,\n\t});\n\n\treturn { execaProcess };\n};\n\nexport const getRunScriptCommand = async (args: {\n\tagent: PackageManagerAgent;\n\tscript: string;\n}): Promise<string> => {\n\treturn (await parseNr(args.agent, [args.script])) || `npm run ${args.script}`;\n};\n\nexport const getExecuteCommand = async (args: {\n\tagent: PackageManagerAgent;\n\tscript: string;\n}): Promise<string> => {\n\treturn (await parseNx(args.agent, [args.script])) || `npx ${args.script}`;\n};\n\nexport const detectPackageManager = async (\n\tcwd?: string,\n): Promise<PackageManagerAgent> => {\n\t// We auto install agent for now otherwise ni could cause some issues with prompt\n\tconst agent = await niDetect({ autoInstall: true, cwd });\n\n\tif (!agent) {\n\t\tthrow new Error(\"Failed to detect project's package manager\");\n\t}\n\n\treturn agent;\n};\n"],"names":["niDetect"],"mappings":";;AAYA,MAAM,oBAA2D;AAAA,EAChE,KAAK,CAAC,kBAAkB,iBAAiB;AAAA,EACzC,MAAM,CAAC,SAAS;AAAA,EAChB,MAAM,CAAC,SAAS;AAAA,EAChB,cAAc,CAAC,SAAS;AAAA,EACxB,UAAU,CAAC,SAAS;AAAA,EACpB,KAAK,CAAC,SAAS;AAAA;;AAUH,MAAA,sBAAsB,OAClC,SACiD;AACjD,QAAM,cAAc,KAAK,eACtB,OAAO,QAAQ,KAAK,YAAY,EAAE,IAAI,CAAC,CAAC,KAAK,KAAK,MAAM,GAAG,OAAO,OAAO,IACzE;AAEC,MAAA,YAAY,UAAU,KAAK,KAAK;AACnC,gBAAY,QAAQ,IAAI;AAAA,EACxB;AAED,cAAY,KAAK,GAAG,kBAAkB,KAAK,KAAK,CAAC;AAEjD,QAAM,UAAU,MAAM,QAAQ,KAAK,OAAO,WAAW;AAErD,MAAI,CAAC,SAAS;AACP,UAAA,IAAI,MACT,mEAAmE;AAAA,EAEpE;AAEK,QAAA,eAAe,aAAa,SAAS;AAAA,IAC1C,UAAU;AAAA,IACV,GAAG,KAAK;AAAA,EAAA,CACR;AAED,SAAO,EAAE,aAAY;AACtB;AAEa,MAAA,sBAAsB,OAAO,SAGpB;AACb,SAAA,MAAM,QAAQ,KAAK,OAAO,CAAC,KAAK,MAAM,CAAC,KAAM,WAAW,KAAK;AACtE;AAEa,MAAA,oBAAoB,OAAO,SAGlB;AACb,SAAA,MAAM,QAAQ,KAAK,OAAO,CAAC,KAAK,MAAM,CAAC,KAAM,OAAO,KAAK;AAClE;AAEa,MAAA,uBAAuB,OACnC,QACiC;AAEjC,QAAM,QAAQ,MAAMA,OAAS,EAAE,aAAa,MAAM,KAAK;AAEvD,MAAI,CAAC,OAAO;AACL,UAAA,IAAI,MAAM,4CAA4C;AAAA,EAC5D;AAEM,SAAA;AACR;"}
|
package/dist/lib/prompt.cjs
CHANGED
|
@@ -2,12 +2,13 @@
|
|
|
2
2
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
3
|
const prompts = require("prompts");
|
|
4
4
|
const prompt = async (question) => {
|
|
5
|
+
var _a, _b, _c, _d;
|
|
5
6
|
const answers = await prompts(question);
|
|
6
7
|
if (!Object.keys(answers).length) {
|
|
7
8
|
process.exit(130);
|
|
8
9
|
}
|
|
9
|
-
process.stdout.moveCursor(0, -1);
|
|
10
|
-
process.stdout.clearLine(1);
|
|
10
|
+
(_b = (_a = process.stdout).moveCursor) == null ? void 0 : _b.call(_a, 0, -1);
|
|
11
|
+
(_d = (_c = process.stdout).clearLine) == null ? void 0 : _d.call(_c, 1);
|
|
11
12
|
return answers;
|
|
12
13
|
};
|
|
13
14
|
exports.prompt = prompt;
|
package/dist/lib/prompt.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prompt.cjs","sources":["../../../src/lib/prompt.ts"],"sourcesContent":["import prompts from \"prompts\";\n\ntype promptArgs<\n\tTValue = unknown,\n\tTProperty extends string = string,\n> = prompts.PromptObject<TProperty> & {\n\t// Method is available, cf. docs\n\tonRender?: (this: { msg: string; value?: TValue; initial?: TValue }) => void;\n};\n\nexport const prompt = async <TReturn, TProperty extends string = string>(\n\tquestion: promptArgs<TReturn, TProperty>,\n): Promise<Record<TProperty, TReturn>> => {\n\tconst answers: Record<TProperty, TReturn> = await prompts<TProperty>(\n\t\tquestion,\n\t);\n\n\tif (!Object.keys(answers).length) {\n\t\tprocess.exit(130);\n\t}\n\n\t// Clear prompt line, clean recap are done manually\n\tprocess.stdout.moveCursor(0, -1);\n\tprocess.stdout.clearLine(1);\n\n\treturn answers;\n};\n"],"names":[],"mappings":";;;AAUa,MAAA,SAAS,OACrB,aACwC
|
|
1
|
+
{"version":3,"file":"prompt.cjs","sources":["../../../src/lib/prompt.ts"],"sourcesContent":["import prompts from \"prompts\";\n\ntype promptArgs<\n\tTValue = unknown,\n\tTProperty extends string = string,\n> = prompts.PromptObject<TProperty> & {\n\t// Method is available, cf. docs\n\tonRender?: (this: { msg: string; value?: TValue; initial?: TValue }) => void;\n};\n\nexport const prompt = async <TReturn, TProperty extends string = string>(\n\tquestion: promptArgs<TReturn, TProperty>,\n): Promise<Record<TProperty, TReturn>> => {\n\tconst answers: Record<TProperty, TReturn> = await prompts<TProperty>(\n\t\tquestion,\n\t);\n\n\tif (!Object.keys(answers).length) {\n\t\tprocess.exit(130);\n\t}\n\n\t// Clear prompt line, clean recap are done manually\n\tprocess.stdout.moveCursor?.(0, -1);\n\tprocess.stdout.clearLine?.(1);\n\n\treturn answers;\n};\n"],"names":[],"mappings":";;;AAUa,MAAA,SAAS,OACrB,aACwC;;AAClC,QAAA,UAAsC,MAAM,QACjD,QAAQ;AAGT,MAAI,CAAC,OAAO,KAAK,OAAO,EAAE,QAAQ;AACjC,YAAQ,KAAK,GAAG;AAAA,EAChB;AAGO,sBAAA,QAAO,eAAP,4BAAoB,GAAG;AACvB,sBAAA,QAAO,cAAP,4BAAmB;AAEpB,SAAA;AACR;;"}
|
package/dist/lib/prompt.js
CHANGED
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
import prompts from "prompts";
|
|
2
2
|
const prompt = async (question) => {
|
|
3
|
+
var _a, _b, _c, _d;
|
|
3
4
|
const answers = await prompts(question);
|
|
4
5
|
if (!Object.keys(answers).length) {
|
|
5
6
|
process.exit(130);
|
|
6
7
|
}
|
|
7
|
-
process.stdout.moveCursor(0, -1);
|
|
8
|
-
process.stdout.clearLine(1);
|
|
8
|
+
(_b = (_a = process.stdout).moveCursor) == null ? void 0 : _b.call(_a, 0, -1);
|
|
9
|
+
(_d = (_c = process.stdout).clearLine) == null ? void 0 : _d.call(_c, 1);
|
|
9
10
|
return answers;
|
|
10
11
|
};
|
|
11
12
|
export {
|
package/dist/lib/prompt.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prompt.js","sources":["../../../src/lib/prompt.ts"],"sourcesContent":["import prompts from \"prompts\";\n\ntype promptArgs<\n\tTValue = unknown,\n\tTProperty extends string = string,\n> = prompts.PromptObject<TProperty> & {\n\t// Method is available, cf. docs\n\tonRender?: (this: { msg: string; value?: TValue; initial?: TValue }) => void;\n};\n\nexport const prompt = async <TReturn, TProperty extends string = string>(\n\tquestion: promptArgs<TReturn, TProperty>,\n): Promise<Record<TProperty, TReturn>> => {\n\tconst answers: Record<TProperty, TReturn> = await prompts<TProperty>(\n\t\tquestion,\n\t);\n\n\tif (!Object.keys(answers).length) {\n\t\tprocess.exit(130);\n\t}\n\n\t// Clear prompt line, clean recap are done manually\n\tprocess.stdout.moveCursor(0, -1);\n\tprocess.stdout.clearLine(1);\n\n\treturn answers;\n};\n"],"names":[],"mappings":";AAUa,MAAA,SAAS,OACrB,aACwC
|
|
1
|
+
{"version":3,"file":"prompt.js","sources":["../../../src/lib/prompt.ts"],"sourcesContent":["import prompts from \"prompts\";\n\ntype promptArgs<\n\tTValue = unknown,\n\tTProperty extends string = string,\n> = prompts.PromptObject<TProperty> & {\n\t// Method is available, cf. docs\n\tonRender?: (this: { msg: string; value?: TValue; initial?: TValue }) => void;\n};\n\nexport const prompt = async <TReturn, TProperty extends string = string>(\n\tquestion: promptArgs<TReturn, TProperty>,\n): Promise<Record<TProperty, TReturn>> => {\n\tconst answers: Record<TProperty, TReturn> = await prompts<TProperty>(\n\t\tquestion,\n\t);\n\n\tif (!Object.keys(answers).length) {\n\t\tprocess.exit(130);\n\t}\n\n\t// Clear prompt line, clean recap are done manually\n\tprocess.stdout.moveCursor?.(0, -1);\n\tprocess.stdout.clearLine?.(1);\n\n\treturn answers;\n};\n"],"names":[],"mappings":";AAUa,MAAA,SAAS,OACrB,aACwC;;AAClC,QAAA,UAAsC,MAAM,QACjD,QAAQ;AAGT,MAAI,CAAC,OAAO,KAAK,OAAO,EAAE,QAAQ;AACjC,YAAQ,KAAK,GAAG;AAAA,EAChB;AAGO,sBAAA,QAAO,eAAP,4BAAoB,GAAG;AACvB,sBAAA,QAAO,cAAP,4BAAmB;AAEpB,SAAA;AACR;"}
|
|
@@ -14,7 +14,7 @@ const kill = require("./lib/kill.cjs");
|
|
|
14
14
|
const stream = require("./lib/stream.cjs");
|
|
15
15
|
const promise = require("./lib/promise.cjs");
|
|
16
16
|
const command = require("./lib/command.cjs");
|
|
17
|
-
const index$1 = require("../../../../_virtual/
|
|
17
|
+
const index$1 = require("../../../../_virtual/index5.cjs");
|
|
18
18
|
const DEFAULT_MAX_BUFFER = 1e3 * 1e3 * 100;
|
|
19
19
|
const getEnv = ({ env: envOption, extendEnv, preferLocal, localDir, execPath }) => {
|
|
20
20
|
const env = extendEnv ? { ...process.env, ...envOption } : envOption;
|
|
@@ -12,7 +12,7 @@ import { validateTimeout, setupTimeout, setExitHandler, spawnedKill, spawnedCanc
|
|
|
12
12
|
import { handleInput, makeAllStream, getSpawnedResult } from "./lib/stream.js";
|
|
13
13
|
import { mergePromise, getSpawnedPromise } from "./lib/promise.js";
|
|
14
14
|
import { parseCommand, joinCommand, getEscapedCommand } from "./lib/command.js";
|
|
15
|
-
import { exports as crossSpawnExports } from "../../../../_virtual/
|
|
15
|
+
import { exports as crossSpawnExports } from "../../../../_virtual/index5.js";
|
|
16
16
|
const DEFAULT_MAX_BUFFER = 1e3 * 1e3 * 100;
|
|
17
17
|
const getEnv = ({ env: envOption, extendEnv, preferLocal, localDir, execPath }) => {
|
|
18
18
|
const env = extendEnv ? { ...process.env, ...envOption } : envOption;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
3
|
const name = "@slicemachine/init";
|
|
4
|
-
const version = "0.1.1-dev-plugins.
|
|
4
|
+
const version = "0.1.1-dev-plugins.5";
|
|
5
5
|
exports.name = name;
|
|
6
6
|
exports.version = version;
|
|
7
7
|
//# sourceMappingURL=package.json.cjs.map
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@slicemachine/init",
|
|
3
|
-
"version": "0.1.1-dev-plugins.
|
|
3
|
+
"version": "0.1.1-dev-plugins.5",
|
|
4
4
|
"description": "Init Prismic Slice Machine in your project",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"typescript",
|
|
@@ -51,7 +51,7 @@
|
|
|
51
51
|
"dependencies": {
|
|
52
52
|
"@antfu/ni": "^0.18.8",
|
|
53
53
|
"@lihbr/listr-update-renderer": "^0.5.3",
|
|
54
|
-
"@slicemachine/manager": "0.1.1-dev-plugins.
|
|
54
|
+
"@slicemachine/manager": "0.1.1-dev-plugins.5",
|
|
55
55
|
"chalk": "^4.1.2",
|
|
56
56
|
"execa": "^6.1.0",
|
|
57
57
|
"globby": "^13.1.3",
|
|
@@ -64,6 +64,7 @@
|
|
|
64
64
|
},
|
|
65
65
|
"devDependencies": {
|
|
66
66
|
"@size-limit/preset-small-lib": "^8.1.0",
|
|
67
|
+
"@slicemachine/plugin-kit": "^0.1.8",
|
|
67
68
|
"@types/listr": "^0.14.4",
|
|
68
69
|
"@types/prompts": "^2.4.2",
|
|
69
70
|
"@types/semver": "^7.3.13",
|
|
@@ -75,6 +76,10 @@
|
|
|
75
76
|
"eslint-plugin-prettier": "^4.2.1",
|
|
76
77
|
"eslint-plugin-tsdoc": "^0.2.17",
|
|
77
78
|
"hook-std": "^3.0.0",
|
|
79
|
+
"memfs": "^3.4.13",
|
|
80
|
+
"mock-stdin": "^1.0.0",
|
|
81
|
+
"msw": "^0.49.2",
|
|
82
|
+
"parse-multipart-data": "^1.5.0",
|
|
78
83
|
"prettier-plugin-jsdoc": "^0.4.2",
|
|
79
84
|
"rollup-plugin-rename-node-modules": "^1.3.1",
|
|
80
85
|
"size-limit": "^8.1.0",
|
|
@@ -83,5 +88,5 @@
|
|
|
83
88
|
"vite-plugin-sdk": "^0.1.0",
|
|
84
89
|
"vitest": "^0.26.1"
|
|
85
90
|
},
|
|
86
|
-
"gitHead": "
|
|
91
|
+
"gitHead": "65c73d66cb958236cc0ea17c89b6aed023e93dff"
|
|
87
92
|
}
|