@slicemachine/init 1.0.2-alpha.36 → 1.0.2-alpha.37

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/build/index.js CHANGED
@@ -6,6 +6,7 @@ const tracker_1 = require("./utils/tracker");
6
6
  const steps_1 = require("./steps");
7
7
  const utils_1 = require("./utils");
8
8
  async function init() {
9
+ var _a;
9
10
  const cwd = (0, utils_1.findArgument)(process.argv, "cwd") || process.cwd();
10
11
  const base = (0, utils_1.findArgument)(process.argv, "base") || core_1.Utils.CONSTS.DEFAULT_BASE;
11
12
  const lib = (0, utils_1.findArgument)(process.argv, "library");
@@ -22,9 +23,11 @@ async function init() {
22
23
  if (!existing) {
23
24
  await (0, steps_1.createRepository)(name, frameworkResult.value, config);
24
25
  }
25
- const tracker = tracker_1.Tracker.build("JfTfmHaATChc4xueS7RcCBsixI71dJIJ", name, {
26
- userId: user.userId,
27
- }, isTrackingAvailable);
26
+ const tracker = ((_a = user.profile) === null || _a === void 0 ? void 0 : _a.shortId)
27
+ ? tracker_1.Tracker.build("JfTfmHaATChc4xueS7RcCBsixI71dJIJ", name, {
28
+ userId: user.profile.shortId,
29
+ }, isTrackingAvailable)
30
+ : undefined;
28
31
  await (0, steps_1.installRequiredDependencies)(cwd, frameworkResult.value);
29
32
  const sliceLibPath = lib
30
33
  ? await (0, steps_1.installLib)(tracker, cwd, lib, branch)
@@ -41,4 +44,4 @@ catch (error) {
41
44
  else
42
45
  console.error(error);
43
46
  }
44
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBRUEsNkNBQXVEO0FBQ3ZELDZDQUEwQztBQUMxQyxtQ0FVaUI7QUFDakIsbUNBQXVDO0FBRXZDLEtBQUssVUFBVSxJQUFJO0lBQ2pCLE1BQU0sR0FBRyxHQUFHLElBQUEsb0JBQVksRUFBQyxPQUFPLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxJQUFJLE9BQU8sQ0FBQyxHQUFHLEVBQUUsQ0FBQztJQUMvRCxNQUFNLElBQUksR0FBRyxJQUFBLG9CQUFZLEVBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsSUFBSSxZQUFLLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQztJQUM3RSxNQUFNLEdBQUcsR0FBdUIsSUFBQSxvQkFBWSxFQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsU0FBUyxDQUFDLENBQUM7SUFDdEUsTUFBTSxNQUFNLEdBQXVCLElBQUEsb0JBQVksRUFBQyxPQUFPLENBQUMsSUFBSSxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQ3hFLE1BQU0sbUJBQW1CLEdBQ3ZCLElBQUEsb0JBQVksRUFBQyxPQUFPLENBQUMsSUFBSSxFQUFFLFVBQVUsQ0FBQyxLQUFLLE9BQU8sQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7SUFFcEUsT0FBTyxDQUFDLEdBQUcsQ0FDVCxZQUFLLENBQUMsTUFBTSxDQUNWLG9FQUFvRSxDQUNyRSxDQUNGLENBQUM7SUFHRixJQUFBLG1CQUFXLEVBQUMsR0FBRyxDQUFDLENBQUM7SUFHakIsTUFBTSxJQUFJLEdBQUcsTUFBTSxJQUFBLHFCQUFhLEVBQUMsSUFBSSxDQUFDLENBQUM7SUFDdkMsSUFBSSxDQUFDLElBQUk7UUFBRSxNQUFNLElBQUksS0FBSyxDQUFDLCtCQUErQixDQUFDLENBQUM7SUFHNUQsTUFBTSxNQUFNLEdBQUcsaUJBQVUsQ0FBQywwQkFBMEIsQ0FBQyxHQUFHLEVBQUUsQ0FBQztJQUczRCxNQUFNLGVBQWUsR0FBRyxNQUFNLElBQUEsdUJBQWUsRUFBQyxHQUFHLENBQUMsQ0FBQztJQUduRCxNQUFNLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxHQUFHLE1BQU0sSUFBQSx5QkFBaUIsRUFDaEQsTUFBTSxDQUFDLE9BQU8sRUFDZCxHQUFHLEVBQ0gsTUFBTSxDQUFDLElBQUksQ0FDWixDQUFDO0lBRUYsSUFBSSxDQUFDLFFBQVEsRUFBRTtRQUNiLE1BQU0sSUFBQSx3QkFBZ0IsRUFBQyxJQUFJLEVBQUUsZUFBZSxDQUFDLEtBQUssRUFBRSxNQUFNLENBQUMsQ0FBQztLQUM3RDtJQUVELE1BQU0sT0FBTyxHQUFHLGlCQUFPLENBQUMsS0FBSyxDQUMzQixrQ0FBa0MsRUFDbEMsSUFBSSxFQUNKO1FBQ0UsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNO0tBQ3BCLEVBQ0QsbUJBQW1CLENBQ3BCLENBQUM7SUFHRixNQUFNLElBQUEsbUNBQTJCLEVBQUMsR0FBRyxFQUFFLGVBQWUsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUU5RCxNQUFNLFlBQVksR0FBRyxHQUFHO1FBQ3RCLENBQUMsQ0FBQyxNQUFNLElBQUEsa0JBQVUsRUFBQyxPQUFPLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxNQUFNLENBQUM7UUFDN0MsQ0FBQyxDQUFDLFNBQVMsQ0FBQztJQUdkLElBQUEsd0JBQWdCLEVBQ2QsR0FBRyxFQUNILElBQUksRUFDSixJQUFJLEVBQ0osZUFBZSxFQUNmLFlBQVksRUFDWixtQkFBbUIsQ0FDcEIsQ0FBQztJQUdGLElBQUEsMkJBQW1CLEVBQUMsR0FBRyxDQUFDLENBQUM7QUFDM0IsQ0FBQztBQUVELElBQUk7SUFDRixLQUFLLElBQUksRUFBRSxDQUFDO0NBQ2I7QUFBQyxPQUFPLEtBQUssRUFBRTtJQUNkLElBQUksS0FBSyxZQUFZLEtBQUs7UUFBRSxZQUFLLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQzs7UUFDdkQsT0FBTyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztDQUMzQiJ9
47
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBRUEsNkNBQXVEO0FBQ3ZELDZDQUEwQztBQUMxQyxtQ0FVaUI7QUFDakIsbUNBQXVDO0FBRXZDLEtBQUssVUFBVSxJQUFJOztJQUNqQixNQUFNLEdBQUcsR0FBRyxJQUFBLG9CQUFZLEVBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsSUFBSSxPQUFPLENBQUMsR0FBRyxFQUFFLENBQUM7SUFDL0QsTUFBTSxJQUFJLEdBQUcsSUFBQSxvQkFBWSxFQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLElBQUksWUFBSyxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUM7SUFDN0UsTUFBTSxHQUFHLEdBQXVCLElBQUEsb0JBQVksRUFBQyxPQUFPLENBQUMsSUFBSSxFQUFFLFNBQVMsQ0FBQyxDQUFDO0lBQ3RFLE1BQU0sTUFBTSxHQUF1QixJQUFBLG9CQUFZLEVBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxRQUFRLENBQUMsQ0FBQztJQUN4RSxNQUFNLG1CQUFtQixHQUN2QixJQUFBLG9CQUFZLEVBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxVQUFVLENBQUMsS0FBSyxPQUFPLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0lBRXBFLE9BQU8sQ0FBQyxHQUFHLENBQ1QsWUFBSyxDQUFDLE1BQU0sQ0FDVixvRUFBb0UsQ0FDckUsQ0FDRixDQUFDO0lBR0YsSUFBQSxtQkFBVyxFQUFDLEdBQUcsQ0FBQyxDQUFDO0lBR2pCLE1BQU0sSUFBSSxHQUFHLE1BQU0sSUFBQSxxQkFBYSxFQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3ZDLElBQUksQ0FBQyxJQUFJO1FBQUUsTUFBTSxJQUFJLEtBQUssQ0FBQywrQkFBK0IsQ0FBQyxDQUFDO0lBRzVELE1BQU0sTUFBTSxHQUFHLGlCQUFVLENBQUMsMEJBQTBCLENBQUMsR0FBRyxFQUFFLENBQUM7SUFHM0QsTUFBTSxlQUFlLEdBQUcsTUFBTSxJQUFBLHVCQUFlLEVBQUMsR0FBRyxDQUFDLENBQUM7SUFHbkQsTUFBTSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsR0FBRyxNQUFNLElBQUEseUJBQWlCLEVBQ2hELE1BQU0sQ0FBQyxPQUFPLEVBQ2QsR0FBRyxFQUNILE1BQU0sQ0FBQyxJQUFJLENBQ1osQ0FBQztJQUVGLElBQUksQ0FBQyxRQUFRLEVBQUU7UUFDYixNQUFNLElBQUEsd0JBQWdCLEVBQUMsSUFBSSxFQUFFLGVBQWUsQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFDLENBQUM7S0FDN0Q7SUFFRCxNQUFNLE9BQU8sR0FBRyxDQUFBLE1BQUEsSUFBSSxDQUFDLE9BQU8sMENBQUUsT0FBTztRQUNuQyxDQUFDLENBQUMsaUJBQU8sQ0FBQyxLQUFLLENBQ1gsa0NBQWtDLEVBQ2xDLElBQUksRUFDSjtZQUNFLE1BQU0sRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU87U0FDN0IsRUFDRCxtQkFBbUIsQ0FDcEI7UUFDSCxDQUFDLENBQUMsU0FBUyxDQUFDO0lBR2QsTUFBTSxJQUFBLG1DQUEyQixFQUFDLEdBQUcsRUFBRSxlQUFlLENBQUMsS0FBSyxDQUFDLENBQUM7SUFFOUQsTUFBTSxZQUFZLEdBQUcsR0FBRztRQUN0QixDQUFDLENBQUMsTUFBTSxJQUFBLGtCQUFVLEVBQUMsT0FBTyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsTUFBTSxDQUFDO1FBQzdDLENBQUMsQ0FBQyxTQUFTLENBQUM7SUFHZCxJQUFBLHdCQUFnQixFQUNkLEdBQUcsRUFDSCxJQUFJLEVBQ0osSUFBSSxFQUNKLGVBQWUsRUFDZixZQUFZLEVBQ1osbUJBQW1CLENBQ3BCLENBQUM7SUFHRixJQUFBLDJCQUFtQixFQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQzNCLENBQUM7QUFFRCxJQUFJO0lBQ0YsS0FBSyxJQUFJLEVBQUUsQ0FBQztDQUNiO0FBQUMsT0FBTyxLQUFLLEVBQUU7SUFDZCxJQUFJLEtBQUssWUFBWSxLQUFLO1FBQUUsWUFBSyxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7O1FBQ3ZELE9BQU8sQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7Q0FDM0IifQ==
@@ -2,17 +2,19 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.loginOrBypass = void 0;
4
4
  const core_1 = require("@slicemachine/core");
5
+ const communication_1 = require("../utils/communication");
5
6
  async function loginOrBypass(base) {
6
- const user = await core_1.Auth.validateSession(base);
7
+ const user = await (0, communication_1.validateSessionAndGetProfile)(base).catch((err) => console.log(err));
7
8
  if (user) {
8
- core_1.Utils.writeCheck(`Logged in as ${core_1.Utils.bold(user.email)}`);
9
+ const email = user.info.email;
10
+ core_1.Utils.writeCheck(`Logged in as ${core_1.Utils.bold(email)}`);
9
11
  return user;
10
12
  }
11
13
  else {
12
14
  await core_1.Auth.login(base);
13
- const user = await core_1.Auth.validateSession(base);
15
+ const user = await (0, communication_1.validateSessionAndGetProfile)(base);
14
16
  return user;
15
17
  }
16
18
  }
17
19
  exports.loginOrBypass = loginOrBypass;
18
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9naW5PckJ5cGFzcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zdGVwcy9sb2dpbk9yQnlwYXNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDZDQUFpRDtBQUcxQyxLQUFLLFVBQVUsYUFBYSxDQUFDLElBQVk7SUFDOUMsTUFBTSxJQUFJLEdBQUcsTUFBTSxXQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzlDLElBQUksSUFBSSxFQUFFO1FBQ1IsWUFBSyxDQUFDLFVBQVUsQ0FBQyxnQkFBZ0IsWUFBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQzNELE9BQU8sSUFBSSxDQUFDO0tBQ2I7U0FBTTtRQUNMLE1BQU0sV0FBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN2QixNQUFNLElBQUksR0FBRyxNQUFNLFdBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDOUMsT0FBTyxJQUFJLENBQUM7S0FDYjtBQUNILENBQUM7QUFWRCxzQ0FVQyJ9
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9naW5PckJ5cGFzcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zdGVwcy9sb2dpbk9yQnlwYXNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDZDQUFnRTtBQUNoRSwwREFHZ0M7QUFFekIsS0FBSyxVQUFVLGFBQWEsQ0FBQyxJQUFZO0lBSTlDLE1BQU0sSUFBSSxHQUFHLE1BQU0sSUFBQSw0Q0FBNEIsRUFBQyxJQUFJLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUNsRSxPQUFPLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUNqQixDQUFDO0lBQ0YsSUFBSSxJQUFJLEVBQUU7UUFDUixNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQztRQUM5QixZQUFLLENBQUMsVUFBVSxDQUFDLGdCQUFnQixZQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUN0RCxPQUFPLElBQUksQ0FBQztLQUNiO1NBQU07UUFDTCxNQUFNLFdBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDdkIsTUFBTSxJQUFJLEdBQUcsTUFBTSxJQUFBLDRDQUE0QixFQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3RELE9BQU8sSUFBSSxDQUFDO0tBQ2I7QUFDSCxDQUFDO0FBaEJELHNDQWdCQyJ9
@@ -0,0 +1,76 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
+ }) : (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ o[k2] = m[k];
8
+ }));
9
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
10
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
11
+ }) : function(o, v) {
12
+ o["default"] = v;
13
+ });
14
+ var __importStar = (this && this.__importStar) || function (mod) {
15
+ if (mod && mod.__esModule) return mod;
16
+ var result = {};
17
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
18
+ __setModuleDefault(result, mod);
19
+ return result;
20
+ };
21
+ var __importDefault = (this && this.__importDefault) || function (mod) {
22
+ return (mod && mod.__esModule) ? mod : { "default": mod };
23
+ };
24
+ Object.defineProperty(exports, "__esModule", { value: true });
25
+ exports.validateSessionAndGetProfile = exports.getUserProfile = void 0;
26
+ const axios_1 = __importDefault(require("axios"));
27
+ const t = __importStar(require("io-ts"));
28
+ const function_1 = require("fp-ts/function");
29
+ const Either_1 = require("fp-ts/Either");
30
+ const core_1 = require("@slicemachine/core");
31
+ const UserProfile = t.exact(t.type({
32
+ userId: t.string,
33
+ shortId: t.string,
34
+ email: t.string,
35
+ firstName: t.string,
36
+ lastName: t.string,
37
+ }));
38
+ async function getUserProfile(cookies, base = core_1.Utils.CONSTS.DEFAULT_BASE) {
39
+ const url = new URL(base);
40
+ url.hostname = `user.${url.hostname}`;
41
+ url.pathname = "profile";
42
+ const endpoint = url.toString();
43
+ const token = core_1.Utils.Cookie.parsePrismicAuthToken(cookies);
44
+ return axios_1.default
45
+ .get(endpoint, {
46
+ headers: {
47
+ Authorization: `Bearer Token ${token}`,
48
+ },
49
+ })
50
+ .then((res) => (0, function_1.pipe)(UserProfile.decode(res.data), (0, Either_1.fold)(() => {
51
+ throw new Error("Can't parse user profile");
52
+ }, (data) => data)));
53
+ }
54
+ exports.getUserProfile = getUserProfile;
55
+ async function validateSessionAndGetProfile(base = core_1.Utils.CONSTS.DEFAULT_BASE) {
56
+ const config = core_1.FileSystem.PrismicSharedConfigManager.get();
57
+ if (!config.cookies.length)
58
+ return Promise.resolve(null);
59
+ if (base != config.base)
60
+ return Promise.resolve(null);
61
+ try {
62
+ const info = await core_1.Communication.validateSession(config.cookies, base);
63
+ const profile = await getUserProfile(config.cookies, base).catch(() => null);
64
+ if (profile === null || profile === void 0 ? void 0 : profile.shortId) {
65
+ core_1.FileSystem.PrismicSharedConfigManager.setProperties({
66
+ shortId: profile.shortId,
67
+ });
68
+ }
69
+ return { info, profile };
70
+ }
71
+ catch {
72
+ return null;
73
+ }
74
+ }
75
+ exports.validateSessionAndGetProfile = validateSessionAndGetProfile;
76
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbXVuaWNhdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlscy9jb21tdW5pY2F0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxrREFBMEI7QUFDMUIseUNBQTJCO0FBQzNCLDZDQUFzQztBQUN0Qyx5Q0FBb0M7QUFDcEMsNkNBQXNFO0FBRXRFLE1BQU0sV0FBVyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQ3pCLENBQUMsQ0FBQyxJQUFJLENBQUM7SUFDTCxNQUFNLEVBQUUsQ0FBQyxDQUFDLE1BQU07SUFDaEIsT0FBTyxFQUFFLENBQUMsQ0FBQyxNQUFNO0lBQ2pCLEtBQUssRUFBRSxDQUFDLENBQUMsTUFBTTtJQUNmLFNBQVMsRUFBRSxDQUFDLENBQUMsTUFBTTtJQUNuQixRQUFRLEVBQUUsQ0FBQyxDQUFDLE1BQU07Q0FDbkIsQ0FBQyxDQUNILENBQUM7QUFJSyxLQUFLLFVBQVUsY0FBYyxDQUNsQyxPQUFlLEVBQ2YsSUFBSSxHQUFHLFlBQUssQ0FBQyxNQUFNLENBQUMsWUFBWTtJQUloQyxNQUFNLEdBQUcsR0FBRyxJQUFJLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMxQixHQUFHLENBQUMsUUFBUSxHQUFHLFFBQVEsR0FBRyxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ3RDLEdBQUcsQ0FBQyxRQUFRLEdBQUcsU0FBUyxDQUFDO0lBRXpCLE1BQU0sUUFBUSxHQUFHLEdBQUcsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUNoQyxNQUFNLEtBQUssR0FBRyxZQUFLLENBQUMsTUFBTSxDQUFDLHFCQUFxQixDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBRTFELE9BQU8sZUFBSztTQUNULEdBQUcsQ0FBYyxRQUFRLEVBQUU7UUFDMUIsT0FBTyxFQUFFO1lBQ1AsYUFBYSxFQUFFLGdCQUFnQixLQUFLLEVBQUU7U0FDdkM7S0FDRixDQUFDO1NBQ0QsSUFBSSxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FDWixJQUFBLGVBQUksRUFDRixXQUFXLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFDNUIsSUFBQSxhQUFJLEVBQ0YsR0FBRyxFQUFFO1FBQ0gsTUFBTSxJQUFJLEtBQUssQ0FBQywwQkFBMEIsQ0FBQyxDQUFDO0lBQzlDLENBQUMsRUFDRCxDQUFDLElBQWlCLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FDNUIsQ0FDRixDQUNGLENBQUM7QUFDTixDQUFDO0FBOUJELHdDQThCQztBQUVNLEtBQUssVUFBVSw0QkFBNEIsQ0FDaEQsSUFBSSxHQUFHLFlBQUssQ0FBQyxNQUFNLENBQUMsWUFBWTtJQUtoQyxNQUFNLE1BQU0sR0FBRyxpQkFBVSxDQUFDLDBCQUEwQixDQUFDLEdBQUcsRUFBRSxDQUFDO0lBRTNELElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLE1BQU07UUFBRSxPQUFPLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDekQsSUFBSSxJQUFJLElBQUksTUFBTSxDQUFDLElBQUk7UUFBRSxPQUFPLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7SUFFdEQsSUFBSTtRQUNGLE1BQU0sSUFBSSxHQUFHLE1BQU0sb0JBQWEsQ0FBQyxlQUFlLENBQUMsTUFBTSxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsQ0FBQztRQUN2RSxNQUFNLE9BQU8sR0FBRyxNQUFNLGNBQWMsQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxDQUFDLEtBQUssQ0FDOUQsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUNYLENBQUM7UUFDRixJQUFJLE9BQU8sYUFBUCxPQUFPLHVCQUFQLE9BQU8sQ0FBRSxPQUFPLEVBQUU7WUFDcEIsaUJBQVUsQ0FBQywwQkFBMEIsQ0FBQyxhQUFhLENBQUM7Z0JBQ2xELE9BQU8sRUFBRSxPQUFPLENBQUMsT0FBTzthQUN6QixDQUFDLENBQUM7U0FDSjtRQUNELE9BQU8sRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLENBQUM7S0FDMUI7SUFBQyxNQUFNO1FBQ04sT0FBTyxJQUFJLENBQUM7S0FDYjtBQUNILENBQUM7QUF6QkQsb0VBeUJDIn0=
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@slicemachine/init",
3
- "version": "1.0.2-alpha.36",
3
+ "version": "1.0.2-alpha.37",
4
4
  "license": "MIT",
5
5
  "description": "The easiest way to add Slice Machine to your project",
6
6
  "bin": {
@@ -46,7 +46,7 @@
46
46
  "typescript": "^4.4.3"
47
47
  },
48
48
  "dependencies": {
49
- "@slicemachine/core": "1.0.2-alpha.36",
49
+ "@slicemachine/core": "1.0.2-alpha.37",
50
50
  "adm-zip": "^0.5.9",
51
51
  "analytics-node": "^6.0.0",
52
52
  "axios": "^0.24.0",
@@ -56,5 +56,5 @@
56
56
  "io-ts": "^2.2.16",
57
57
  "tmp": "^0.2.1"
58
58
  },
59
- "gitHead": "865d17d04b4ec35b2f2aae4ff0e1c3cbafdee9fc"
59
+ "gitHead": "3905fa35d8f027fe7ff94c548ac43cb43ea73871"
60
60
  }
package/src/index.ts CHANGED
@@ -53,14 +53,16 @@ async function init() {
53
53
  await createRepository(name, frameworkResult.value, config);
54
54
  }
55
55
 
56
- const tracker = Tracker.build(
57
- "JfTfmHaATChc4xueS7RcCBsixI71dJIJ",
58
- name,
59
- {
60
- userId: user.userId,
61
- },
62
- isTrackingAvailable
63
- );
56
+ const tracker = user.profile?.shortId
57
+ ? Tracker.build(
58
+ "JfTfmHaATChc4xueS7RcCBsixI71dJIJ",
59
+ name,
60
+ {
61
+ userId: user.profile.shortId,
62
+ },
63
+ isTrackingAvailable
64
+ )
65
+ : undefined;
64
66
 
65
67
  // install the required dependencies in the project.
66
68
  await installRequiredDependencies(cwd, frameworkResult.value);
@@ -1,14 +1,23 @@
1
- import { Utils, Auth } from "@slicemachine/core";
2
- import { UserInfo } from "@slicemachine/core/build/src/core/communication";
1
+ import { Utils, Communication, Auth } from "@slicemachine/core";
2
+ import {
3
+ validateSessionAndGetProfile,
4
+ UserProfile,
5
+ } from "../utils/communication";
3
6
 
4
- export async function loginOrBypass(base: string): Promise<UserInfo | null> {
5
- const user = await Auth.validateSession(base);
7
+ export async function loginOrBypass(base: string): Promise<{
8
+ info: Communication.UserInfo;
9
+ profile: UserProfile | null;
10
+ } | null> {
11
+ const user = await validateSessionAndGetProfile(base).catch((err) =>
12
+ console.log(err)
13
+ );
6
14
  if (user) {
7
- Utils.writeCheck(`Logged in as ${Utils.bold(user.email)}`);
15
+ const email = user.info.email;
16
+ Utils.writeCheck(`Logged in as ${Utils.bold(email)}`);
8
17
  return user;
9
18
  } else {
10
19
  await Auth.login(base);
11
- const user = await Auth.validateSession(base);
20
+ const user = await validateSessionAndGetProfile(base);
12
21
  return user;
13
22
  }
14
23
  }
@@ -0,0 +1,76 @@
1
+ import axios from "axios";
2
+ import * as t from "io-ts";
3
+ import { pipe } from "fp-ts/function";
4
+ import { fold } from "fp-ts/Either";
5
+ import { Utils, Communication, FileSystem } from "@slicemachine/core";
6
+
7
+ const UserProfile = t.exact(
8
+ t.type({
9
+ userId: t.string,
10
+ shortId: t.string,
11
+ email: t.string,
12
+ firstName: t.string,
13
+ lastName: t.string,
14
+ })
15
+ );
16
+
17
+ export type UserProfile = t.TypeOf<typeof UserProfile>;
18
+
19
+ export async function getUserProfile(
20
+ cookies: string,
21
+ base = Utils.CONSTS.DEFAULT_BASE
22
+ ): Promise<UserProfile> {
23
+ // note the auth server also provides a userId
24
+
25
+ const url = new URL(base);
26
+ url.hostname = `user.${url.hostname}`;
27
+ url.pathname = "profile";
28
+
29
+ const endpoint = url.toString();
30
+ const token = Utils.Cookie.parsePrismicAuthToken(cookies);
31
+
32
+ return axios
33
+ .get<UserProfile>(endpoint, {
34
+ headers: {
35
+ Authorization: `Bearer Token ${token}`,
36
+ },
37
+ })
38
+ .then((res) =>
39
+ pipe(
40
+ UserProfile.decode(res.data),
41
+ fold<t.Errors, UserProfile, UserProfile>(
42
+ () => {
43
+ throw new Error("Can't parse user profile");
44
+ },
45
+ (data: UserProfile) => data
46
+ )
47
+ )
48
+ );
49
+ }
50
+
51
+ export async function validateSessionAndGetProfile(
52
+ base = Utils.CONSTS.DEFAULT_BASE
53
+ ): Promise<{
54
+ info: Communication.UserInfo;
55
+ profile: UserProfile | null;
56
+ } | null> {
57
+ const config = FileSystem.PrismicSharedConfigManager.get();
58
+
59
+ if (!config.cookies.length) return Promise.resolve(null); // default config, logged out.
60
+ if (base != config.base) return Promise.resolve(null); // not the same base so it doesn't
61
+
62
+ try {
63
+ const info = await Communication.validateSession(config.cookies, base);
64
+ const profile = await getUserProfile(config.cookies, base).catch(
65
+ () => null
66
+ );
67
+ if (profile?.shortId) {
68
+ FileSystem.PrismicSharedConfigManager.setProperties({
69
+ shortId: profile.shortId,
70
+ });
71
+ }
72
+ return { info, profile };
73
+ } catch {
74
+ return null;
75
+ }
76
+ }