@slicemachine/init 1.0.2-alpha.3 → 1.0.2-alpha.33

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -49,4 +49,3 @@ Then open http://localhost:9999 to see the Slice Machine.
49
49
  <p align='center'>
50
50
  <img src='https://raw.githubusercontent.com/prismicio/slice-machine/master/.github/init-preview.png' width='600'>
51
51
  </p>
52
-
package/build/index.js CHANGED
@@ -2,23 +2,34 @@
2
2
  "use strict";
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
4
  const core_1 = require("@slicemachine/core");
5
+ const tracker_1 = require("./utils/tracker");
5
6
  const steps_1 = require("./steps");
6
7
  const utils_1 = require("./utils");
7
8
  async function init() {
8
9
  const cwd = (0, utils_1.findArgument)(process.argv, "cwd") || process.cwd();
9
- const base = ((0, utils_1.findArgument)(process.argv, "base") ||
10
- core_1.Utils.CONSTS.DEFAULT_BASE);
10
+ const base = (0, utils_1.findArgument)(process.argv, "base") || core_1.Utils.CONSTS.DEFAULT_BASE;
11
+ const lib = (0, utils_1.findArgument)(process.argv, "library");
12
+ const branch = (0, utils_1.findArgument)(process.argv, "branch");
13
+ const isTrackingAvailable = (0, utils_1.findArgument)(process.argv, "tracking") === "false" ? false : true;
11
14
  console.log(core_1.Utils.purple("You're about to configure Slicemachine... Press ctrl + C to cancel"));
12
15
  (0, steps_1.validatePkg)(cwd);
13
- await (0, steps_1.loginOrBypass)(base);
14
- const config = core_1.FileSystem.getOrCreateAuthConfig();
16
+ const user = await (0, steps_1.loginOrBypass)(base);
17
+ if (!user)
18
+ throw new Error("The user should be logged in!");
19
+ const config = core_1.FileSystem.PrismicSharedConfigManager.get();
15
20
  const frameworkResult = await (0, steps_1.detectFramework)(cwd);
16
21
  const { existing, name } = await (0, steps_1.maybeExistingRepo)(config.cookies, cwd, config.base);
17
22
  if (!existing) {
18
23
  await (0, steps_1.createRepository)(name, frameworkResult.value, config);
19
24
  }
25
+ const tracker = tracker_1.Tracker.build("JfTfmHaATChc4xueS7RcCBsixI71dJIJ", name, {
26
+ userId: user.userId,
27
+ }, isTrackingAvailable);
20
28
  await (0, steps_1.installRequiredDependencies)(cwd, frameworkResult.value);
21
- (0, steps_1.configureProject)(cwd, base, name, frameworkResult);
29
+ const sliceLibPath = lib
30
+ ? await (0, steps_1.installLib)(tracker, cwd, lib, branch)
31
+ : undefined;
32
+ (0, steps_1.configureProject)(cwd, base, name, frameworkResult, sliceLibPath, isTrackingAvailable);
22
33
  (0, steps_1.displayFinalMessage)(cwd);
23
34
  }
24
35
  try {
@@ -30,4 +41,4 @@ catch (error) {
30
41
  else
31
42
  console.error(error);
32
43
  }
33
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBRUEsNkNBQXVEO0FBQ3ZELG1DQVNpQjtBQUNqQixtQ0FBdUM7QUFFdkMsS0FBSyxVQUFVLElBQUk7SUFDakIsTUFBTSxHQUFHLEdBQUcsSUFBQSxvQkFBWSxFQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLElBQUksT0FBTyxDQUFDLEdBQUcsRUFBRSxDQUFDO0lBQy9ELE1BQU0sSUFBSSxHQUFHLENBQUMsSUFBQSxvQkFBWSxFQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDO1FBQzlDLFlBQUssQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUF5QixDQUFDO0lBRXJELE9BQU8sQ0FBQyxHQUFHLENBQ1QsWUFBSyxDQUFDLE1BQU0sQ0FDVixvRUFBb0UsQ0FDckUsQ0FDRixDQUFDO0lBR0YsSUFBQSxtQkFBVyxFQUFDLEdBQUcsQ0FBQyxDQUFDO0lBR2pCLE1BQU0sSUFBQSxxQkFBYSxFQUFDLElBQUksQ0FBQyxDQUFDO0lBRzFCLE1BQU0sTUFBTSxHQUFHLGlCQUFVLENBQUMscUJBQXFCLEVBQUUsQ0FBQztJQUdsRCxNQUFNLGVBQWUsR0FBRyxNQUFNLElBQUEsdUJBQWUsRUFBQyxHQUFHLENBQUMsQ0FBQztJQUduRCxNQUFNLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxHQUFHLE1BQU0sSUFBQSx5QkFBaUIsRUFDaEQsTUFBTSxDQUFDLE9BQU8sRUFDZCxHQUFHLEVBQ0gsTUFBTSxDQUFDLElBQUksQ0FDWixDQUFDO0lBRUYsSUFBSSxDQUFDLFFBQVEsRUFBRTtRQUNiLE1BQU0sSUFBQSx3QkFBZ0IsRUFBQyxJQUFJLEVBQUUsZUFBZSxDQUFDLEtBQUssRUFBRSxNQUFNLENBQUMsQ0FBQztLQUM3RDtJQUdELE1BQU0sSUFBQSxtQ0FBMkIsRUFBQyxHQUFHLEVBQUUsZUFBZSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBRzlELElBQUEsd0JBQWdCLEVBQUMsR0FBRyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsZUFBZSxDQUFDLENBQUM7SUFHbkQsSUFBQSwyQkFBbUIsRUFBQyxHQUFHLENBQUMsQ0FBQztBQUMzQixDQUFDO0FBRUQsSUFBSTtJQUNGLEtBQUssSUFBSSxFQUFFLENBQUM7Q0FDYjtBQUFDLE9BQU8sS0FBSyxFQUFFO0lBQ2QsSUFBSSxLQUFLLFlBQVksS0FBSztRQUFFLFlBQUssQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDOztRQUN2RCxPQUFPLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO0NBQzNCIn0=
44
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBRUEsNkNBQXVEO0FBQ3ZELDZDQUEwQztBQUMxQyxtQ0FVaUI7QUFDakIsbUNBQXVDO0FBRXZDLEtBQUssVUFBVSxJQUFJO0lBQ2pCLE1BQU0sR0FBRyxHQUFHLElBQUEsb0JBQVksRUFBQyxPQUFPLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxJQUFJLE9BQU8sQ0FBQyxHQUFHLEVBQUUsQ0FBQztJQUMvRCxNQUFNLElBQUksR0FBRyxJQUFBLG9CQUFZLEVBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsSUFBSSxZQUFLLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQztJQUM3RSxNQUFNLEdBQUcsR0FBdUIsSUFBQSxvQkFBWSxFQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsU0FBUyxDQUFDLENBQUM7SUFDdEUsTUFBTSxNQUFNLEdBQXVCLElBQUEsb0JBQVksRUFBQyxPQUFPLENBQUMsSUFBSSxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQ3hFLE1BQU0sbUJBQW1CLEdBQ3ZCLElBQUEsb0JBQVksRUFBQyxPQUFPLENBQUMsSUFBSSxFQUFFLFVBQVUsQ0FBQyxLQUFLLE9BQU8sQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7SUFFcEUsT0FBTyxDQUFDLEdBQUcsQ0FDVCxZQUFLLENBQUMsTUFBTSxDQUNWLG9FQUFvRSxDQUNyRSxDQUNGLENBQUM7SUFHRixJQUFBLG1CQUFXLEVBQUMsR0FBRyxDQUFDLENBQUM7SUFHakIsTUFBTSxJQUFJLEdBQUcsTUFBTSxJQUFBLHFCQUFhLEVBQUMsSUFBSSxDQUFDLENBQUM7SUFDdkMsSUFBSSxDQUFDLElBQUk7UUFBRSxNQUFNLElBQUksS0FBSyxDQUFDLCtCQUErQixDQUFDLENBQUM7SUFHNUQsTUFBTSxNQUFNLEdBQUcsaUJBQVUsQ0FBQywwQkFBMEIsQ0FBQyxHQUFHLEVBQUUsQ0FBQztJQUczRCxNQUFNLGVBQWUsR0FBRyxNQUFNLElBQUEsdUJBQWUsRUFBQyxHQUFHLENBQUMsQ0FBQztJQUduRCxNQUFNLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxHQUFHLE1BQU0sSUFBQSx5QkFBaUIsRUFDaEQsTUFBTSxDQUFDLE9BQU8sRUFDZCxHQUFHLEVBQ0gsTUFBTSxDQUFDLElBQUksQ0FDWixDQUFDO0lBRUYsSUFBSSxDQUFDLFFBQVEsRUFBRTtRQUNiLE1BQU0sSUFBQSx3QkFBZ0IsRUFBQyxJQUFJLEVBQUUsZUFBZSxDQUFDLEtBQUssRUFBRSxNQUFNLENBQUMsQ0FBQztLQUM3RDtJQUVELE1BQU0sT0FBTyxHQUFHLGlCQUFPLENBQUMsS0FBSyxDQUMzQixrQ0FBa0MsRUFDbEMsSUFBSSxFQUNKO1FBQ0UsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNO0tBQ3BCLEVBQ0QsbUJBQW1CLENBQ3BCLENBQUM7SUFHRixNQUFNLElBQUEsbUNBQTJCLEVBQUMsR0FBRyxFQUFFLGVBQWUsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUU5RCxNQUFNLFlBQVksR0FBRyxHQUFHO1FBQ3RCLENBQUMsQ0FBQyxNQUFNLElBQUEsa0JBQVUsRUFBQyxPQUFPLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxNQUFNLENBQUM7UUFDN0MsQ0FBQyxDQUFDLFNBQVMsQ0FBQztJQUdkLElBQUEsd0JBQWdCLEVBQ2QsR0FBRyxFQUNILElBQUksRUFDSixJQUFJLEVBQ0osZUFBZSxFQUNmLFlBQVksRUFDWixtQkFBbUIsQ0FDcEIsQ0FBQztJQUdGLElBQUEsMkJBQW1CLEVBQUMsR0FBRyxDQUFDLENBQUM7QUFDM0IsQ0FBQztBQUVELElBQUk7SUFDRixLQUFLLElBQUksRUFBRSxDQUFDO0NBQ2I7QUFBQyxPQUFPLEtBQUssRUFBRTtJQUNkLElBQUksS0FBSyxZQUFZLEtBQUs7UUFBRSxZQUFLLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQzs7UUFDdkQsT0FBTyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztDQUMzQiJ9
@@ -2,7 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.configureProject = void 0;
4
4
  const core_1 = require("@slicemachine/core");
5
- function configureProject(cwd, base, repository, framework) {
5
+ function configureProject(cwd, base, repository, framework, sliceLibPath = [], tracking = true) {
6
6
  const spinner = core_1.Utils.spinner(`Configuring your ${framework.value} & Prismic project...`);
7
7
  spinner.start();
8
8
  try {
@@ -10,13 +10,19 @@ function configureProject(cwd, base, repository, framework) {
10
10
  const manifestUpdated = {
11
11
  ...(manifest.exists && manifest.content ? manifest.content : {}),
12
12
  apiEndpoint: core_1.Utils.Endpoints.buildRepositoryEndpoint(base, repository),
13
- libraries: ["@/slices"],
13
+ libraries: ["@/slices", ...sliceLibPath],
14
14
  ...(framework.manuallyAdded ? { framework: framework.value } : {}),
15
+ ...(!tracking ? { tracking } : {}),
15
16
  };
16
17
  if (!manifest.exists)
17
18
  core_1.FileSystem.createManifest(cwd, manifestUpdated);
18
19
  else
19
20
  core_1.FileSystem.patchManifest(cwd, manifestUpdated);
21
+ const pathToSlicesFolder = core_1.FileSystem.CustomPaths(cwd)
22
+ .library("slices")
23
+ .value();
24
+ if (!core_1.Utils.Files.exists(pathToSlicesFolder))
25
+ core_1.Utils.Files.mkdir(pathToSlicesFolder, { recursive: true });
20
26
  core_1.FileSystem.addJsonPackageSmScript(cwd);
21
27
  spinner.succeed("Project configured! Ready to start");
22
28
  }
@@ -26,4 +32,4 @@ function configureProject(cwd, base, repository, framework) {
26
32
  }
27
33
  }
28
34
  exports.configureProject = configureProject;
29
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlndXJlLXByb2plY3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvc3RlcHMvY29uZmlndXJlLXByb2plY3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsNkNBQXVEO0FBS3ZELFNBQWdCLGdCQUFnQixDQUM5QixHQUFXLEVBQ1gsSUFBVSxFQUNWLFVBQWtCLEVBQ2xCLFNBQTBCO0lBRTFCLE1BQU0sT0FBTyxHQUFHLFlBQUssQ0FBQyxPQUFPLENBQzNCLG9CQUFvQixTQUFTLENBQUMsS0FBSyx1QkFBdUIsQ0FDM0QsQ0FBQztJQUNGLE9BQU8sQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUVoQixJQUFJO1FBQ0YsTUFBTSxRQUFRLEdBQUcsaUJBQVUsQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUVsRCxNQUFNLGVBQWUsR0FBd0I7WUFDM0MsR0FBRyxDQUFDLFFBQVEsQ0FBQyxNQUFNLElBQUksUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQ2hFLFdBQVcsRUFBRSxZQUFLLENBQUMsU0FBUyxDQUFDLHVCQUF1QixDQUFDLElBQUksRUFBRSxVQUFVLENBQUM7WUFDdEUsU0FBUyxFQUFFLENBQUMsVUFBVSxDQUFDO1lBQ3ZCLEdBQUcsQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxFQUFFLFNBQVMsRUFBRSxTQUFTLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztTQUNuRSxDQUFDO1FBRUYsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNO1lBQUUsaUJBQVUsQ0FBQyxjQUFjLENBQUMsR0FBRyxFQUFFLGVBQWUsQ0FBQyxDQUFDOztZQUNqRSxpQkFBVSxDQUFDLGFBQWEsQ0FBQyxHQUFHLEVBQUUsZUFBZSxDQUFDLENBQUM7UUFFcEQsaUJBQVUsQ0FBQyxzQkFBc0IsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUV2QyxPQUFPLENBQUMsT0FBTyxDQUFDLG9DQUFvQyxDQUFDLENBQUM7S0FDdkQ7SUFBQyxNQUFNO1FBQ04sT0FBTyxDQUFDLElBQUksQ0FBQyxnREFBZ0QsQ0FBQyxDQUFDO1FBQy9ELE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztLQUNsQjtBQUNILENBQUM7QUEvQkQsNENBK0JDIn0=
35
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlndXJlLXByb2plY3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvc3RlcHMvY29uZmlndXJlLXByb2plY3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsNkNBQXVEO0FBTXZELFNBQWdCLGdCQUFnQixDQUM5QixHQUFXLEVBQ1gsSUFBVSxFQUNWLFVBQWtCLEVBQ2xCLFNBQTBCLEVBQzFCLGVBQXlCLEVBQUUsRUFDM0IsUUFBUSxHQUFHLElBQUk7SUFFZixNQUFNLE9BQU8sR0FBRyxZQUFLLENBQUMsT0FBTyxDQUMzQixvQkFBb0IsU0FBUyxDQUFDLEtBQUssdUJBQXVCLENBQzNELENBQUM7SUFDRixPQUFPLENBQUMsS0FBSyxFQUFFLENBQUM7SUFFaEIsSUFBSTtRQUNGLE1BQU0sUUFBUSxHQUFHLGlCQUFVLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLENBQUM7UUFFbEQsTUFBTSxlQUFlLEdBQW9CO1lBQ3ZDLEdBQUcsQ0FBQyxRQUFRLENBQUMsTUFBTSxJQUFJLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztZQUNoRSxXQUFXLEVBQUUsWUFBSyxDQUFDLFNBQVMsQ0FBQyx1QkFBdUIsQ0FBQyxJQUFJLEVBQUUsVUFBVSxDQUFDO1lBQ3RFLFNBQVMsRUFBRSxDQUFDLFVBQVUsRUFBRSxHQUFHLFlBQVksQ0FBQztZQUN4QyxHQUFHLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsRUFBRSxTQUFTLEVBQUUsU0FBUyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDbEUsR0FBRyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7U0FDbkMsQ0FBQztRQUVGLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTTtZQUFFLGlCQUFVLENBQUMsY0FBYyxDQUFDLEdBQUcsRUFBRSxlQUFlLENBQUMsQ0FBQzs7WUFDakUsaUJBQVUsQ0FBQyxhQUFhLENBQUMsR0FBRyxFQUFFLGVBQWUsQ0FBQyxDQUFDO1FBR3BELE1BQU0sa0JBQWtCLEdBQUcsaUJBQVUsQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDO2FBQ25ELE9BQU8sQ0FBQyxRQUFRLENBQUM7YUFDakIsS0FBSyxFQUFFLENBQUM7UUFDWCxJQUFJLENBQUMsWUFBSyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsa0JBQWtCLENBQUM7WUFDekMsWUFBSyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsa0JBQWtCLEVBQUUsRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUc3RCxpQkFBVSxDQUFDLHNCQUFzQixDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBRXZDLE9BQU8sQ0FBQyxPQUFPLENBQUMsb0NBQW9DLENBQUMsQ0FBQztLQUN2RDtJQUFDLE1BQU07UUFDTixPQUFPLENBQUMsSUFBSSxDQUFDLGdEQUFnRCxDQUFDLENBQUM7UUFDL0QsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0tBQ2xCO0FBQ0gsQ0FBQztBQTFDRCw0Q0EwQ0MifQ==
@@ -23,4 +23,4 @@ function createRepository(domain, framework, config) {
23
23
  });
24
24
  }
25
25
  exports.createRepository = createRepository;
26
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLXJlcG8uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvc3RlcHMvY3JlYXRlLXJlcG8udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsNkNBQXNFO0FBRXRFLFNBQWdCLGdCQUFnQixDQUM5QixNQUFjLEVBQ2QsU0FBd0MsRUFDeEMsTUFBNkI7SUFFN0IsTUFBTSxPQUFPLEdBQUcsWUFBSyxDQUFDLE9BQU8sQ0FBQyw2QkFBNkIsQ0FBQyxDQUFDO0lBQzdELE9BQU8sQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUVoQixPQUFPLG9CQUFhLENBQUMsZ0JBQWdCLENBQ25DLE1BQU0sRUFDTixNQUFNLENBQUMsT0FBTyxFQUNkLFNBQVMsRUFDVCxNQUFNLENBQUMsSUFBSSxDQUNaO1NBQ0UsSUFBSSxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUU7UUFDWixNQUFNLFVBQVUsR0FBRyxJQUFJLEdBQUcsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDeEMsVUFBVSxDQUFDLFFBQVEsR0FBRyxHQUFHLEdBQUcsQ0FBQyxJQUFJLENBQUMsTUFBTSxJQUFJLE1BQU0sSUFDaEQsVUFBVSxDQUFDLFFBQ2IsRUFBRSxDQUFDO1FBQ0gsTUFBTSxPQUFPLEdBQUcsVUFBVSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ3RDLE9BQU8sQ0FBQyxPQUFPLENBQUMsa0NBQWtDLE9BQU8sRUFBRSxDQUFDLENBQUM7SUFDL0QsQ0FBQyxDQUFDO1NBQ0QsS0FBSyxDQUFDLENBQUMsS0FBWSxFQUFFLEVBQUU7UUFDdEIsT0FBTyxDQUFDLElBQUksQ0FBQyw2QkFBNkIsTUFBTSxFQUFFLENBQUMsQ0FBQztRQUNwRCxJQUFJLEtBQUssQ0FBQyxPQUFPLEVBQUU7WUFDakIsWUFBSyxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7U0FDakM7UUFDRCxZQUFLLENBQUMsVUFBVSxDQUFDLGdEQUFnRCxDQUFDLENBQUM7UUFDbkUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxPQUFPLFlBQUssQ0FBQyxJQUFJLENBQUMsdUJBQXVCLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDakUsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ25CLENBQUMsQ0FBQyxDQUFDO0FBQ1AsQ0FBQztBQS9CRCw0Q0ErQkMifQ==
26
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLXJlcG8uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvc3RlcHMvY3JlYXRlLXJlcG8udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsNkNBQTBEO0FBRzFELFNBQWdCLGdCQUFnQixDQUM5QixNQUFjLEVBQ2QsU0FBNEIsRUFDNUIsTUFBa0M7SUFFbEMsTUFBTSxPQUFPLEdBQUcsWUFBSyxDQUFDLE9BQU8sQ0FBQyw2QkFBNkIsQ0FBQyxDQUFDO0lBQzdELE9BQU8sQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUVoQixPQUFPLG9CQUFhLENBQUMsZ0JBQWdCLENBQ25DLE1BQU0sRUFDTixNQUFNLENBQUMsT0FBTyxFQUNkLFNBQVMsRUFDVCxNQUFNLENBQUMsSUFBSSxDQUNaO1NBQ0UsSUFBSSxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUU7UUFDWixNQUFNLFVBQVUsR0FBRyxJQUFJLEdBQUcsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDeEMsVUFBVSxDQUFDLFFBQVEsR0FBRyxHQUFHLEdBQUcsQ0FBQyxJQUFJLENBQUMsTUFBTSxJQUFJLE1BQU0sSUFDaEQsVUFBVSxDQUFDLFFBQ2IsRUFBRSxDQUFDO1FBQ0gsTUFBTSxPQUFPLEdBQUcsVUFBVSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ3RDLE9BQU8sQ0FBQyxPQUFPLENBQUMsa0NBQWtDLE9BQU8sRUFBRSxDQUFDLENBQUM7SUFDL0QsQ0FBQyxDQUFDO1NBQ0QsS0FBSyxDQUFDLENBQUMsS0FBWSxFQUFFLEVBQUU7UUFDdEIsT0FBTyxDQUFDLElBQUksQ0FBQyw2QkFBNkIsTUFBTSxFQUFFLENBQUMsQ0FBQztRQUNwRCxJQUFJLEtBQUssQ0FBQyxPQUFPLEVBQUU7WUFDakIsWUFBSyxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7U0FDakM7UUFDRCxZQUFLLENBQUMsVUFBVSxDQUFDLGdEQUFnRCxDQUFDLENBQUM7UUFDbkUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxPQUFPLFlBQUssQ0FBQyxJQUFJLENBQUMsdUJBQXVCLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDakUsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ25CLENBQUMsQ0FBQyxDQUFDO0FBQ1AsQ0FBQztBQS9CRCw0Q0ErQkMifQ==
@@ -21,9 +21,10 @@ var __importStar = (this && this.__importStar) || function (mod) {
21
21
  Object.defineProperty(exports, "__esModule", { value: true });
22
22
  exports.detectFramework = exports.promptForFramework = void 0;
23
23
  const core_1 = require("@slicemachine/core");
24
+ const core_2 = require("@slicemachine/core");
24
25
  const inquirer = __importStar(require("inquirer"));
25
26
  async function promptForFramework() {
26
- const choices = core_1.Utils.Framework.SupportedFrameworks.map((framework) => {
27
+ const choices = core_2.Models.SupportedFrameworks.map((framework) => {
27
28
  return {
28
29
  name: core_1.Utils.Framework.fancyName(framework),
29
30
  value: framework,
@@ -52,10 +53,9 @@ async function detectFramework(cwd) {
52
53
  const spinner = core_1.Utils.spinner("Detecting framework to install correct dependencies");
53
54
  spinner.start();
54
55
  try {
55
- const maybeFramework = core_1.Utils.Framework.detectFramework(cwd);
56
+ const maybeFramework = core_1.Utils.Framework.detectFramework(cwd, Object.values(core_2.Models.Frameworks));
56
57
  spinner.stop();
57
- if (!maybeFramework ||
58
- maybeFramework === core_1.Utils.Framework.FrameworkEnum.vanillajs) {
58
+ if (!maybeFramework || maybeFramework === core_2.Models.Frameworks.vanillajs) {
59
59
  core_1.Utils.writeError("Framework not detected");
60
60
  return await promptForFramework();
61
61
  }
@@ -83,4 +83,4 @@ async function detectFramework(cwd) {
83
83
  }
84
84
  }
85
85
  exports.detectFramework = detectFramework;
86
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGV0ZWN0LWZyYW1ld29yay5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zdGVwcy9kZXRlY3QtZnJhbWV3b3JrLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSw2Q0FBMkM7QUFDM0MsbURBQXFDO0FBTzlCLEtBQUssVUFBVSxrQkFBa0I7SUFDdEMsTUFBTSxPQUFPLEdBQUcsWUFBSyxDQUFDLFNBQVMsQ0FBQyxtQkFBbUIsQ0FBQyxHQUFHLENBQUMsQ0FBQyxTQUFTLEVBQUUsRUFBRTtRQUNwRSxPQUFPO1lBQ0wsSUFBSSxFQUFFLFlBQUssQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQztZQUMxQyxLQUFLLEVBQUUsU0FBUztTQUNqQixDQUFDO0lBQ0osQ0FBQyxDQUFDLENBQUM7SUFFSCxPQUFPLFFBQVE7U0FDWixNQUFNLENBQStDO1FBQ3BEO1lBQ0UsSUFBSSxFQUFFLFdBQVc7WUFDakIsSUFBSSxFQUFFLE1BQU07WUFDWixPQUFPLEVBQUUsMkJBQTJCO1lBQ3BDLFFBQVEsRUFBRSxJQUFJO1lBQ2QsT0FBTztTQUNSO0tBQ0YsQ0FBQztTQUNELElBQUksQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFO1FBQ1osT0FBTztZQUNMLEtBQUssRUFBRSxHQUFHLENBQUMsU0FBUztZQUNwQixhQUFhLEVBQUUsSUFBSTtTQUNwQixDQUFDO0lBQ0osQ0FBQyxDQUFDLENBQUM7QUFDUCxDQUFDO0FBeEJELGdEQXdCQztBQUVNLEtBQUssVUFBVSxlQUFlLENBQUMsR0FBVztJQUMvQyxNQUFNLFdBQVcsR0FBRyxjQUFjLFlBQUssQ0FBQyxJQUFJLENBQzFDLHVCQUF1QixDQUN4QiwrQkFBK0IsQ0FBQztJQUVqQyxNQUFNLE9BQU8sR0FBRyxZQUFLLENBQUMsT0FBTyxDQUMzQixxREFBcUQsQ0FDdEQsQ0FBQztJQUVGLE9BQU8sQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUVoQixJQUFJO1FBQ0YsTUFBTSxjQUFjLEdBQUcsWUFBSyxDQUFDLFNBQVMsQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDNUQsT0FBTyxDQUFDLElBQUksRUFBRSxDQUFDO1FBRWYsSUFDRSxDQUFDLGNBQWM7WUFDZixjQUFjLEtBQUssWUFBSyxDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUMsU0FBUyxFQUMxRDtZQUNBLFlBQUssQ0FBQyxVQUFVLENBQUMsd0JBQXdCLENBQUMsQ0FBQztZQUMzQyxPQUFPLE1BQU0sa0JBQWtCLEVBQUUsQ0FBQztTQUNuQztRQUVELE1BQU0sV0FBVyxHQUFHLFlBQUssQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBRTlELElBQUksWUFBSyxDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDLEVBQUU7WUFDakQsWUFBSyxDQUFDLFVBQVUsQ0FBQyxHQUFHLFdBQVcsNkJBQTZCLENBQUMsQ0FBQztZQUM5RCxPQUFPLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1lBQ3pCLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDakI7UUFFRCxZQUFLLENBQUMsVUFBVSxDQUFDLEdBQUcsV0FBVyxXQUFXLENBQUMsQ0FBQztRQUU1QyxPQUFPO1lBQ0wsS0FBSyxFQUFFLGNBQWM7WUFDckIsYUFBYSxFQUFFLEtBQUs7U0FDckIsQ0FBQztLQUNIO0lBQUMsT0FBTyxLQUFLLEVBQUU7UUFDZCxPQUFPLENBQUMsSUFBSSxDQUFDLHdCQUF3QixDQUFDLENBQUM7UUFFdkMsSUFBSSxLQUFLLFlBQVksS0FBSyxJQUFJLEtBQUssQ0FBQyxPQUFPLEVBQUU7WUFDM0MsWUFBSyxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7U0FDakM7YUFBTTtZQUNMLE9BQU8sQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLENBQUM7U0FDMUI7UUFFRCxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0tBQ2pCO0FBQ0gsQ0FBQztBQWhERCwwQ0FnREMifQ==
86
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGV0ZWN0LWZyYW1ld29yay5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zdGVwcy9kZXRlY3QtZnJhbWV3b3JrLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSw2Q0FBMkM7QUFDM0MsNkNBQTRDO0FBQzVDLG1EQUFxQztBQU85QixLQUFLLFVBQVUsa0JBQWtCO0lBQ3RDLE1BQU0sT0FBTyxHQUFHLGFBQU0sQ0FBQyxtQkFBbUIsQ0FBQyxHQUFHLENBQUMsQ0FBQyxTQUFTLEVBQUUsRUFBRTtRQUMzRCxPQUFPO1lBQ0wsSUFBSSxFQUFFLFlBQUssQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQztZQUMxQyxLQUFLLEVBQUUsU0FBUztTQUNqQixDQUFDO0lBQ0osQ0FBQyxDQUFDLENBQUM7SUFFSCxPQUFPLFFBQVE7U0FDWixNQUFNLENBQW1DO1FBQ3hDO1lBQ0UsSUFBSSxFQUFFLFdBQVc7WUFDakIsSUFBSSxFQUFFLE1BQU07WUFDWixPQUFPLEVBQUUsMkJBQTJCO1lBQ3BDLFFBQVEsRUFBRSxJQUFJO1lBQ2QsT0FBTztTQUNSO0tBQ0YsQ0FBQztTQUNELElBQUksQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFO1FBQ1osT0FBTztZQUNMLEtBQUssRUFBRSxHQUFHLENBQUMsU0FBUztZQUNwQixhQUFhLEVBQUUsSUFBSTtTQUNwQixDQUFDO0lBQ0osQ0FBQyxDQUFDLENBQUM7QUFDUCxDQUFDO0FBeEJELGdEQXdCQztBQUVNLEtBQUssVUFBVSxlQUFlLENBQUMsR0FBVztJQUMvQyxNQUFNLFdBQVcsR0FBRyxjQUFjLFlBQUssQ0FBQyxJQUFJLENBQzFDLHVCQUF1QixDQUN4QiwrQkFBK0IsQ0FBQztJQUVqQyxNQUFNLE9BQU8sR0FBRyxZQUFLLENBQUMsT0FBTyxDQUMzQixxREFBcUQsQ0FDdEQsQ0FBQztJQUVGLE9BQU8sQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUVoQixJQUFJO1FBQ0YsTUFBTSxjQUFjLEdBQUcsWUFBSyxDQUFDLFNBQVMsQ0FBQyxlQUFlLENBQ3BELEdBQUcsRUFDSCxNQUFNLENBQUMsTUFBTSxDQUFDLGFBQU0sQ0FBQyxVQUFVLENBQUMsQ0FDakMsQ0FBQztRQUNGLE9BQU8sQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUVmLElBQUksQ0FBQyxjQUFjLElBQUksY0FBYyxLQUFLLGFBQU0sQ0FBQyxVQUFVLENBQUMsU0FBUyxFQUFFO1lBQ3JFLFlBQUssQ0FBQyxVQUFVLENBQUMsd0JBQXdCLENBQUMsQ0FBQztZQUMzQyxPQUFPLE1BQU0sa0JBQWtCLEVBQUUsQ0FBQztTQUNuQztRQUVELE1BQU0sV0FBVyxHQUFHLFlBQUssQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBRTlELElBQUksWUFBSyxDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDLEVBQUU7WUFDakQsWUFBSyxDQUFDLFVBQVUsQ0FBQyxHQUFHLFdBQVcsNkJBQTZCLENBQUMsQ0FBQztZQUM5RCxPQUFPLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1lBQ3pCLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDakI7UUFFRCxZQUFLLENBQUMsVUFBVSxDQUFDLEdBQUcsV0FBVyxXQUFXLENBQUMsQ0FBQztRQUU1QyxPQUFPO1lBQ0wsS0FBSyxFQUFFLGNBQWM7WUFDckIsYUFBYSxFQUFFLEtBQUs7U0FDckIsQ0FBQztLQUNIO0lBQUMsT0FBTyxLQUFLLEVBQUU7UUFDZCxPQUFPLENBQUMsSUFBSSxDQUFDLHdCQUF3QixDQUFDLENBQUM7UUFFdkMsSUFBSSxLQUFLLFlBQVksS0FBSyxJQUFJLEtBQUssQ0FBQyxPQUFPLEVBQUU7WUFDM0MsWUFBSyxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7U0FDakM7YUFBTTtZQUNMLE9BQU8sQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLENBQUM7U0FDMUI7UUFFRCxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0tBQ2pCO0FBQ0gsQ0FBQztBQWhERCwwQ0FnREMifQ==
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.displayFinalMessage = exports.configureProject = exports.loginOrBypass = exports.detectFramework = exports.createRepository = exports.maybeExistingRepo = exports.validatePkg = exports.installRequiredDependencies = void 0;
3
+ exports.installLib = exports.displayFinalMessage = exports.configureProject = exports.loginOrBypass = exports.detectFramework = exports.createRepository = exports.maybeExistingRepo = exports.validatePkg = exports.installRequiredDependencies = void 0;
4
4
  var install_required_dependencies_1 = require("./install-required-dependencies");
5
5
  Object.defineProperty(exports, "installRequiredDependencies", { enumerable: true, get: function () { return install_required_dependencies_1.installRequiredDependencies; } });
6
6
  var validate_pkg_1 = require("./validate-pkg");
@@ -17,4 +17,6 @@ var configure_project_1 = require("./configure-project");
17
17
  Object.defineProperty(exports, "configureProject", { enumerable: true, get: function () { return configure_project_1.configureProject; } });
18
18
  var display_final_message_1 = require("./display-final-message");
19
19
  Object.defineProperty(exports, "displayFinalMessage", { enumerable: true, get: function () { return display_final_message_1.displayFinalMessage; } });
20
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvc3RlcHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsaUZBQThFO0FBQXJFLDRJQUFBLDJCQUEyQixPQUFBO0FBQ3BDLCtDQUE2QztBQUFwQywyR0FBQSxXQUFXLE9BQUE7QUFDcEIsNkRBQTBEO0FBQWpELHdIQUFBLGlCQUFpQixPQUFBO0FBQzFCLDZDQUFpRDtBQUF4QywrR0FBQSxnQkFBZ0IsT0FBQTtBQUN6Qix1REFBcUQ7QUFBNUMsbUhBQUEsZUFBZSxPQUFBO0FBQ3hCLGlEQUFnRDtBQUF2Qyw4R0FBQSxhQUFhLE9BQUE7QUFDdEIseURBQXVEO0FBQTlDLHFIQUFBLGdCQUFnQixPQUFBO0FBQ3pCLGlFQUE4RDtBQUFyRCw0SEFBQSxtQkFBbUIsT0FBQSJ9
20
+ var install_lib_1 = require("./install-lib");
21
+ Object.defineProperty(exports, "installLib", { enumerable: true, get: function () { return install_lib_1.installLib; } });
22
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvc3RlcHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsaUZBQThFO0FBQXJFLDRJQUFBLDJCQUEyQixPQUFBO0FBQ3BDLCtDQUE2QztBQUFwQywyR0FBQSxXQUFXLE9BQUE7QUFDcEIsNkRBQTBEO0FBQWpELHdIQUFBLGlCQUFpQixPQUFBO0FBQzFCLDZDQUFpRDtBQUF4QywrR0FBQSxnQkFBZ0IsT0FBQTtBQUN6Qix1REFBcUQ7QUFBNUMsbUhBQUEsZUFBZSxPQUFBO0FBQ3hCLGlEQUFnRDtBQUF2Qyw4R0FBQSxhQUFhLE9BQUE7QUFDdEIseURBQXVEO0FBQTlDLHFIQUFBLGdCQUFnQixPQUFBO0FBQ3pCLGlFQUE4RDtBQUFyRCw0SEFBQSxtQkFBbUIsT0FBQTtBQUM1Qiw2Q0FBMkM7QUFBbEMseUdBQUEsVUFBVSxPQUFBIn0=
@@ -0,0 +1,81 @@
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.installLib = void 0;
7
+ const core_1 = require("@slicemachine/core");
8
+ const tmp_1 = __importDefault(require("tmp"));
9
+ const adm_zip_1 = __importDefault(require("adm-zip"));
10
+ const fs_extra_1 = __importDefault(require("fs-extra"));
11
+ const axios_1 = __importDefault(require("axios"));
12
+ const fs_1 = __importDefault(require("fs"));
13
+ const path_1 = __importDefault(require("path"));
14
+ const Either_1 = require("fp-ts/Either");
15
+ const PackageManager_1 = require("../utils/PackageManager");
16
+ const PackageJson_1 = require("@slicemachine/core/build/src/utils/PackageJson");
17
+ const Manifest_1 = require("@slicemachine/core/build/src/models/Manifest");
18
+ const files_1 = __importDefault(require("@slicemachine/core/build/src/utils/files"));
19
+ const downloadFile = async (reqUrl) => {
20
+ const res = await (0, axios_1.default)({
21
+ method: "GET",
22
+ url: reqUrl,
23
+ responseType: "arraybuffer",
24
+ });
25
+ return new Promise((resolve, reject) => {
26
+ if (res.status == 200) {
27
+ const tmpZipFile = tmp_1.default.tmpNameSync();
28
+ const zip = new adm_zip_1.default(res.data);
29
+ zip.extractAllTo(tmpZipFile);
30
+ resolve(tmpZipFile);
31
+ }
32
+ else {
33
+ reject();
34
+ }
35
+ });
36
+ };
37
+ async function installLib(tracker, cwd, libGithubPath, branch = "main") {
38
+ const spinner = core_1.Utils.spinner(`Installing the ${libGithubPath} lib in your project...`);
39
+ try {
40
+ spinner.start();
41
+ const [githubUserName, githubProjectName] = libGithubPath.split("/");
42
+ const source = `https://codeload.github.com/${libGithubPath}/zip/${branch}`;
43
+ const zipFilePath = await downloadFile(source);
44
+ const outputFolder = `${githubProjectName}-${branch}`;
45
+ const projectPath = path_1.default.join(zipFilePath, outputFolder);
46
+ const name = `${githubUserName}-${githubProjectName}`;
47
+ const libDestinationFolder = path_1.default.join(cwd, name);
48
+ if (fs_1.default.existsSync(libDestinationFolder)) {
49
+ spinner.succeed(`Lib "${libGithubPath}" was already installed (skipped)`);
50
+ return;
51
+ }
52
+ fs_extra_1.default.moveSync(path_1.default.join(projectPath, "src"), libDestinationFolder);
53
+ const pkgManager = PackageManager_1.PackageManager.get(cwd);
54
+ const pkgJson = PackageJson_1.PackageJsonHelper.fromPath(path_1.default.join(projectPath, "package.json"));
55
+ if (pkgJson instanceof Error)
56
+ throw pkgJson;
57
+ const dependencies = PackageManager_1.Dependencies.fromPkgFormat(pkgJson.dependencies);
58
+ if (dependencies)
59
+ await pkgManager.install(dependencies);
60
+ files_1.default.write(path_1.default.join(libDestinationFolder, "meta.json"), {
61
+ name: pkgJson.name,
62
+ });
63
+ const manifest = files_1.default.readEntity(path_1.default.join(projectPath, "sm.json"), (payload) => {
64
+ return (0, Either_1.getOrElseW)(() => new Error(`Unable to parse sm.json from lib ${libGithubPath}`))(Manifest_1.Manifest.decode(payload));
65
+ });
66
+ if (manifest instanceof Error)
67
+ throw manifest;
68
+ const localLibs = Manifest_1.ManifestHelper.localLibraries(manifest).map(({ path }) => {
69
+ return `~/${name}/${path.replace("src/", "")}`;
70
+ });
71
+ spinner.succeed(`Slice library "${libGithubPath}" was installed successfully`);
72
+ tracker === null || tracker === void 0 ? void 0 : tracker.Track.downloadLibrary(libGithubPath);
73
+ return localLibs;
74
+ }
75
+ catch {
76
+ spinner.fail(`Error installing ${libGithubPath} lib!`);
77
+ process.exit(-1);
78
+ }
79
+ }
80
+ exports.installLib = installLib;
81
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5zdGFsbC1saWIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvc3RlcHMvaW5zdGFsbC1saWIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsNkNBQTJDO0FBQzNDLDhDQUFzQjtBQUN0QixzREFBNkI7QUFDN0Isd0RBQStCO0FBQy9CLGtEQUEwQjtBQUUxQiw0Q0FBb0I7QUFDcEIsZ0RBQXdCO0FBQ3hCLHlDQUEwQztBQUMxQyw0REFBdUU7QUFDdkUsZ0ZBQW1GO0FBQ25GLDJFQUdzRDtBQUN0RCxxRkFBNkQ7QUFHN0QsTUFBTSxZQUFZLEdBQUcsS0FBSyxFQUFFLE1BQWMsRUFBbUIsRUFBRTtJQUM3RCxNQUFNLEdBQUcsR0FBRyxNQUFNLElBQUEsZUFBSyxFQUFDO1FBQ3RCLE1BQU0sRUFBRSxLQUFLO1FBQ2IsR0FBRyxFQUFFLE1BQU07UUFDWCxZQUFZLEVBQUUsYUFBYTtLQUM1QixDQUFDLENBQUM7SUFFSCxPQUFPLElBQUksT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxFQUFFO1FBQ3JDLElBQUksR0FBRyxDQUFDLE1BQU0sSUFBSSxHQUFHLEVBQUU7WUFDckIsTUFBTSxVQUFVLEdBQUcsYUFBRyxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ3JDLE1BQU0sR0FBRyxHQUFHLElBQUksaUJBQU0sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDakMsR0FBRyxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUM3QixPQUFPLENBQUMsVUFBVSxDQUFDLENBQUM7U0FDckI7YUFBTTtZQUNMLE1BQU0sRUFBRSxDQUFDO1NBQ1Y7SUFDSCxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQztBQUVLLEtBQUssVUFBVSxVQUFVLENBQzlCLE9BQTRCLEVBQzVCLEdBQVcsRUFDWCxhQUFxQixFQUNyQixTQUE2QixNQUFNO0lBRW5DLE1BQU0sT0FBTyxHQUFHLFlBQUssQ0FBQyxPQUFP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
@@ -7,15 +7,19 @@ exports.installRequiredDependencies = void 0;
7
7
  const path_1 = __importDefault(require("path"));
8
8
  const utils_1 = require("../utils");
9
9
  const core_1 = require("@slicemachine/core");
10
- const { PRISMIC_CLIENT, PRISMIC_DOM_PACKAGE_NAME, PRISMIC_REACT_PACKAGE_NAME, NEXT_SLICEZONE, SM_PACKAGE_NAME, } = core_1.Utils.CONSTS;
10
+ const { PRISMIC_CLIENT, PRISMIC_DOM_PACKAGE_NAME, PRISMIC_REACT_PACKAGE_NAME, NEXT_SLICEZONE, SM_PACKAGE_NAME, NUXT_PRISMIC, NUXT_SM, VUE_SLICEZONE, PRISMIC_VUE, SLICE_CANVAS_REACT, SLICE_CANVAS_VUE, } = core_1.Utils.CONSTS;
11
11
  function depsForFramework(framework) {
12
12
  switch (framework) {
13
- case core_1.Utils.Framework.FrameworkEnum.react:
13
+ case core_1.Models.Frameworks.react:
14
14
  return `${PRISMIC_REACT_PACKAGE_NAME} ${PRISMIC_CLIENT}`;
15
- case core_1.Utils.Framework.FrameworkEnum.next:
16
- return `${PRISMIC_REACT_PACKAGE_NAME} ${PRISMIC_CLIENT} ${NEXT_SLICEZONE}`;
17
- case core_1.Utils.Framework.FrameworkEnum.svelte:
15
+ case core_1.Models.Frameworks.next:
16
+ return `${PRISMIC_REACT_PACKAGE_NAME} ${PRISMIC_CLIENT} ${NEXT_SLICEZONE} ${SLICE_CANVAS_REACT}`;
17
+ case core_1.Models.Frameworks.svelte:
18
18
  return `${PRISMIC_DOM_PACKAGE_NAME} ${PRISMIC_CLIENT}`;
19
+ case core_1.Models.Frameworks.nuxt:
20
+ return `${NUXT_PRISMIC} ${NUXT_SM} ${VUE_SLICEZONE} ${SLICE_CANVAS_VUE}`;
21
+ case core_1.Models.Frameworks.vue:
22
+ return `${PRISMIC_VUE} ${PRISMIC_CLIENT} ${PRISMIC_DOM_PACKAGE_NAME} ${VUE_SLICEZONE}`;
19
23
  default:
20
24
  return "";
21
25
  }
@@ -42,4 +46,4 @@ async function installRequiredDependencies(cwd, framework) {
42
46
  core_1.Utils.writeWarning(`could not install ${SM_PACKAGE_NAME}. Please do it manually!`);
43
47
  }
44
48
  exports.installRequiredDependencies = installRequiredDependencies;
45
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5zdGFsbC1yZXF1aXJlZC1kZXBlbmRlbmNpZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvc3RlcHMvaW5zdGFsbC1yZXF1aXJlZC1kZXBlbmRlbmNpZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsZ0RBQXdCO0FBQ3hCLG9DQUF1QztBQUN2Qyw2Q0FBdUQ7QUFFdkQsTUFBTSxFQUNKLGNBQWMsRUFDZCx3QkFBd0IsRUFDeEIsMEJBQTBCLEVBQzFCLGNBQWMsRUFDZCxlQUFlLEdBQ2hCLEdBQUcsWUFBSyxDQUFDLE1BQU0sQ0FBQztBQUVqQixTQUFTLGdCQUFnQixDQUFDLFNBQXdDO0lBQ2hFLFFBQVEsU0FBUyxFQUFFO1FBQ2pCLEtBQUssWUFBSyxDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUMsS0FBSztZQUN0QyxPQUFPLEdBQUcsMEJBQTBCLElBQUksY0FBYyxFQUFFLENBQUM7UUFDM0QsS0FBSyxZQUFLLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxJQUFJO1lBQ3JDLE9BQU8sR0FBRywwQkFBMEIsSUFBSSxjQUFjLElBQUksY0FBYyxFQUFFLENBQUM7UUFDN0UsS0FBSyxZQUFLLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxNQUFNO1lBQ3ZDLE9BQU8sR0FBRyx3QkFBd0IsSUFBSSxjQUFjLEVBQUUsQ0FBQztRQUN6RDtZQUNFLE9BQU8sRUFBRSxDQUFDO0tBQ2I7QUFDSCxDQUFDO0FBRU0sS0FBSyxVQUFVLDJCQUEyQixDQUMvQyxHQUFXLEVBQ1gsU0FBd0M7SUFFeEMsTUFBTSxRQUFRLEdBQUcsWUFBSyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsaUJBQVUsQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUNsRSxNQUFNLDJCQUEyQixHQUFHLFFBQVE7UUFDMUMsQ0FBQyxDQUFDLGFBQWE7UUFDZixDQUFDLENBQUMsd0JBQXdCLENBQUM7SUFDN0IsTUFBTSx3QkFBd0IsR0FBRyxRQUFRLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsb0JBQW9CLENBQUM7SUFFOUUsTUFBTSxPQUFPLEdBQUcsWUFBSyxDQUFDLE9BQU8sQ0FBQyxvQ0FBb0MsQ0FBQyxDQUFDO0lBQ3BFLE9BQU8sQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUVoQixNQUFNLEVBQUUsTUFBTSxFQUFFLEdBQUcsTUFBTSxJQUFBLG1CQUFXLEVBQ2xDLEdBQUcsMkJBQTJCLElBQUksZUFBZSxFQUFFLENBQ3BELENBQUM7SUFFRixNQUFNLElBQUksR0FBRyxnQkFBZ0IsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUN6QyxJQUFJLElBQUk7UUFBRSxNQUFNLElBQUEsbUJBQVcsRUFBQyxHQUFHLHdCQUF3QixJQUFJLElBQUksRUFBRSxDQUFDLENBQUM7SUFFbkUsTUFBTSxTQUFTLEdBQUcsY0FBSSxDQUFDLElBQUksQ0FDekIsaUJBQVUsQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQ3BDLGVBQWUsQ0FDaEIsQ0FBQztJQUNGLE1BQU0sa0JBQWtCLEdBQUcsWUFBSyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUM7SUFFekQsSUFBSSxrQkFBa0IsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUU7UUFDeEMsT0FBTyxDQUFDLE9BQU8sQ0FBQyx1REFBdUQsQ0FBQyxDQUFDO1FBQ3pFLE9BQU87S0FDUjtJQUVELE9BQU8sQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNmLFlBQUssQ0FBQyxZQUFZLENBQ2hCLHFCQUFxQixlQUFlLDBCQUEwQixDQUMvRCxDQUFDO0FBQ0osQ0FBQztBQW5DRCxrRUFtQ0MifQ==
49
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5zdGFsbC1yZXF1aXJlZC1kZXBlbmRlbmNpZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvc3RlcHMvaW5zdGFsbC1yZXF1aXJlZC1kZXBlbmRlbmNpZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsZ0RBQXdCO0FBQ3hCLG9DQUF1QztBQUN2Qyw2Q0FBK0Q7QUFFL0QsTUFBTSxFQUNKLGNBQWMsRUFDZCx3QkFBd0IsRUFDeEIsMEJBQTBCLEVBQzFCLGNBQWMsRUFDZCxlQUFlLEVBQ2YsWUFBWSxFQUNaLE9BQU8sRUFDUCxhQUFhLEVBQ2IsV0FBVyxFQUNYLGtCQUFrQixFQUNsQixnQkFBZ0IsR0FDakIsR0FBRyxZQUFLLENBQUMsTUFBTSxDQUFDO0FBRWpCLFNBQVMsZ0JBQWdCLENBQUMsU0FBNEI7SUFDcEQsUUFBUSxTQUFTLEVBQUU7UUFDakIsS0FBSyxhQUFNLENBQUMsVUFBVSxDQUFDLEtBQUs7WUFDMUIsT0FBTyxHQUFHLDBCQUEwQixJQUFJLGNBQWMsRUFBRSxDQUFDO1FBQzNELEtBQUssYUFBTSxDQUFDLFVBQVUsQ0FBQyxJQUFJO1lBQ3pCLE9BQU8sR0FBRywwQkFBMEIsSUFBSSxjQUFjLElBQUksY0FBYyxJQUFJLGtCQUFrQixFQUFFLENBQUM7UUFDbkcsS0FBSyxhQUFNLENBQUMsVUFBVSxDQUFDLE1BQU07WUFDM0IsT0FBTyxHQUFHLHdCQUF3QixJQUFJLGNBQWMsRUFBRSxDQUFDO1FBQ3pELEtBQUssYUFBTSxDQUFDLFVBQVUsQ0FBQyxJQUFJO1lBQ3pCLE9BQU8sR0FBRyxZQUFZLElBQUksT0FBTyxJQUFJLGFBQWEsSUFBSSxnQkFBZ0IsRUFBRSxDQUFDO1FBQzNFLEtBQUssYUFBTSxDQUFDLFVBQVUsQ0FBQyxHQUFHO1lBQ3hCLE9BQU8sR0FBRyxXQUFXLElBQUksY0FBYyxJQUFJLHdCQUF3QixJQUFJLGFBQWEsRUFBRSxDQUFDO1FBQ3pGO1lBQ0UsT0FBTyxFQUFFLENBQUM7S0FDYjtBQUNILENBQUM7QUFFTSxLQUFLLFVBQVUsMkJBQTJCLENBQy9DLEdBQVcsRUFDWCxTQUE0QjtJQUU1QixNQUFNLFFBQVEsR0FBRyxZQUFLLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxpQkFBVSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQ2xFLE1BQU0sMkJBQTJCLEdBQUcsUUFBUTtRQUMxQyxDQUFDLENBQUMsYUFBYTtRQUNmLENBQUMsQ0FBQyx3QkFBd0IsQ0FBQztJQUM3QixNQUFNLHdCQUF3QixHQUFHLFFBQVEsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxvQkFBb0IsQ0FBQztJQUU5RSxNQUFNLE9BQU8sR0FBRyxZQUFLLENBQUMsT0FBTyxDQUFDLG9DQUFvQyxDQUFDLENBQUM7SUFDcEUsT0FBTyxDQUFDLEtBQUssRUFBRSxDQUFDO0lBRWhCLE1BQU0sRUFBRSxNQUFNLEVBQUUsR0FBRyxNQUFNLElBQUEsbUJBQVcsRUFDbEMsR0FBRywyQkFBMkIsSUFBSSxlQUFlLEVBQUUsQ0FDcEQsQ0FBQztJQUVGLE1BQU0sSUFBSSxHQUFHLGdCQUFnQixDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ3pDLElBQUksSUFBSTtRQUFFLE1BQU0sSUFBQSxtQkFBVyxFQUFDLEdBQUcsd0JBQXdCLElBQUksSUFBSSxFQUFFLENBQUMsQ0FBQztJQUVuRSxNQUFNLFNBQVMsR0FBRyxjQUFJLENBQUMsSUFBSSxDQUN6QixpQkFBVSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFDcEMsZUFBZSxDQUNoQixDQUFDO0lBQ0YsTUFBTSxrQkFBa0IsR0FBRyxZQUFLLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUV6RCxJQUFJLGtCQUFrQixJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRTtRQUN4QyxPQUFPLENBQUMsT0FBTyxDQUFDLHVEQUF1RCxDQUFDLENBQUM7UUFDekUsT0FBTztLQUNSO0lBRUQsT0FBTyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ2YsWUFBSyxDQUFDLFlBQVksQ0FDaEIscUJBQXFCLGVBQWUsMEJBQTBCLENBQy9ELENBQUM7QUFDSixDQUFDO0FBbkNELGtFQW1DQyJ9
@@ -4,10 +4,15 @@ exports.loginOrBypass = void 0;
4
4
  const core_1 = require("@slicemachine/core");
5
5
  async function loginOrBypass(base) {
6
6
  const user = await core_1.Auth.validateSession(base);
7
- if (user)
8
- return core_1.Utils.writeCheck(`Logged in as ${core_1.Utils.bold(user.email)}`);
9
- else
7
+ if (user) {
8
+ core_1.Utils.writeCheck(`Logged in as ${core_1.Utils.bold(user.email)}`);
9
+ return user;
10
+ }
11
+ else {
10
12
  await core_1.Auth.login(base);
13
+ const user = await core_1.Auth.validateSession(base);
14
+ return user;
15
+ }
11
16
  }
12
17
  exports.loginOrBypass = loginOrBypass;
13
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9naW5PckJ5cGFzcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zdGVwcy9sb2dpbk9yQnlwYXNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDZDQUFpRDtBQUUxQyxLQUFLLFVBQVUsYUFBYSxDQUFDLElBQVk7SUFDOUMsTUFBTSxJQUFJLEdBQUcsTUFBTSxXQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzlDLElBQUksSUFBSTtRQUFFLE9BQU8sWUFBSyxDQUFDLFVBQVUsQ0FBQyxnQkFBZ0IsWUFBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDOztRQUN2RSxNQUFNLFdBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDOUIsQ0FBQztBQUpELHNDQUlDIn0=
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9naW5PckJ5cGFzcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zdGVwcy9sb2dpbk9yQnlwYXNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDZDQUFpRDtBQUcxQyxLQUFLLFVBQVUsYUFBYSxDQUFDLElBQVk7SUFDOUMsTUFBTSxJQUFJLEdBQUcsTUFBTSxXQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzlDLElBQUksSUFBSSxFQUFFO1FBQ1IsWUFBSyxDQUFDLFVBQVUsQ0FBQyxnQkFBZ0IsWUFBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQzNELE9BQU8sSUFBSSxDQUFDO0tBQ2I7U0FBTTtRQUNMLE1BQU0sV0FBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN2QixNQUFNLElBQUksR0FBRyxNQUFNLFdBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDOUMsT0FBTyxJQUFJLENBQUM7S0FDYjtBQUNILENBQUM7QUFWRCxzQ0FVQyJ9
@@ -26,6 +26,7 @@ exports.maybeExistingRepo = exports.sortReposForPrompt = exports.maybeStickTheRe
26
26
  const inquirer = __importStar(require("inquirer"));
27
27
  const separator_1 = __importDefault(require("inquirer/lib/objects/separator"));
28
28
  const core_1 = require("@slicemachine/core");
29
+ const cookie_1 = require("@slicemachine/core/build/src/utils/cookie");
29
30
  exports.CREATE_REPO = "$_CREATE_REPO";
30
31
  const DEFAULT_BASE = core_1.Utils.CONSTS.DEFAULT_BASE;
31
32
  function prettyRepoName(address, value) {
@@ -54,20 +55,19 @@ async function promptForRepoName(base) {
54
55
  }
55
56
  exports.promptForRepoName = promptForRepoName;
56
57
  function makeReposPretty(base) {
57
- return function (arg) {
58
- const [repoName, { role }] = arg;
58
+ return function ({ name, domain, role }) {
59
59
  const address = new URL(base);
60
- address.hostname = `${repoName}.${address.hostname}`;
60
+ address.hostname = `${domain}.${address.hostname}`;
61
61
  if (core_1.Utils.roles.canUpdateCustomTypes(role) === false) {
62
62
  return {
63
- name: `${core_1.Utils.purple.dim("Use")} ${core_1.Utils.bold.dim(repoName)} ${core_1.Utils.purple.dim(`"${address.hostname}"`)}`,
64
- value: repoName,
63
+ name: `${core_1.Utils.purple.dim("Use")} ${core_1.Utils.bold.dim(name)} ${core_1.Utils.purple.dim(`"${address.hostname}"`)}`,
64
+ value: domain,
65
65
  disabled: "Unauthorized",
66
66
  };
67
67
  }
68
68
  return {
69
- name: `${core_1.Utils.purple("Use")} ${core_1.Utils.bold(repoName)} ${core_1.Utils.purple(`"${address.hostname}"`)}`,
70
- value: repoName,
69
+ name: `${core_1.Utils.purple("Use")} ${core_1.Utils.bold(name)} ${core_1.Utils.purple(`"${address.hostname}"`)}`,
70
+ value: name,
71
71
  };
72
72
  };
73
73
  }
@@ -103,7 +103,7 @@ function sortReposForPrompt(repos, base, cwd) {
103
103
  value: exports.CREATE_REPO,
104
104
  };
105
105
  const maybeConfiguredRepoName = core_1.FileSystem.maybeRepoNameFromSMFile(cwd, base);
106
- return Object.entries(repos)
106
+ return repos
107
107
  .reverse()
108
108
  .map(makeReposPretty(base))
109
109
  .reduce(maybeStickTheRepoToTheTopOfTheList(maybeConfiguredRepoName), [
@@ -112,9 +112,10 @@ function sortReposForPrompt(repos, base, cwd) {
112
112
  .sort(orderPrompts(maybeConfiguredRepoName));
113
113
  }
114
114
  exports.sortReposForPrompt = sortReposForPrompt;
115
- async function maybeExistingRepo(cookie, cwd, base = DEFAULT_BASE) {
116
- const repos = await core_1.Communication.listRepositories(cookie, base);
117
- if (Object.keys(repos).length === 0) {
115
+ async function maybeExistingRepo(cookies, cwd, base = DEFAULT_BASE) {
116
+ const token = (0, cookie_1.parsePrismicAuthToken)(cookies);
117
+ const repos = await core_1.Communication.listRepositories(token);
118
+ if (repos.length === 0) {
118
119
  const name = await promptForRepoName(base);
119
120
  return { existing: false, name };
120
121
  }
@@ -142,4 +143,4 @@ async function maybeExistingRepo(cookie, cwd, base = DEFAULT_BASE) {
142
143
  return { existing: true, name: res.repoName };
143
144
  }
144
145
  exports.maybeExistingRepo = maybeExistingRepo;
145
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF5YmUtZXhpc3RpbmctcmVwby5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zdGVwcy9tYXliZS1leGlzdGluZy1yZXBvLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxtREFBcUM7QUFDckMsK0VBQXVEO0FBQ3ZELDZDQUFzRTtBQUd6RCxRQUFBLFdBQVcsR0FBRyxlQUFlLENBQUM7QUFDM0MsTUFBTSxZQUFZLEdBQUcsWUFBSyxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUM7QUFFL0MsU0FBZ0IsY0FBYyxDQUFDLE9BQVksRUFBRSxLQUFjO0lBQ3pELE1BQU0sUUFBUSxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsWUFBSyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBSyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDekUsT0FBTyxHQUFHLFlBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsT0FBTyxDQUFDLFFBQVEsSUFBSSxDQUFDLEdBQUcsUUFBUSxHQUFHLFlBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUMzRSxJQUFJLE9BQU8sQ0FBQyxRQUFRLEVBQUUsQ0FDdkIsRUFBRSxDQUFDO0FBQ04sQ0FBQztBQUxELHdDQUtDO0FBRU0sS0FBSyxVQUFVLGlCQUFpQixDQUFDLElBQVk7SUFDbEQsTUFBTSxPQUFPLEdBQUcsSUFBSSxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7SUFFOUIsWUFBSyxDQUFDLFNBQVMsQ0FDYiwyRkFBMkYsQ0FDNUYsQ0FBQztJQUVGLE9BQU8sUUFBUTtTQUNaLE1BQU0sQ0FBeUI7UUFDOUI7WUFDRSxJQUFJLEVBQUUsVUFBVTtZQUNoQixPQUFPLEVBQUUsOEJBQThCO1lBQ3ZDLElBQUksRUFBRSxPQUFPO1lBQ2IsUUFBUSxFQUFFLElBQUk7WUFDZCxXQUFXLEVBQUUsQ0FB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
146
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF5YmUtZXhpc3RpbmctcmVwby5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zdGVwcy9tYXliZS1leGlzdGluZy1yZXBvLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxtREFBcUM7QUFDckMsK0VBQXVEO0FBQ3ZELDZDQUFzRTtBQUd0RSxzRUFBa0Y7QUFFckUsUUFBQSxXQUFXLEdBQUcsZUFBZSxDQUFDO0FBQzNDLE1BQU0sWUFBWSxHQUFHLFlBQUssQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDO0FBRS9DLFNBQWdCLGNBQWMsQ0FBQyxPQUFZLEVBQUUsS0FBYztJQUN6RCxNQUFNLFFBQVEsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLFlBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQUssQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ3pFLE9BQU8sR0FBRyxZQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxRQUFRLElBQUksQ0FBQyxHQUFHLFFBQVEsR0FBRyxZQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FDM0UsSUFBSSxPQUFPLENBQUMsUUFBUSxFQUFFLENBQ3ZCLEVBQUUsQ0FBQztBQUNOLENBQUM7QUFMRCx3Q0FLQztBQUVNLEtBQUssVUFBVSxpQkFBaUIsQ0FBQyxJQUFZO0lBQ2xELE1BQU0sT0FBTyxHQUFHLElBQUksR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBRTlCLFlBQUssQ0FBQyxTQUFTLENBQ2IsMkZBQTJGLENBQzVGLENBQUM7SUFFRixPQUFPLFFBQVE7U0FDWixNQUFNLENBQXlCO1FBQzlCO1lBQ0UsSUFBSSxFQUFFLFVBQVU7WUFDaEIsT0FBTyxFQUFFLDhCQUE4QjtZQUN2QyxJQUFJLEVBQUUsT0FBTztZQUNiLFFBQVEsRUFBRSxJQUFJO1lBQ2QsV0FBVyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxjQUFjLENBQUMsT0FBTyxFQUFFLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUM5RCxLQUFLLENBQUMsUUFBUSxDQUFDLElBQUk7Z0JBQ2pCLE1BQU0sTUFBTSxHQUFHLE1BQU0sb0JBQWEsQ0FBQyxzQkFBc0IsQ0FDdkQsSUFBSSxFQUNKLElBQUksRUFDSixLQUFLLENBQ04sQ0FBQztnQkFDRixPQUFPLE1BQU0sS0FBSyxJQUFJLElBQUksTUFBTSxDQUFDO1lBQ25DLENBQUM7U0FDRjtLQUNGLENBQUM7U0FDRCxJQUFJLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQztBQUNqQyxDQUFDO0FBMUJELDhDQTBCQztBQVFELFNBQWdCLGVBQWUsQ0FBQyxJQUFZO0lBQzFDLE9BQU8sVUFBVSxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFjO1FBQ2pELE1BQU0sT0FBTyxHQUFHLElBQUksR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzlCLE9BQU8sQ0FBQyxRQUFRLEdBQUcsR0FBRyxNQUFNLElBQUksT0FBTyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ25ELElBQUksWUFBSyxDQUFDLEtBQUssQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxLQUFLLEVBQUU7WUFDcEQsT0FBTztnQkFDTCxJQUFJLEVBQUUsR0FBRyxZQUFLLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsSUFBSSxZQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FDaEQsSUFBSSxDQUNMLElBQUksWUFBSyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsSUFBSSxPQUFPLENBQUMsUUFBUSxHQUFHLENBQUMsRUFBRTtnQkFDaEQsS0FBSyxFQUFFLE1BQU07Z0JBQ2IsUUFBUSxFQUFFLGNBQWM7YUFDekIsQ0FBQztTQUNIO1FBRUQsT0FBTztZQUNMLElBQUksRUFBRSxHQUFHLFlBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLElBQUksWUFBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxZQUFLLENBQUMsTUFBTSxDQUM5RCxJQUFJLE9BQU8sQ0FBQyxRQUFRLEdBQUcsQ0FDeEIsRUFBRTtZQUNILEtBQUssRUFBRSxJQUFJO1NBQ1osQ0FBQztJQUNKLENBQUMsQ0FBQztBQUNKLENBQUM7QUFyQkQsMENBcUJDO0FBRUQsU0FBZ0IsWUFBWSxDQUFDLFNBQXlCO0lBQ3BELE9BQU8sQ0FBQyxDQUFvQixFQUFFLENBQW9CLEVBQVUsRUFBRTtRQUM1RCxJQUFJLENBQUMsWUFBWSxtQkFBUyxJQUFJLENBQUMsWUFBWSxtQkFBUztZQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQy9ELElBQUksU0FBUyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssS0FBSyxTQUFTLElBQUksQ0FBQyxDQUFDLEtBQUssS0FBSyxTQUFTLENBQUM7WUFBRSxPQUFPLENBQUMsQ0FBQztRQUM1RSxJQUFJLENBQUMsQ0FBQyxLQUFLLEtBQUssbUJBQVcsSUFBSSxDQUFDLENBQUMsS0FBSyxLQUFLLG1CQUFXO1lBQUUsT0FBTyxDQUFDLENBQUM7UUFDakUsSUFBSSxDQUFDLENBQUMsUUFBUSxJQUFJLENBQUMsQ0FBQyxDQUFDLFFBQVE7WUFBRSxPQUFPLENBQUMsQ0FBQztRQUN4QyxJQUFJLENBQUMsQ0FBQyxDQUFDLFFBQVEsSUFBSSxDQUFDLENBQUMsUUFBUTtZQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUM7UUFDekMsT0FBTyxDQUFDLENBQUM7SUFDWCxDQUFDLENBQUM7QUFDSixDQUFDO0FBVEQsb0NBU0M7QUFFRCxTQUFnQixrQ0FBa0MsQ0FBQyxRQUF3QjtJQUN6RSxPQUFPLENBQUMsR0FBZ0IsRUFBRSxJQUFnQixFQUFlLEVBQUU7UUFDekQsSUFBSSxRQUFRLElBQUksSUFBSSxDQUFDLEtBQUssS0FBSyxRQUFRLEVBQUU7WUFDdkMsT0FBTyxDQUFDLElBQUksRUFBRSxHQUFHLEdBQUcsQ0FBQyxDQUFDO1NBQ3ZCO1FBQ0QsT0FBTyxDQUFDLEdBQUcsR0FBRyxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ3hCLENBQUMsQ0FBQztBQUNKLENBQUM7QUFQRCxnRkFPQztBQUVELFNBQWdCLGtCQUFrQixDQUNoQyxLQUFtQixFQUNuQixJQUFZLEVBQ1osR0FBVztJQUVYLE1BQU0sU0FBUyxHQUFHO1FBQ2hCLElBQUksRUFBRSxHQUFHLFlBQUssQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLElBQUksWUFBSyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxZQUFLLENBQUMsTUFBTSxDQUNwRSxZQUFZLENBQ2IsRUFBRTtRQUNILEtBQUssRUFBRSxtQkFBVztLQUNuQixDQUFDO0lBRUYsTUFBTSx1QkFBdUIsR0FBRyxpQkFBVSxDQUFDLHVCQUF1QixDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUU5RSxPQUFPLEtBQUs7U0FDVCxPQUFPLEVBQUU7U0FDVCxHQUFHLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQzFCLE1BQU0sQ0FBQyxrQ0FBa0MsQ0FBQyx1QkFBdUIsQ0FBQyxFQUFFO1FBQ25FLFNBQVM7S0FDVixDQUFDO1NBQ0QsSUFBSSxDQUFDLFlBQVksQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDLENBQUM7QUFDakQsQ0FBQztBQXJCRCxnREFxQkM7QUFFTSxLQUFLLFVBQVUsaUJBQWlCLENBQ3JDLE9BQWUsRUFDZixHQUFXLEVBQ1gsSUFBSSxHQUFHLFlBQVk7SUFFbkIsTUFBTSxLQUFLLEdBQUcsSUFBQSw4QkFBcUIsRUFBQyxPQUFPLENBQUMsQ0FBQztJQUM3QyxNQUFNLEtBQUssR0FBRyxNQUFNLG9CQUFhLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxDQUFDLENBQUM7SUFFMUQsSUFBSSxLQUFLLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtRQUN0QixNQUFNLElBQUksR0FBRyxNQUFNLGlCQUFpQixDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzNDLE9BQU8sRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxDQUFDO0tBQ2xDO0lBRUQsTUFBTSxPQUFPLEdBQUcsa0JBQWtCLENBQUMsS0FBSyxFQUFFLElBQUksRUFBRSxHQUFHLENBQUMsQ0FBQztJQUVyRCxNQUFNLHFCQUFxQixHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtRQUNwRCxJQUFJLElBQUksWUFBWSxtQkFBUztZQUFFLE9BQU8sS0FBSyxDQUFDO1FBQzVDLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQztJQUN2QixDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUM7SUFFVixNQUFNLEdBQUcsR0FBRyxNQUFNLFFBQVEsQ0FBQyxNQUFNLENBQXlCO1FBQ3hEO1lBQ0UsSUFBSSxFQUFFLE1BQU07WUFDWixJQUFJLEVBQUUsVUFBVTtZQUNoQixPQUFPLEVBQUUsQ0FBQztZQUNWLFFBQVEsRUFBRSxJQUFJO1lBQ2QsT0FBTyxFQUFFLGtEQUFrRDtZQUMzRCxPQUFPO1lBQ1AsUUFBUSxFQUFFLHFCQUFxQixHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMscUJBQXFCLEdBQUcsQ0FBQztTQUV6RTtLQUNGLENBQUMsQ0FBQztJQUVILElBQUksR0FBRyxDQUFDLFFBQVEsS0FBSyxtQkFBVyxFQUFFO1FBQ2hDLE1BQU0sSUFBSSxHQUFHLE1BQU0saUJBQWlCLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDM0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLENBQUM7S0FDbEM7SUFDRCxPQUFPLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxDQUFDLFFBQVEsRUFBRSxDQUFDO0FBQ2hELENBQUM7QUF0Q0QsOENBc0NDIn0=
@@ -0,0 +1,49 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Npm = exports.Yarn = exports.PackageManager = exports.Dependencies = void 0;
4
+ const core_1 = require("@slicemachine/core");
5
+ const utils_1 = require("../utils");
6
+ exports.Dependencies = {
7
+ fromPkgFormat(pkgDeps) {
8
+ if (!pkgDeps)
9
+ return;
10
+ return Object.entries(pkgDeps).map(([name, version]) => ({
11
+ name,
12
+ version,
13
+ }));
14
+ },
15
+ };
16
+ function formatDeps(dependencies) {
17
+ return dependencies
18
+ .map((dep) => {
19
+ if (typeof dep === "string")
20
+ return dep;
21
+ return `${dep.name}@${dep.version}`;
22
+ })
23
+ .join(" ");
24
+ }
25
+ exports.PackageManager = {
26
+ get(cwd) {
27
+ if (core_1.Utils.Files.exists(core_1.FileSystem.YarnLockPath(cwd))) {
28
+ return exports.Yarn;
29
+ }
30
+ return exports.Npm;
31
+ },
32
+ };
33
+ exports.Yarn = {
34
+ install(dependencies) {
35
+ return (0, utils_1.execCommand)(`yarn add ${formatDeps(dependencies)}`);
36
+ },
37
+ installDev(dependencies) {
38
+ return (0, utils_1.execCommand)(`yarn add --dev ${formatDeps(dependencies)}`);
39
+ },
40
+ };
41
+ exports.Npm = {
42
+ install(dependencies) {
43
+ return (0, utils_1.execCommand)(`npm i --save ${formatDeps(dependencies)}`);
44
+ },
45
+ installDev(dependencies) {
46
+ return (0, utils_1.execCommand)(`npm i --save-dev ${formatDeps(dependencies)}`);
47
+ },
48
+ };
49
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUGFja2FnZU1hbmFnZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbHMvUGFja2FnZU1hbmFnZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsNkNBQXVEO0FBQ3ZELG9DQUF1QztBQUcxQixRQUFBLFlBQVksR0FBRztJQUMxQixhQUFhLENBQ1gsT0FBMkM7UUFFM0MsSUFBSSxDQUFDLE9BQU87WUFBRSxPQUFPO1FBRXJCLE9BQU8sTUFBTSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztZQUN2RCxJQUFJO1lBQ0osT0FBTztTQUNSLENBQUMsQ0FBQyxDQUFDO0lBQ04sQ0FBQztDQUNGLENBQUM7QUFDRixTQUFTLFVBQVUsQ0FBQyxZQUF1QztJQUN6RCxPQUFPLFlBQVk7U0FDaEIsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUU7UUFDWCxJQUFJLE9BQU8sR0FBRyxLQUFLLFFBQVE7WUFBRSxPQUFPLEdBQUcsQ0FBQztRQUN4QyxPQUFPLEdBQUcsR0FBRyxDQUFDLElBQUksSUFBSSxHQUFHLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDdEMsQ0FBQyxDQUFDO1NBQ0QsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQ2YsQ0FBQztBQVNZLFFBQUEsY0FBYyxHQUFHO0lBQzVCLEdBQUcsQ0FBQyxHQUFXO1FBQ2IsSUFBSSxZQUFLLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxpQkFBVSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFO1lBQ3BELE9BQU8sWUFBSSxDQUFDO1NBQ2I7UUFDRCxPQUFPLFdBQUcsQ0FBQztJQUNiLENBQUM7Q0FDRixDQUFDO0FBRVcsUUFBQSxJQUFJLEdBQW1CO0lBQ2xDLE9BQU8sQ0FDTCxZQUF1QztRQUV2QyxPQUFPLElBQUEsbUJBQVcsRUFBQyxZQUFZLFVBQVUsQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDN0QsQ0FBQztJQUNELFVBQVUsQ0FDUixZQUF1QztRQUV2QyxPQUFPLElBQUEsbUJBQVcsRUFBQyxrQkFBa0IsVUFBVSxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUNuRSxDQUFDO0NBQ0YsQ0FBQztBQUVXLFFBQUEsR0FBRyxHQUFtQjtJQUNqQyxPQUFPLENBQ0wsWUFBdUM7UUFFdkMsT0FBTyxJQUFBLG1CQUFXLEVBQUMsZ0JBQWdCLFVBQVUsQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDakUsQ0FBQztJQUNELFVBQVUsQ0FDUixZQUF1QztRQUV2QyxPQUFPLElBQUEsbUJBQVcsRUFBQyxvQkFBb0IsVUFBVSxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUNyRSxDQUFDO0NBQ0YsQ0FBQyJ9
@@ -9,14 +9,14 @@ const child_process_1 = require("child_process");
9
9
  function findArgument(args, name) {
10
10
  const flagIndex = args.indexOf(`--${name}`);
11
11
  if (flagIndex === -1)
12
- return null;
12
+ return;
13
13
  if (args.length < flagIndex + 2)
14
- return null;
14
+ return;
15
15
  const flagValue = args[flagIndex + 1];
16
16
  if (flagValue.startsWith("--"))
17
- return null;
17
+ return;
18
18
  return flagValue;
19
19
  }
20
20
  exports.findArgument = findArgument;
21
21
  exports.execCommand = util_1.default.promisify(child_process_1.exec);
22
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsZ0RBQXdCO0FBQ3hCLGlEQUFxQztBQUVyQyxTQUFnQixZQUFZLENBQUMsSUFBYyxFQUFFLElBQVk7SUFDdkQsTUFBTSxTQUFTLEdBQVcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLElBQUksRUFBRSxDQUFDLENBQUM7SUFFcEQsSUFBSSxTQUFTLEtBQUssQ0FBQyxDQUFDO1FBQUUsT0FBTyxJQUFJLENBQUM7SUFDbEMsSUFBSSxJQUFJLENBQUMsTUFBTSxHQUFHLFNBQVMsR0FBRyxDQUFDO1FBQUUsT0FBTyxJQUFJLENBQUM7SUFFN0MsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLFNBQVMsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUV0QyxJQUFJLFNBQVMsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDO1FBQUUsT0FBTyxJQUFJLENBQUM7SUFDNUMsT0FBTyxTQUFTLENBQUM7QUFDbkIsQ0FBQztBQVZELG9DQVVDO0FBRVksUUFBQSxXQUFXLEdBRTJCLGNBQUksQ0FBQyxTQUFTLENBQUMsb0JBQUksQ0FBQyxDQUFDIn0=
22
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsZ0RBQXdCO0FBQ3hCLGlEQUFxQztBQUVyQyxTQUFnQixZQUFZLENBQUMsSUFBYyxFQUFFLElBQVk7SUFDdkQsTUFBTSxTQUFTLEdBQVcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLElBQUksRUFBRSxDQUFDLENBQUM7SUFFcEQsSUFBSSxTQUFTLEtBQUssQ0FBQyxDQUFDO1FBQUUsT0FBTztJQUM3QixJQUFJLElBQUksQ0FBQyxNQUFNLEdBQUcsU0FBUyxHQUFHLENBQUM7UUFBRSxPQUFPO0lBRXhDLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxTQUFTLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFFdEMsSUFBSSxTQUFTLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQztRQUFFLE9BQU87SUFDdkMsT0FBTyxTQUFTLENBQUM7QUFDbkIsQ0FBQztBQVZELG9DQVVDO0FBRVksUUFBQSxXQUFXLEdBRTJCLGNBQUksQ0FBQyxTQUFTLENBQUMsb0JBQUksQ0FBQyxDQUFDIn0=
@@ -0,0 +1,46 @@
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.Tracker = exports.EventType = void 0;
7
+ const analytics_node_1 = __importDefault(require("analytics-node"));
8
+ var EventType;
9
+ (function (EventType) {
10
+ EventType["DownloadLibrary"] = "SliceMachine Download Library";
11
+ })(EventType = exports.EventType || (exports.EventType = {}));
12
+ class Tracker {
13
+ constructor(analytics, repo, identifier, tracking = true) {
14
+ this.analytics = analytics;
15
+ this.repo = repo;
16
+ this.identifier = identifier;
17
+ this.tracking = tracking;
18
+ this.Track = {
19
+ downloadLibrary: (library) => {
20
+ this.trackEvent(EventType.DownloadLibrary, { library });
21
+ },
22
+ };
23
+ }
24
+ static build(writeKey, repo, identifier, tracking = true) {
25
+ try {
26
+ if (!repo)
27
+ return;
28
+ const analytics = new analytics_node_1.default(writeKey);
29
+ return new Tracker(analytics, repo, identifier, tracking);
30
+ }
31
+ catch (error) {
32
+ console.warn(error);
33
+ return;
34
+ }
35
+ }
36
+ trackEvent(eventType, attributes = {}) {
37
+ this.tracking &&
38
+ this.analytics.track({
39
+ event: eventType,
40
+ ...this.identifier,
41
+ properties: attributes,
42
+ });
43
+ }
44
+ }
45
+ exports.Tracker = Tracker;
46
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhY2tlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlscy90cmFja2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQVFBLG9FQUE2QztBQUU3QyxJQUFZLFNBRVg7QUFGRCxXQUFZLFNBQVM7SUFDbkIsOERBQWlELENBQUE7QUFDbkQsQ0FBQyxFQUZXLFNBQVMsR0FBVCxpQkFBUyxLQUFULGlCQUFTLFFBRXBCO0FBRUQsTUFBYSxPQUFPO0lBQ2xCLFlBQ1csU0FBMEIsRUFDMUIsSUFBWSxFQUNaLFVBQXdELEVBQ3hELFdBQVcsSUFBSTtRQUhmLGNBQVMsR0FBVCxTQUFTLENBQWlCO1FBQzFCLFNBQUksR0FBSixJQUFJLENBQVE7UUFDWixlQUFVLEdBQVYsVUFBVSxDQUE4QztRQUN4RCxhQUFRLEdBQVIsUUFBUSxDQUFPO1FBK0IxQixVQUFLLEdBQUc7WUFFTixlQUFlLEVBQUUsQ0FBQyxPQUFlLEVBQVEsRUFBRTtnQkFDekMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsZUFBZSxFQUFFLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQztZQUMxRCxDQUFDO1NBQ0YsQ0FBQztJQW5DQyxDQUFDO0lBRUosTUFBTSxDQUFDLEtBQUssQ0FDVixRQUFnQixFQUNoQixJQUF3QixFQUN4QixVQUF3RCxFQUN4RCxRQUFRLEdBQUcsSUFBSTtRQUVmLElBQUk7WUFDRixJQUFJLENBQUMsSUFBSTtnQkFBRSxPQUFPO1lBQ2xCLE1BQU0sU0FBUyxHQUFHLElBQUksd0JBQWUsQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUNoRCxPQUFPLElBQUksT0FBTyxDQUFDLFNBQVMsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1NBQzNEO1FBQUMsT0FBTyxLQUFLLEVBQUU7WUFDZCxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3BCLE9BQU87U0FDUjtJQUNILENBQUM7SUFFTyxVQUFVLENBQ2hCLFNBQW9CLEVBQ3BCLGFBQXNDLEVBQUU7UUFFeEMsSUFBSSxDQUFDLFFBQVE7WUFDWCxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQztnQkFDbkIsS0FBSyxFQUFFLFNBQVM7Z0JBQ2hCLEdBQUcsSUFBSSxDQUFDLFVBQVU7Z0JBQ2xCLFVBQVUsRUFBRSxVQUFVO2FBQ3ZCLENBQUMsQ0FBQztJQUNQLENBQUM7Q0FRRjtBQTFDRCwwQkEwQ0MifQ==
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@slicemachine/init",
3
- "version": "1.0.2-alpha.3",
3
+ "version": "1.0.2-alpha.33",
4
4
  "license": "MIT",
5
5
  "description": "The easiest way to add Slice Machine to your project",
6
6
  "bin": {
@@ -23,8 +23,12 @@
23
23
  "@babel/core": "^7.15.8",
24
24
  "@babel/preset-env": "^7.15.8",
25
25
  "@babel/preset-typescript": "^7.15.0",
26
+ "@types/adm-zip": "^0.4.34",
27
+ "@types/analytics-node": "^3.1.7",
28
+ "@types/fs-extra": "^9.0.13",
26
29
  "@types/inquirer": "^8.1.3",
27
30
  "@types/jest": "^27.0.2",
31
+ "@types/tmp": "^0.2.2",
28
32
  "@typescript-eslint/eslint-plugin": "^4.29.1",
29
33
  "@typescript-eslint/parser": "^4.29.1",
30
34
  "babel-jest": "^27.0.2",
@@ -42,10 +46,15 @@
42
46
  "typescript": "^4.4.3"
43
47
  },
44
48
  "dependencies": {
45
- "@slicemachine/core": "1.0.2-alpha.3",
49
+ "@slicemachine/core": "1.0.2-alpha.33",
50
+ "adm-zip": "^0.5.9",
51
+ "analytics-node": "^6.0.0",
52
+ "axios": "^0.24.0",
46
53
  "fp-ts": "^2.11.5",
54
+ "fs-extra": "^10.0.0",
47
55
  "inquirer": "^8.2.0",
48
- "io-ts": "^2.2.16"
56
+ "io-ts": "^2.2.16",
57
+ "tmp": "^0.2.1"
49
58
  },
50
- "gitHead": "8e27d378c59a945a662111af15b18af924012869"
59
+ "gitHead": "9a0380ab52178798110fd40807c843399ed487a0"
51
60
  }
package/src/index.ts CHANGED
@@ -1,6 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
 
3
3
  import { Utils, FileSystem } from "@slicemachine/core";
4
+ import { Tracker } from "./utils/tracker";
4
5
  import {
5
6
  installRequiredDependencies,
6
7
  validatePkg,
@@ -10,13 +11,17 @@ import {
10
11
  configureProject,
11
12
  displayFinalMessage,
12
13
  detectFramework,
14
+ installLib,
13
15
  } from "./steps";
14
16
  import { findArgument } from "./utils";
15
17
 
16
18
  async function init() {
17
19
  const cwd = findArgument(process.argv, "cwd") || process.cwd();
18
- const base = (findArgument(process.argv, "base") ||
19
- Utils.CONSTS.DEFAULT_BASE) as Utils.Endpoints.Base;
20
+ const base = findArgument(process.argv, "base") || Utils.CONSTS.DEFAULT_BASE;
21
+ const lib: string | undefined = findArgument(process.argv, "library");
22
+ const branch: string | undefined = findArgument(process.argv, "branch");
23
+ const isTrackingAvailable =
24
+ findArgument(process.argv, "tracking") === "false" ? false : true;
20
25
 
21
26
  console.log(
22
27
  Utils.purple(
@@ -28,10 +33,11 @@ async function init() {
28
33
  validatePkg(cwd);
29
34
 
30
35
  // login
31
- await loginOrBypass(base);
36
+ const user = await loginOrBypass(base);
37
+ if (!user) throw new Error("The user should be logged in!");
32
38
 
33
39
  // retrieve tokens for api calls
34
- const config = FileSystem.getOrCreateAuthConfig();
40
+ const config = FileSystem.PrismicSharedConfigManager.get();
35
41
 
36
42
  // detect the framework used by the project
37
43
  const frameworkResult = await detectFramework(cwd);
@@ -47,11 +53,31 @@ async function init() {
47
53
  await createRepository(name, frameworkResult.value, config);
48
54
  }
49
55
 
56
+ const tracker = Tracker.build(
57
+ "JfTfmHaATChc4xueS7RcCBsixI71dJIJ",
58
+ name,
59
+ {
60
+ userId: user.userId,
61
+ },
62
+ isTrackingAvailable
63
+ );
64
+
50
65
  // install the required dependencies in the project.
51
66
  await installRequiredDependencies(cwd, frameworkResult.value);
52
67
 
68
+ const sliceLibPath = lib
69
+ ? await installLib(tracker, cwd, lib, branch)
70
+ : undefined;
71
+
53
72
  // configure the SM.json file and the json package file of the project..
54
- configureProject(cwd, base, name, frameworkResult);
73
+ configureProject(
74
+ cwd,
75
+ base,
76
+ name,
77
+ frameworkResult,
78
+ sliceLibPath,
79
+ isTrackingAvailable
80
+ );
55
81
 
56
82
  // ask the user to run slice-machine.
57
83
  displayFinalMessage(cwd);
@@ -1,4 +1,5 @@
1
1
  import { FileSystem, Utils } from "@slicemachine/core";
2
+ import type { Models } from "@slicemachine/core";
2
3
  import { FrameworkResult } from "./detect-framework";
3
4
 
4
5
  type Base = Utils.Endpoints.Base;
@@ -7,7 +8,9 @@ export function configureProject(
7
8
  cwd: string,
8
9
  base: Base,
9
10
  repository: string,
10
- framework: FrameworkResult
11
+ framework: FrameworkResult,
12
+ sliceLibPath: string[] = [],
13
+ tracking = true
11
14
  ): void {
12
15
  const spinner = Utils.spinner(
13
16
  `Configuring your ${framework.value} & Prismic project...`
@@ -17,16 +20,25 @@ export function configureProject(
17
20
  try {
18
21
  const manifest = FileSystem.retrieveManifest(cwd);
19
22
 
20
- const manifestUpdated: FileSystem.Manifest = {
23
+ const manifestUpdated: Models.Manifest = {
21
24
  ...(manifest.exists && manifest.content ? manifest.content : {}),
22
25
  apiEndpoint: Utils.Endpoints.buildRepositoryEndpoint(base, repository),
23
- libraries: ["@/slices"],
26
+ libraries: ["@/slices", ...sliceLibPath],
24
27
  ...(framework.manuallyAdded ? { framework: framework.value } : {}),
28
+ ...(!tracking ? { tracking } : {}),
25
29
  };
26
30
 
27
31
  if (!manifest.exists) FileSystem.createManifest(cwd, manifestUpdated);
28
32
  else FileSystem.patchManifest(cwd, manifestUpdated);
29
33
 
34
+ // create the default slices folder if it doesn't exist.
35
+ const pathToSlicesFolder = FileSystem.CustomPaths(cwd)
36
+ .library("slices")
37
+ .value();
38
+ if (!Utils.Files.exists(pathToSlicesFolder))
39
+ Utils.Files.mkdir(pathToSlicesFolder, { recursive: true });
40
+
41
+ // add slicemachine script to package.json.
30
42
  FileSystem.addJsonPackageSmScript(cwd);
31
43
 
32
44
  spinner.succeed("Project configured! Ready to start");
@@ -1,9 +1,10 @@
1
- import { Communication, Utils, FileSystem } from "@slicemachine/core";
1
+ import { Communication, Utils } from "@slicemachine/core";
2
+ import type { Models } from "@slicemachine/core";
2
3
 
3
4
  export function createRepository(
4
5
  domain: string,
5
- framework: Utils.Framework.FrameworkEnum,
6
- config: FileSystem.AuthConfig
6
+ framework: Models.Frameworks,
7
+ config: Models.PrismicSharedConfig
7
8
  ): Promise<void> {
8
9
  const spinner = Utils.spinner("Creating Prismic Repository");
9
10
  spinner.start();
@@ -1,13 +1,14 @@
1
1
  import { Utils } from "@slicemachine/core";
2
+ import { Models } from "@slicemachine/core";
2
3
  import * as inquirer from "inquirer";
3
4
 
4
5
  export type FrameworkResult = {
5
- value: Utils.Framework.FrameworkEnum;
6
+ value: Models.Frameworks;
6
7
  manuallyAdded: boolean;
7
8
  };
8
9
 
9
10
  export async function promptForFramework(): Promise<FrameworkResult> {
10
- const choices = Utils.Framework.SupportedFrameworks.map((framework) => {
11
+ const choices = Models.SupportedFrameworks.map((framework) => {
11
12
  return {
12
13
  name: Utils.Framework.fancyName(framework),
13
14
  value: framework,
@@ -15,7 +16,7 @@ export async function promptForFramework(): Promise<FrameworkResult> {
15
16
  });
16
17
 
17
18
  return inquirer
18
- .prompt<{ framework: Utils.Framework.FrameworkEnum }>([
19
+ .prompt<{ framework: Models.Frameworks }>([
19
20
  {
20
21
  name: "framework",
21
22
  type: "list",
@@ -44,13 +45,13 @@ export async function detectFramework(cwd: string): Promise<FrameworkResult> {
44
45
  spinner.start();
45
46
 
46
47
  try {
47
- const maybeFramework = Utils.Framework.detectFramework(cwd);
48
+ const maybeFramework = Utils.Framework.detectFramework(
49
+ cwd,
50
+ Object.values(Models.Frameworks)
51
+ );
48
52
  spinner.stop();
49
53
 
50
- if (
51
- !maybeFramework ||
52
- maybeFramework === Utils.Framework.FrameworkEnum.vanillajs
53
- ) {
54
+ if (!maybeFramework || maybeFramework === Models.Frameworks.vanillajs) {
54
55
  Utils.writeError("Framework not detected");
55
56
  return await promptForFramework();
56
57
  }
@@ -6,3 +6,4 @@ export { detectFramework } from "./detect-framework";
6
6
  export { loginOrBypass } from "./loginOrBypass";
7
7
  export { configureProject } from "./configure-project";
8
8
  export { displayFinalMessage } from "./display-final-message";
9
+ export { installLib } from "./install-lib";
@@ -0,0 +1,112 @@
1
+ import { Utils } from "@slicemachine/core";
2
+ import tmp from "tmp";
3
+ import AdmZip from "adm-zip";
4
+ import fsExtra from "fs-extra";
5
+ import axios from "axios";
6
+
7
+ import fs from "fs";
8
+ import path from "path";
9
+ import { getOrElseW } from "fp-ts/Either";
10
+ import { PackageManager, Dependencies } from "../utils/PackageManager";
11
+ import { PackageJsonHelper } from "@slicemachine/core/build/src/utils/PackageJson";
12
+ import {
13
+ Manifest,
14
+ ManifestHelper,
15
+ } from "@slicemachine/core/build/src/models/Manifest";
16
+ import Files from "@slicemachine/core/build/src/utils/files";
17
+ import { Tracker } from "../utils/tracker";
18
+
19
+ const downloadFile = async (reqUrl: string): Promise<string> => {
20
+ const res = await axios({
21
+ method: "GET",
22
+ url: reqUrl,
23
+ responseType: "arraybuffer",
24
+ });
25
+
26
+ return new Promise((resolve, reject) => {
27
+ if (res.status == 200) {
28
+ const tmpZipFile = tmp.tmpNameSync();
29
+ const zip = new AdmZip(res.data);
30
+ zip.extractAllTo(tmpZipFile);
31
+ resolve(tmpZipFile);
32
+ } else {
33
+ reject();
34
+ }
35
+ });
36
+ };
37
+
38
+ export async function installLib(
39
+ tracker: Tracker | undefined,
40
+ cwd: string,
41
+ libGithubPath: string,
42
+ branch: string | undefined = "main"
43
+ ): Promise<string[] | undefined> {
44
+ const spinner = Utils.spinner(
45
+ `Installing the ${libGithubPath} lib in your project...`
46
+ );
47
+
48
+ try {
49
+ spinner.start();
50
+
51
+ const [githubUserName, githubProjectName] = libGithubPath.split("/");
52
+ const source = `https://codeload.github.com/${libGithubPath}/zip/${branch}`;
53
+
54
+ const zipFilePath = await downloadFile(source);
55
+ const outputFolder = `${githubProjectName}-${branch}`;
56
+ const projectPath = path.join(zipFilePath, outputFolder);
57
+
58
+ const name = `${githubUserName}-${githubProjectName}`;
59
+ const libDestinationFolder = path.join(cwd, name);
60
+
61
+ // We should be able to offer the ability to override or not an existing library
62
+ if (fs.existsSync(libDestinationFolder)) {
63
+ spinner.succeed(`Lib "${libGithubPath}" was already installed (skipped)`);
64
+ return;
65
+ }
66
+
67
+ // We copy all the slices into the the user project minus the src folder
68
+ fsExtra.moveSync(path.join(projectPath, "src"), libDestinationFolder);
69
+
70
+ // handle dependencies
71
+ const pkgManager = PackageManager.get(cwd);
72
+ const pkgJson = PackageJsonHelper.fromPath(
73
+ path.join(projectPath, "package.json")
74
+ );
75
+ if (pkgJson instanceof Error) throw pkgJson;
76
+
77
+ const dependencies = Dependencies.fromPkgFormat(pkgJson.dependencies);
78
+ if (dependencies) await pkgManager.install(dependencies);
79
+
80
+ // generate meta file
81
+ Files.write(path.join(libDestinationFolder, "meta.json"), {
82
+ name: pkgJson.name,
83
+ });
84
+
85
+ // retrieve all slices lib paths
86
+ const manifest = Files.readEntity<Error | Manifest>(
87
+ path.join(projectPath, "sm.json"),
88
+ (payload: unknown) => {
89
+ return getOrElseW(
90
+ () => new Error(`Unable to parse sm.json from lib ${libGithubPath}`)
91
+ )(Manifest.decode(payload));
92
+ }
93
+ );
94
+ if (manifest instanceof Error) throw manifest;
95
+
96
+ const localLibs = ManifestHelper.localLibraries(manifest).map(
97
+ ({ path }) => {
98
+ return `~/${name}/${path.replace("src/", "")}`;
99
+ }
100
+ );
101
+
102
+ spinner.succeed(
103
+ `Slice library "${libGithubPath}" was installed successfully`
104
+ );
105
+
106
+ tracker?.Track.downloadLibrary(libGithubPath);
107
+ return localLibs;
108
+ } catch {
109
+ spinner.fail(`Error installing ${libGithubPath} lib!`);
110
+ process.exit(-1);
111
+ }
112
+ }
@@ -1,6 +1,6 @@
1
1
  import path from "path";
2
2
  import { execCommand } from "../utils";
3
- import { Utils, FileSystem } from "@slicemachine/core";
3
+ import { Utils, FileSystem, Models } from "@slicemachine/core";
4
4
 
5
5
  const {
6
6
  PRISMIC_CLIENT,
@@ -8,16 +8,26 @@ const {
8
8
  PRISMIC_REACT_PACKAGE_NAME,
9
9
  NEXT_SLICEZONE,
10
10
  SM_PACKAGE_NAME,
11
+ NUXT_PRISMIC,
12
+ NUXT_SM,
13
+ VUE_SLICEZONE,
14
+ PRISMIC_VUE,
15
+ SLICE_CANVAS_REACT,
16
+ SLICE_CANVAS_VUE,
11
17
  } = Utils.CONSTS;
12
18
 
13
- function depsForFramework(framework: Utils.Framework.FrameworkEnum): string {
19
+ function depsForFramework(framework: Models.Frameworks): string {
14
20
  switch (framework) {
15
- case Utils.Framework.FrameworkEnum.react:
21
+ case Models.Frameworks.react:
16
22
  return `${PRISMIC_REACT_PACKAGE_NAME} ${PRISMIC_CLIENT}`;
17
- case Utils.Framework.FrameworkEnum.next:
18
- return `${PRISMIC_REACT_PACKAGE_NAME} ${PRISMIC_CLIENT} ${NEXT_SLICEZONE}`;
19
- case Utils.Framework.FrameworkEnum.svelte:
23
+ case Models.Frameworks.next:
24
+ return `${PRISMIC_REACT_PACKAGE_NAME} ${PRISMIC_CLIENT} ${NEXT_SLICEZONE} ${SLICE_CANVAS_REACT}`;
25
+ case Models.Frameworks.svelte:
20
26
  return `${PRISMIC_DOM_PACKAGE_NAME} ${PRISMIC_CLIENT}`;
27
+ case Models.Frameworks.nuxt:
28
+ return `${NUXT_PRISMIC} ${NUXT_SM} ${VUE_SLICEZONE} ${SLICE_CANVAS_VUE}`;
29
+ case Models.Frameworks.vue:
30
+ return `${PRISMIC_VUE} ${PRISMIC_CLIENT} ${PRISMIC_DOM_PACKAGE_NAME} ${VUE_SLICEZONE}`;
21
31
  default:
22
32
  return "";
23
33
  }
@@ -25,7 +35,7 @@ function depsForFramework(framework: Utils.Framework.FrameworkEnum): string {
25
35
 
26
36
  export async function installRequiredDependencies(
27
37
  cwd: string,
28
- framework: Utils.Framework.FrameworkEnum
38
+ framework: Models.Frameworks
29
39
  ): Promise<void> {
30
40
  const yarnLock = Utils.Files.exists(FileSystem.YarnLockPath(cwd));
31
41
  const installDevDependencyCommand = yarnLock
@@ -1,7 +1,14 @@
1
1
  import { Utils, Auth } from "@slicemachine/core";
2
+ import { UserInfo } from "@slicemachine/core/build/src/core/communication";
2
3
 
3
- export async function loginOrBypass(base: string): Promise<void> {
4
+ export async function loginOrBypass(base: string): Promise<UserInfo | null> {
4
5
  const user = await Auth.validateSession(base);
5
- if (user) return Utils.writeCheck(`Logged in as ${Utils.bold(user.email)}`);
6
- else await Auth.login(base);
6
+ if (user) {
7
+ Utils.writeCheck(`Logged in as ${Utils.bold(user.email)}`);
8
+ return user;
9
+ } else {
10
+ await Auth.login(base);
11
+ const user = await Auth.validateSession(base);
12
+ return user;
13
+ }
7
14
  }
@@ -1,7 +1,9 @@
1
1
  import * as inquirer from "inquirer";
2
2
  import Separator from "inquirer/lib/objects/separator";
3
3
  import { Communication, Utils, FileSystem } from "@slicemachine/core";
4
- import { RepoData } from "@slicemachine/core/src/core/communication";
4
+ import { Repositories } from "@slicemachine/core/src/models/Repositories";
5
+ import { Repository } from "@slicemachine/core/src/models/Repository";
6
+ import { parsePrismicAuthToken } from "@slicemachine/core/build/src/utils/cookie";
5
7
 
6
8
  export const CREATE_REPO = "$_CREATE_REPO"; // not a valid domain name
7
9
  const DEFAULT_BASE = Utils.CONSTS.DEFAULT_BASE;
@@ -48,30 +50,24 @@ export type PromptOrSeparator = RepoPrompt | Separator;
48
50
  export type RepoPrompts = Array<PromptOrSeparator>;
49
51
 
50
52
  export function makeReposPretty(base: string) {
51
- return function (
52
- arg: [
53
- string,
54
- { role: Utils.roles.Roles | Record<string, Utils.roles.Roles> }
55
- ]
56
- ): RepoPrompt {
57
- const [repoName, { role }] = arg;
53
+ return function ({ name, domain, role }: Repository): RepoPrompt {
58
54
  const address = new URL(base);
59
- address.hostname = `${repoName}.${address.hostname}`;
55
+ address.hostname = `${domain}.${address.hostname}`;
60
56
  if (Utils.roles.canUpdateCustomTypes(role) === false) {
61
57
  return {
62
58
  name: `${Utils.purple.dim("Use")} ${Utils.bold.dim(
63
- repoName
59
+ name
64
60
  )} ${Utils.purple.dim(`"${address.hostname}"`)}`,
65
- value: repoName,
61
+ value: domain,
66
62
  disabled: "Unauthorized",
67
63
  };
68
64
  }
69
65
 
70
66
  return {
71
- name: `${Utils.purple("Use")} ${Utils.bold(repoName)} ${Utils.purple(
67
+ name: `${Utils.purple("Use")} ${Utils.bold(name)} ${Utils.purple(
72
68
  `"${address.hostname}"`
73
69
  )}`,
74
- value: repoName,
70
+ value: name,
75
71
  };
76
72
  };
77
73
  }
@@ -97,7 +93,7 @@ export function maybeStickTheRepoToTheTopOfTheList(repoName?: string | null) {
97
93
  }
98
94
 
99
95
  export function sortReposForPrompt(
100
- repos: RepoData,
96
+ repos: Repositories,
101
97
  base: string,
102
98
  cwd: string
103
99
  ): RepoPrompts {
@@ -110,7 +106,7 @@ export function sortReposForPrompt(
110
106
 
111
107
  const maybeConfiguredRepoName = FileSystem.maybeRepoNameFromSMFile(cwd, base);
112
108
 
113
- return Object.entries(repos)
109
+ return repos
114
110
  .reverse()
115
111
  .map(makeReposPretty(base))
116
112
  .reduce(maybeStickTheRepoToTheTopOfTheList(maybeConfiguredRepoName), [
@@ -120,13 +116,14 @@ export function sortReposForPrompt(
120
116
  }
121
117
 
122
118
  export async function maybeExistingRepo(
123
- cookie: string,
119
+ cookies: string,
124
120
  cwd: string,
125
121
  base = DEFAULT_BASE
126
122
  ): Promise<{ name: string; existing: boolean }> {
127
- const repos = await Communication.listRepositories(cookie, base);
123
+ const token = parsePrismicAuthToken(cookies);
124
+ const repos = await Communication.listRepositories(token);
128
125
 
129
- if (Object.keys(repos).length === 0) {
126
+ if (repos.length === 0) {
130
127
  const name = await promptForRepoName(base);
131
128
  return { existing: false, name };
132
129
  }
@@ -0,0 +1,66 @@
1
+ import { Utils, FileSystem } from "@slicemachine/core";
2
+ import { execCommand } from "../utils";
3
+
4
+ export type Dependency = string | { name: string; version: string };
5
+ export const Dependencies = {
6
+ fromPkgFormat(
7
+ pkgDeps: Record<string, string> | undefined
8
+ ): ReadonlyArray<Dependency> | undefined {
9
+ if (!pkgDeps) return;
10
+
11
+ return Object.entries(pkgDeps).map(([name, version]) => ({
12
+ name,
13
+ version,
14
+ }));
15
+ },
16
+ };
17
+ function formatDeps(dependencies: ReadonlyArray<Dependency>): string {
18
+ return dependencies
19
+ .map((dep) => {
20
+ if (typeof dep === "string") return dep;
21
+ return `${dep.name}@${dep.version}`;
22
+ })
23
+ .join(" ");
24
+ }
25
+
26
+ export interface PackageManager {
27
+ install(dependencies: ReadonlyArray<Dependency>): Promise<{ stderr: string }>;
28
+ installDev(
29
+ dependencies: ReadonlyArray<Dependency>
30
+ ): Promise<{ stderr: string }>;
31
+ }
32
+
33
+ export const PackageManager = {
34
+ get(cwd: string): PackageManager {
35
+ if (Utils.Files.exists(FileSystem.YarnLockPath(cwd))) {
36
+ return Yarn;
37
+ }
38
+ return Npm;
39
+ },
40
+ };
41
+
42
+ export const Yarn: PackageManager = {
43
+ install(
44
+ dependencies: ReadonlyArray<Dependency>
45
+ ): Promise<{ stderr: string }> {
46
+ return execCommand(`yarn add ${formatDeps(dependencies)}`);
47
+ },
48
+ installDev(
49
+ dependencies: ReadonlyArray<Dependency>
50
+ ): Promise<{ stderr: string }> {
51
+ return execCommand(`yarn add --dev ${formatDeps(dependencies)}`);
52
+ },
53
+ };
54
+
55
+ export const Npm: PackageManager = {
56
+ install(
57
+ dependencies: ReadonlyArray<Dependency>
58
+ ): Promise<{ stderr: string }> {
59
+ return execCommand(`npm i --save ${formatDeps(dependencies)}`);
60
+ },
61
+ installDev(
62
+ dependencies: ReadonlyArray<Dependency>
63
+ ): Promise<{ stderr: string }> {
64
+ return execCommand(`npm i --save-dev ${formatDeps(dependencies)}`);
65
+ },
66
+ };
@@ -1,15 +1,15 @@
1
1
  import util from "util";
2
2
  import { exec } from "child_process";
3
3
 
4
- export function findArgument(args: string[], name: string): string | null {
4
+ export function findArgument(args: string[], name: string): string | undefined {
5
5
  const flagIndex: number = args.indexOf(`--${name}`);
6
6
 
7
- if (flagIndex === -1) return null;
8
- if (args.length < flagIndex + 2) return null;
7
+ if (flagIndex === -1) return;
8
+ if (args.length < flagIndex + 2) return;
9
9
 
10
10
  const flagValue = args[flagIndex + 1];
11
11
 
12
- if (flagValue.startsWith("--")) return null;
12
+ if (flagValue.startsWith("--")) return;
13
13
  return flagValue;
14
14
  }
15
15
 
@@ -0,0 +1,57 @@
1
+ /*
2
+ * DUPLICATION
3
+ * this file is a duplication of ServerTracker in sm-ui
4
+ * this duplication has been done on purpose to simplify the merge if init becomes part of sm-ui
5
+ * or if we decide to share the tracker implementation from a lib, but it'll need some refactoring
6
+ * Duplication means no entanglement so don't merge this with the other implem and keep the structure.
7
+ */
8
+
9
+ import ServerAnalytics from "analytics-node";
10
+
11
+ export enum EventType {
12
+ DownloadLibrary = "SliceMachine Download Library",
13
+ }
14
+
15
+ export class Tracker {
16
+ constructor(
17
+ readonly analytics: ServerAnalytics,
18
+ readonly repo: string,
19
+ readonly identifier: { userId: string } | { anonymousId: string },
20
+ readonly tracking = true
21
+ ) {}
22
+
23
+ static build(
24
+ writeKey: string,
25
+ repo: string | undefined,
26
+ identifier: { userId: string } | { anonymousId: string },
27
+ tracking = true
28
+ ): Tracker | undefined {
29
+ try {
30
+ if (!repo) return;
31
+ const analytics = new ServerAnalytics(writeKey);
32
+ return new Tracker(analytics, repo, identifier, tracking);
33
+ } catch (error) {
34
+ console.warn(error);
35
+ return;
36
+ }
37
+ }
38
+
39
+ private trackEvent(
40
+ eventType: EventType,
41
+ attributes: Record<string, unknown> = {}
42
+ ): void {
43
+ this.tracking &&
44
+ this.analytics.track({
45
+ event: eventType,
46
+ ...this.identifier,
47
+ properties: attributes,
48
+ });
49
+ }
50
+
51
+ Track = {
52
+ // not called, for demo only
53
+ downloadLibrary: (library: string): void => {
54
+ this.trackEvent(EventType.DownloadLibrary, { library });
55
+ },
56
+ };
57
+ }