@slicemachine/manager 0.18.0 → 0.18.1-alpha.aa-git-staging-app.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/client/index.d.ts +1 -1
- package/dist/client.cjs +1 -0
- package/dist/client.cjs.map +1 -1
- package/dist/client.js +3 -2
- package/dist/errors.cjs +11 -0
- package/dist/errors.cjs.map +1 -1
- package/dist/errors.d.ts +5 -1
- package/dist/errors.js +12 -1
- package/dist/errors.js.map +1 -1
- package/dist/index.cjs +1 -0
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +2 -1
- package/dist/managers/BaseManager.cjs +3 -0
- package/dist/managers/BaseManager.cjs.map +1 -1
- package/dist/managers/BaseManager.d.ts +1 -0
- package/dist/managers/BaseManager.js +3 -0
- package/dist/managers/BaseManager.js.map +1 -1
- package/dist/managers/SliceMachineManager.cjs +9 -0
- package/dist/managers/SliceMachineManager.cjs.map +1 -1
- package/dist/managers/SliceMachineManager.d.ts +2 -0
- package/dist/managers/SliceMachineManager.js +9 -0
- package/dist/managers/SliceMachineManager.js.map +1 -1
- package/dist/managers/git/GitManager.cjs +21 -3
- package/dist/managers/git/GitManager.cjs.map +1 -1
- package/dist/managers/git/GitManager.d.ts +10 -7
- package/dist/managers/git/GitManager.js +22 -4
- package/dist/managers/git/GitManager.js.map +1 -1
- package/dist/managers/git/constants.cjs +7 -0
- package/dist/managers/git/constants.cjs.map +1 -0
- package/dist/managers/git/constants.d.ts +2 -0
- package/dist/managers/git/constants.js +7 -0
- package/dist/managers/git/constants.js.map +1 -0
- package/dist/managers/git/types.cjs +7 -0
- package/dist/managers/git/types.cjs.map +1 -0
- package/dist/managers/git/types.d.ts +7 -3
- package/dist/managers/git/types.js +7 -0
- package/dist/managers/git/types.js.map +1 -0
- package/package.json +4 -3
- package/src/client/index.ts +1 -0
- package/src/errors.ts +11 -1
- package/src/index.ts +1 -0
- package/src/managers/BaseManager.ts +4 -0
- package/src/managers/SliceMachineManager.ts +17 -0
- package/src/managers/git/GitManager.ts +46 -10
- package/src/managers/git/constants.ts +2 -0
- package/src/managers/git/types.ts +8 -3
package/dist/client/index.d.ts
CHANGED
|
@@ -3,5 +3,5 @@ export type { CreateSliceMachineManagerClientArgs, SliceMachineManagerClient, }
|
|
|
3
3
|
export type { SimulatorManagerReadSliceSimulatorSetupStep, SimulatorManagerReadSliceSimulatorSetupStepsReturnType, } from "../managers/simulator/SimulatorManager";
|
|
4
4
|
export type { Environment } from "../managers/prismicRepository/types";
|
|
5
5
|
export type { SliceMachineManagerPushSliceReturnType } from "../managers/slices/SlicesManager";
|
|
6
|
-
export { InternalError, NotFoundError, SliceMachineError, UnauthenticatedError, UnauthorizedError, UnexpectedDataError, isInternalError, isNotFoundError, isPluginError, isSliceMachineError, isUnauthenticatedError, isUnauthorizedError, isUnexpectedDataError, isInvalidActiveEnvironmentError, } from "../errors";
|
|
6
|
+
export { InternalError, NotFoundError, SliceMachineError, UnauthenticatedError, UnauthorizedError, UnexpectedDataError, isInternalError, isNotFoundError, isPluginError, isSliceMachineError, isUnauthenticatedError, isUnauthorizedError, isUnexpectedDataError, isInvalidActiveEnvironmentError, isUnsupportedError, } from "../errors";
|
|
7
7
|
export { DecodeError } from "../lib/DecodeError";
|
package/dist/client.cjs
CHANGED
|
@@ -18,5 +18,6 @@ exports.isSliceMachineError = errors.isSliceMachineError;
|
|
|
18
18
|
exports.isUnauthenticatedError = errors.isUnauthenticatedError;
|
|
19
19
|
exports.isUnauthorizedError = errors.isUnauthorizedError;
|
|
20
20
|
exports.isUnexpectedDataError = errors.isUnexpectedDataError;
|
|
21
|
+
exports.isUnsupportedError = errors.isUnsupportedError;
|
|
21
22
|
exports.DecodeError = DecodeError.DecodeError;
|
|
22
23
|
//# sourceMappingURL=client.cjs.map
|
package/dist/client.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"client.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;"}
|
package/dist/client.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { createSliceMachineManagerClient } from "./managers/createSliceMachineManagerClient.js";
|
|
2
|
-
import { InternalError, NotFoundError, SliceMachineError, UnauthenticatedError, UnauthorizedError, UnexpectedDataError, isInternalError, isInvalidActiveEnvironmentError, isNotFoundError, isPluginError, isSliceMachineError, isUnauthenticatedError, isUnauthorizedError, isUnexpectedDataError } from "./errors.js";
|
|
2
|
+
import { InternalError, NotFoundError, SliceMachineError, UnauthenticatedError, UnauthorizedError, UnexpectedDataError, isInternalError, isInvalidActiveEnvironmentError, isNotFoundError, isPluginError, isSliceMachineError, isUnauthenticatedError, isUnauthorizedError, isUnexpectedDataError, isUnsupportedError } from "./errors.js";
|
|
3
3
|
import { DecodeError } from "./lib/DecodeError.js";
|
|
4
4
|
export {
|
|
5
5
|
DecodeError,
|
|
@@ -17,6 +17,7 @@ export {
|
|
|
17
17
|
isSliceMachineError,
|
|
18
18
|
isUnauthenticatedError,
|
|
19
19
|
isUnauthorizedError,
|
|
20
|
-
isUnexpectedDataError
|
|
20
|
+
isUnexpectedDataError,
|
|
21
|
+
isUnsupportedError
|
|
21
22
|
};
|
|
22
23
|
//# sourceMappingURL=client.js.map
|
package/dist/errors.cjs
CHANGED
|
@@ -63,6 +63,12 @@ class InvalidActiveEnvironmentError extends SliceMachineError {
|
|
|
63
63
|
__publicField(this, "name", "SMInvalidActiveEnvironmentError");
|
|
64
64
|
}
|
|
65
65
|
}
|
|
66
|
+
class UnsupportedError extends SliceMachineError {
|
|
67
|
+
constructor() {
|
|
68
|
+
super(...arguments);
|
|
69
|
+
__publicField(this, "name", "SMUnsupportedError");
|
|
70
|
+
}
|
|
71
|
+
}
|
|
66
72
|
const isSliceMachineError = (error, name) => {
|
|
67
73
|
const isErrorInstance = error instanceof Error;
|
|
68
74
|
return name === void 0 ? isErrorInstance && error.name.startsWith("SM") : isErrorInstance && error.name === name;
|
|
@@ -88,6 +94,9 @@ const isPluginError = (error) => {
|
|
|
88
94
|
const isInvalidActiveEnvironmentError = (error) => {
|
|
89
95
|
return isSliceMachineError(error, "SMInvalidActiveEnvironmentError");
|
|
90
96
|
};
|
|
97
|
+
const isUnsupportedError = (error) => {
|
|
98
|
+
return isSliceMachineError(error, "SMUnsupportedError");
|
|
99
|
+
};
|
|
91
100
|
exports.InternalError = InternalError;
|
|
92
101
|
exports.InvalidActiveEnvironmentError = InvalidActiveEnvironmentError;
|
|
93
102
|
exports.NotFoundError = NotFoundError;
|
|
@@ -97,6 +106,7 @@ exports.SliceMachineError = SliceMachineError;
|
|
|
97
106
|
exports.UnauthenticatedError = UnauthenticatedError;
|
|
98
107
|
exports.UnauthorizedError = UnauthorizedError;
|
|
99
108
|
exports.UnexpectedDataError = UnexpectedDataError;
|
|
109
|
+
exports.UnsupportedError = UnsupportedError;
|
|
100
110
|
exports.isInternalError = isInternalError;
|
|
101
111
|
exports.isInvalidActiveEnvironmentError = isInvalidActiveEnvironmentError;
|
|
102
112
|
exports.isNotFoundError = isNotFoundError;
|
|
@@ -105,4 +115,5 @@ exports.isSliceMachineError = isSliceMachineError;
|
|
|
105
115
|
exports.isUnauthenticatedError = isUnauthenticatedError;
|
|
106
116
|
exports.isUnauthorizedError = isUnauthorizedError;
|
|
107
117
|
exports.isUnexpectedDataError = isUnexpectedDataError;
|
|
118
|
+
exports.isUnsupportedError = isUnsupportedError;
|
|
108
119
|
//# sourceMappingURL=errors.cjs.map
|
package/dist/errors.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.cjs","sources":["../../src/errors.ts"],"sourcesContent":["import { HookError } from \"@slicemachine/plugin-kit\";\n\nexport class SliceMachineError extends Error {\n\tname = \"SMSliceMachineError\";\n}\nexport class UnauthorizedError extends SliceMachineError {\n\tname = \"SMUnauthorizedError\" as const;\n}\nexport class UnauthenticatedError extends SliceMachineError {\n\tname = \"SMUnauthenticatedError\" as const;\n\tmessage = \"Authenticate before trying again.\";\n}\nexport class NotFoundError extends SliceMachineError {\n\tname = \"SMNotFoundError\" as const;\n}\nexport class UnexpectedDataError extends SliceMachineError {\n\tname = \"SMUnexpectedDataError\" as const;\n}\nexport class InternalError extends SliceMachineError {\n\tname = \"SMInternalError\" as const;\n}\nexport class PluginError extends SliceMachineError {\n\tname = \"SMPluginError\" as const;\n}\nexport class PluginHookResultError extends SliceMachineError {\n\tname = \"SMPluginHookResultError\" as const;\n\n\tconstructor(errors: HookError[]) {\n\t\tsuper(\n\t\t\t`${errors.length} error${\n\t\t\t\terrors.length === 1 ? \"\" : \"s\"\n\t\t\t} were returned by one or more plugins.`,\n\t\t\t{\n\t\t\t\tcause: errors,\n\t\t\t},\n\t\t);\n\t}\n}\nexport class InvalidActiveEnvironmentError extends SliceMachineError {\n\tname = \"SMInvalidActiveEnvironmentError\" as const;\n}\n\ntype SliceMachineErrorNames =\n\t| \"SMSliceMachineError\"\n\t| UnauthorizedError[\"name\"]\n\t| UnauthenticatedError[\"name\"]\n\t| NotFoundError[\"name\"]\n\t| UnexpectedDataError[\"name\"]\n\t| InternalError[\"name\"]\n\t| PluginError[\"name\"]\n\t| PluginHookResultError[\"name\"]\n\t| InvalidActiveEnvironmentError[\"name\"];\n\ntype ShallowSliceMachineError<TName extends SliceMachineErrorNames> = Error & {\n\tname: TName;\n};\n\nexport const isSliceMachineError = <TName extends SliceMachineErrorNames>(\n\terror: unknown,\n\tname?: TName,\n): error is TName extends string ? ShallowSliceMachineError<TName> : Error => {\n\tconst isErrorInstance = error instanceof Error;\n\n\treturn name === undefined\n\t\t? isErrorInstance && error.name.startsWith(\"SM\")\n\t\t: isErrorInstance && error.name === name;\n};\n\nexport const isUnauthorizedError = (\n\terror: unknown,\n): error is ShallowSliceMachineError<\"SMUnauthorizedError\"> => {\n\treturn isSliceMachineError(error, \"SMUnauthorizedError\");\n};\n\nexport const isUnauthenticatedError = (\n\terror: unknown,\n): error is ShallowSliceMachineError<\"SMUnauthenticatedError\"> => {\n\treturn isSliceMachineError(error, \"SMUnauthenticatedError\");\n};\n\nexport const isNotFoundError = (\n\terror: unknown,\n): error is ShallowSliceMachineError<\"SMNotFoundError\"> => {\n\treturn isSliceMachineError(error, \"SMNotFoundError\");\n};\n\nexport const isUnexpectedDataError = (\n\terror: unknown,\n): error is ShallowSliceMachineError<\"SMUnexpectedDataError\"> => {\n\treturn isSliceMachineError(error, \"SMUnexpectedDataError\");\n};\n\nexport const isInternalError = (\n\terror: unknown,\n): error is ShallowSliceMachineError<\"SMInternalError\"> => {\n\treturn isSliceMachineError(error, \"SMInternalError\");\n};\n\nexport const isPluginError = (\n\terror: unknown,\n): error is ShallowSliceMachineError<\"SMPluginError\"> => {\n\treturn isSliceMachineError(error, \"SMPluginError\");\n};\n\nexport const isInvalidActiveEnvironmentError = (\n\terror: unknown,\n): error is ShallowSliceMachineError<\"SMInvalidActiveEnvironmentError\"> => {\n\treturn isSliceMachineError(error, \"SMInvalidActiveEnvironmentError\");\n};\n"],"names":[],"mappings":";;;;;;;;AAEM,MAAO,0BAA0B,MAAK;AAAA,EAAtC;AAAA;AACL,gCAAO;AAAA;AACP;AACK,MAAO,0BAA0B,kBAAiB;AAAA,EAAlD;AAAA;AACL,gCAAO;AAAA;AACP;AACK,MAAO,6BAA6B,kBAAiB;AAAA,EAArD;AAAA;AACL,gCAAO;AACP,mCAAU;AAAA;AACV;AACK,MAAO,sBAAsB,kBAAiB;AAAA,EAA9C;AAAA;AACL,gCAAO;AAAA;AACP;AACK,MAAO,4BAA4B,kBAAiB;AAAA,EAApD;AAAA;AACL,gCAAO;AAAA;AACP;AACK,MAAO,sBAAsB,kBAAiB;AAAA,EAA9C;AAAA;AACL,gCAAO;AAAA;AACP;AACK,MAAO,oBAAoB,kBAAiB;AAAA,EAA5C;AAAA;AACL,gCAAO;AAAA;AACP;AACK,MAAO,8BAA8B,kBAAiB;AAAA,EAG3D,YAAY,QAAmB;AAC9B,UACC,GAAG,OAAO,eACT,OAAO,WAAW,IAAI,KAAK,6CAE5B;AAAA,MACC,OAAO;AAAA,IAAA,CACP;AATH,gCAAO;AAAA,EAWP;AACA;AACK,MAAO,sCAAsC,kBAAiB;AAAA,EAA9D;AAAA;AACL,gCAAO;AAAA;AACP;
|
|
1
|
+
{"version":3,"file":"errors.cjs","sources":["../../src/errors.ts"],"sourcesContent":["import { HookError } from \"@slicemachine/plugin-kit\";\n\nexport class SliceMachineError extends Error {\n\tname = \"SMSliceMachineError\";\n}\nexport class UnauthorizedError extends SliceMachineError {\n\tname = \"SMUnauthorizedError\" as const;\n}\nexport class UnauthenticatedError extends SliceMachineError {\n\tname = \"SMUnauthenticatedError\" as const;\n\tmessage = \"Authenticate before trying again.\";\n}\nexport class NotFoundError extends SliceMachineError {\n\tname = \"SMNotFoundError\" as const;\n}\nexport class UnexpectedDataError extends SliceMachineError {\n\tname = \"SMUnexpectedDataError\" as const;\n}\nexport class InternalError extends SliceMachineError {\n\tname = \"SMInternalError\" as const;\n}\nexport class PluginError extends SliceMachineError {\n\tname = \"SMPluginError\" as const;\n}\nexport class PluginHookResultError extends SliceMachineError {\n\tname = \"SMPluginHookResultError\" as const;\n\n\tconstructor(errors: HookError[]) {\n\t\tsuper(\n\t\t\t`${errors.length} error${\n\t\t\t\terrors.length === 1 ? \"\" : \"s\"\n\t\t\t} were returned by one or more plugins.`,\n\t\t\t{\n\t\t\t\tcause: errors,\n\t\t\t},\n\t\t);\n\t}\n}\nexport class InvalidActiveEnvironmentError extends SliceMachineError {\n\tname = \"SMInvalidActiveEnvironmentError\" as const;\n}\nexport class UnsupportedError extends SliceMachineError {\n\tname = \"SMUnsupportedError\" as const;\n}\n\ntype SliceMachineErrorNames =\n\t| \"SMSliceMachineError\"\n\t| UnauthorizedError[\"name\"]\n\t| UnauthenticatedError[\"name\"]\n\t| NotFoundError[\"name\"]\n\t| UnexpectedDataError[\"name\"]\n\t| InternalError[\"name\"]\n\t| PluginError[\"name\"]\n\t| PluginHookResultError[\"name\"]\n\t| InvalidActiveEnvironmentError[\"name\"]\n\t| UnsupportedError[\"name\"];\n\ntype ShallowSliceMachineError<TName extends SliceMachineErrorNames> = Error & {\n\tname: TName;\n};\n\nexport const isSliceMachineError = <TName extends SliceMachineErrorNames>(\n\terror: unknown,\n\tname?: TName,\n): error is TName extends string ? ShallowSliceMachineError<TName> : Error => {\n\tconst isErrorInstance = error instanceof Error;\n\n\treturn name === undefined\n\t\t? isErrorInstance && error.name.startsWith(\"SM\")\n\t\t: isErrorInstance && error.name === name;\n};\n\nexport const isUnauthorizedError = (\n\terror: unknown,\n): error is ShallowSliceMachineError<\"SMUnauthorizedError\"> => {\n\treturn isSliceMachineError(error, \"SMUnauthorizedError\");\n};\n\nexport const isUnauthenticatedError = (\n\terror: unknown,\n): error is ShallowSliceMachineError<\"SMUnauthenticatedError\"> => {\n\treturn isSliceMachineError(error, \"SMUnauthenticatedError\");\n};\n\nexport const isNotFoundError = (\n\terror: unknown,\n): error is ShallowSliceMachineError<\"SMNotFoundError\"> => {\n\treturn isSliceMachineError(error, \"SMNotFoundError\");\n};\n\nexport const isUnexpectedDataError = (\n\terror: unknown,\n): error is ShallowSliceMachineError<\"SMUnexpectedDataError\"> => {\n\treturn isSliceMachineError(error, \"SMUnexpectedDataError\");\n};\n\nexport const isInternalError = (\n\terror: unknown,\n): error is ShallowSliceMachineError<\"SMInternalError\"> => {\n\treturn isSliceMachineError(error, \"SMInternalError\");\n};\n\nexport const isPluginError = (\n\terror: unknown,\n): error is ShallowSliceMachineError<\"SMPluginError\"> => {\n\treturn isSliceMachineError(error, \"SMPluginError\");\n};\n\nexport const isInvalidActiveEnvironmentError = (\n\terror: unknown,\n): error is ShallowSliceMachineError<\"SMInvalidActiveEnvironmentError\"> => {\n\treturn isSliceMachineError(error, \"SMInvalidActiveEnvironmentError\");\n};\n\nexport const isUnsupportedError = (\n\terror: unknown,\n): error is ShallowSliceMachineError<\"SMUnsupportedError\"> => {\n\treturn isSliceMachineError(error, \"SMUnsupportedError\");\n};\n"],"names":[],"mappings":";;;;;;;;AAEM,MAAO,0BAA0B,MAAK;AAAA,EAAtC;AAAA;AACL,gCAAO;AAAA;AACP;AACK,MAAO,0BAA0B,kBAAiB;AAAA,EAAlD;AAAA;AACL,gCAAO;AAAA;AACP;AACK,MAAO,6BAA6B,kBAAiB;AAAA,EAArD;AAAA;AACL,gCAAO;AACP,mCAAU;AAAA;AACV;AACK,MAAO,sBAAsB,kBAAiB;AAAA,EAA9C;AAAA;AACL,gCAAO;AAAA;AACP;AACK,MAAO,4BAA4B,kBAAiB;AAAA,EAApD;AAAA;AACL,gCAAO;AAAA;AACP;AACK,MAAO,sBAAsB,kBAAiB;AAAA,EAA9C;AAAA;AACL,gCAAO;AAAA;AACP;AACK,MAAO,oBAAoB,kBAAiB;AAAA,EAA5C;AAAA;AACL,gCAAO;AAAA;AACP;AACK,MAAO,8BAA8B,kBAAiB;AAAA,EAG3D,YAAY,QAAmB;AAC9B,UACC,GAAG,OAAO,eACT,OAAO,WAAW,IAAI,KAAK,6CAE5B;AAAA,MACC,OAAO;AAAA,IAAA,CACP;AATH,gCAAO;AAAA,EAWP;AACA;AACK,MAAO,sCAAsC,kBAAiB;AAAA,EAA9D;AAAA;AACL,gCAAO;AAAA;AACP;AACK,MAAO,yBAAyB,kBAAiB;AAAA,EAAjD;AAAA;AACL,gCAAO;AAAA;AACP;AAkBY,MAAA,sBAAsB,CAClC,OACA,SAC4E;AAC5E,QAAM,kBAAkB,iBAAiB;AAElC,SAAA,SAAS,SACb,mBAAmB,MAAM,KAAK,WAAW,IAAI,IAC7C,mBAAmB,MAAM,SAAS;AACtC;AAEa,MAAA,sBAAsB,CAClC,UAC6D;AACtD,SAAA,oBAAoB,OAAO,qBAAqB;AACxD;AAEa,MAAA,yBAAyB,CACrC,UACgE;AACzD,SAAA,oBAAoB,OAAO,wBAAwB;AAC3D;AAEa,MAAA,kBAAkB,CAC9B,UACyD;AAClD,SAAA,oBAAoB,OAAO,iBAAiB;AACpD;AAEa,MAAA,wBAAwB,CACpC,UAC+D;AACxD,SAAA,oBAAoB,OAAO,uBAAuB;AAC1D;AAEa,MAAA,kBAAkB,CAC9B,UACyD;AAClD,SAAA,oBAAoB,OAAO,iBAAiB;AACpD;AAEa,MAAA,gBAAgB,CAC5B,UACuD;AAChD,SAAA,oBAAoB,OAAO,eAAe;AAClD;AAEa,MAAA,kCAAkC,CAC9C,UACyE;AAClE,SAAA,oBAAoB,OAAO,iCAAiC;AACpE;AAEa,MAAA,qBAAqB,CACjC,UAC4D;AACrD,SAAA,oBAAoB,OAAO,oBAAoB;AACvD;;;;;;;;;;;;;;;;;;;;"}
|
package/dist/errors.d.ts
CHANGED
|
@@ -28,7 +28,10 @@ export declare class PluginHookResultError extends SliceMachineError {
|
|
|
28
28
|
export declare class InvalidActiveEnvironmentError extends SliceMachineError {
|
|
29
29
|
name: "SMInvalidActiveEnvironmentError";
|
|
30
30
|
}
|
|
31
|
-
|
|
31
|
+
export declare class UnsupportedError extends SliceMachineError {
|
|
32
|
+
name: "SMUnsupportedError";
|
|
33
|
+
}
|
|
34
|
+
type SliceMachineErrorNames = "SMSliceMachineError" | UnauthorizedError["name"] | UnauthenticatedError["name"] | NotFoundError["name"] | UnexpectedDataError["name"] | InternalError["name"] | PluginError["name"] | PluginHookResultError["name"] | InvalidActiveEnvironmentError["name"] | UnsupportedError["name"];
|
|
32
35
|
type ShallowSliceMachineError<TName extends SliceMachineErrorNames> = Error & {
|
|
33
36
|
name: TName;
|
|
34
37
|
};
|
|
@@ -40,4 +43,5 @@ export declare const isUnexpectedDataError: (error: unknown) => error is Shallow
|
|
|
40
43
|
export declare const isInternalError: (error: unknown) => error is ShallowSliceMachineError<"SMInternalError">;
|
|
41
44
|
export declare const isPluginError: (error: unknown) => error is ShallowSliceMachineError<"SMPluginError">;
|
|
42
45
|
export declare const isInvalidActiveEnvironmentError: (error: unknown) => error is ShallowSliceMachineError<"SMInvalidActiveEnvironmentError">;
|
|
46
|
+
export declare const isUnsupportedError: (error: unknown) => error is ShallowSliceMachineError<"SMUnsupportedError">;
|
|
43
47
|
export {};
|
package/dist/errors.js
CHANGED
|
@@ -61,6 +61,12 @@ class InvalidActiveEnvironmentError extends SliceMachineError {
|
|
|
61
61
|
__publicField(this, "name", "SMInvalidActiveEnvironmentError");
|
|
62
62
|
}
|
|
63
63
|
}
|
|
64
|
+
class UnsupportedError extends SliceMachineError {
|
|
65
|
+
constructor() {
|
|
66
|
+
super(...arguments);
|
|
67
|
+
__publicField(this, "name", "SMUnsupportedError");
|
|
68
|
+
}
|
|
69
|
+
}
|
|
64
70
|
const isSliceMachineError = (error, name) => {
|
|
65
71
|
const isErrorInstance = error instanceof Error;
|
|
66
72
|
return name === void 0 ? isErrorInstance && error.name.startsWith("SM") : isErrorInstance && error.name === name;
|
|
@@ -86,6 +92,9 @@ const isPluginError = (error) => {
|
|
|
86
92
|
const isInvalidActiveEnvironmentError = (error) => {
|
|
87
93
|
return isSliceMachineError(error, "SMInvalidActiveEnvironmentError");
|
|
88
94
|
};
|
|
95
|
+
const isUnsupportedError = (error) => {
|
|
96
|
+
return isSliceMachineError(error, "SMUnsupportedError");
|
|
97
|
+
};
|
|
89
98
|
export {
|
|
90
99
|
InternalError,
|
|
91
100
|
InvalidActiveEnvironmentError,
|
|
@@ -96,6 +105,7 @@ export {
|
|
|
96
105
|
UnauthenticatedError,
|
|
97
106
|
UnauthorizedError,
|
|
98
107
|
UnexpectedDataError,
|
|
108
|
+
UnsupportedError,
|
|
99
109
|
isInternalError,
|
|
100
110
|
isInvalidActiveEnvironmentError,
|
|
101
111
|
isNotFoundError,
|
|
@@ -103,6 +113,7 @@ export {
|
|
|
103
113
|
isSliceMachineError,
|
|
104
114
|
isUnauthenticatedError,
|
|
105
115
|
isUnauthorizedError,
|
|
106
|
-
isUnexpectedDataError
|
|
116
|
+
isUnexpectedDataError,
|
|
117
|
+
isUnsupportedError
|
|
107
118
|
};
|
|
108
119
|
//# sourceMappingURL=errors.js.map
|
package/dist/errors.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.js","sources":["../../src/errors.ts"],"sourcesContent":["import { HookError } from \"@slicemachine/plugin-kit\";\n\nexport class SliceMachineError extends Error {\n\tname = \"SMSliceMachineError\";\n}\nexport class UnauthorizedError extends SliceMachineError {\n\tname = \"SMUnauthorizedError\" as const;\n}\nexport class UnauthenticatedError extends SliceMachineError {\n\tname = \"SMUnauthenticatedError\" as const;\n\tmessage = \"Authenticate before trying again.\";\n}\nexport class NotFoundError extends SliceMachineError {\n\tname = \"SMNotFoundError\" as const;\n}\nexport class UnexpectedDataError extends SliceMachineError {\n\tname = \"SMUnexpectedDataError\" as const;\n}\nexport class InternalError extends SliceMachineError {\n\tname = \"SMInternalError\" as const;\n}\nexport class PluginError extends SliceMachineError {\n\tname = \"SMPluginError\" as const;\n}\nexport class PluginHookResultError extends SliceMachineError {\n\tname = \"SMPluginHookResultError\" as const;\n\n\tconstructor(errors: HookError[]) {\n\t\tsuper(\n\t\t\t`${errors.length} error${\n\t\t\t\terrors.length === 1 ? \"\" : \"s\"\n\t\t\t} were returned by one or more plugins.`,\n\t\t\t{\n\t\t\t\tcause: errors,\n\t\t\t},\n\t\t);\n\t}\n}\nexport class InvalidActiveEnvironmentError extends SliceMachineError {\n\tname = \"SMInvalidActiveEnvironmentError\" as const;\n}\n\ntype SliceMachineErrorNames =\n\t| \"SMSliceMachineError\"\n\t| UnauthorizedError[\"name\"]\n\t| UnauthenticatedError[\"name\"]\n\t| NotFoundError[\"name\"]\n\t| UnexpectedDataError[\"name\"]\n\t| InternalError[\"name\"]\n\t| PluginError[\"name\"]\n\t| PluginHookResultError[\"name\"]\n\t| InvalidActiveEnvironmentError[\"name\"];\n\ntype ShallowSliceMachineError<TName extends SliceMachineErrorNames> = Error & {\n\tname: TName;\n};\n\nexport const isSliceMachineError = <TName extends SliceMachineErrorNames>(\n\terror: unknown,\n\tname?: TName,\n): error is TName extends string ? ShallowSliceMachineError<TName> : Error => {\n\tconst isErrorInstance = error instanceof Error;\n\n\treturn name === undefined\n\t\t? isErrorInstance && error.name.startsWith(\"SM\")\n\t\t: isErrorInstance && error.name === name;\n};\n\nexport const isUnauthorizedError = (\n\terror: unknown,\n): error is ShallowSliceMachineError<\"SMUnauthorizedError\"> => {\n\treturn isSliceMachineError(error, \"SMUnauthorizedError\");\n};\n\nexport const isUnauthenticatedError = (\n\terror: unknown,\n): error is ShallowSliceMachineError<\"SMUnauthenticatedError\"> => {\n\treturn isSliceMachineError(error, \"SMUnauthenticatedError\");\n};\n\nexport const isNotFoundError = (\n\terror: unknown,\n): error is ShallowSliceMachineError<\"SMNotFoundError\"> => {\n\treturn isSliceMachineError(error, \"SMNotFoundError\");\n};\n\nexport const isUnexpectedDataError = (\n\terror: unknown,\n): error is ShallowSliceMachineError<\"SMUnexpectedDataError\"> => {\n\treturn isSliceMachineError(error, \"SMUnexpectedDataError\");\n};\n\nexport const isInternalError = (\n\terror: unknown,\n): error is ShallowSliceMachineError<\"SMInternalError\"> => {\n\treturn isSliceMachineError(error, \"SMInternalError\");\n};\n\nexport const isPluginError = (\n\terror: unknown,\n): error is ShallowSliceMachineError<\"SMPluginError\"> => {\n\treturn isSliceMachineError(error, \"SMPluginError\");\n};\n\nexport const isInvalidActiveEnvironmentError = (\n\terror: unknown,\n): error is ShallowSliceMachineError<\"SMInvalidActiveEnvironmentError\"> => {\n\treturn isSliceMachineError(error, \"SMInvalidActiveEnvironmentError\");\n};\n"],"names":[],"mappings":";;;;;;AAEM,MAAO,0BAA0B,MAAK;AAAA,EAAtC;AAAA;AACL,gCAAO;AAAA;AACP;AACK,MAAO,0BAA0B,kBAAiB;AAAA,EAAlD;AAAA;AACL,gCAAO;AAAA;AACP;AACK,MAAO,6BAA6B,kBAAiB;AAAA,EAArD;AAAA;AACL,gCAAO;AACP,mCAAU;AAAA;AACV;AACK,MAAO,sBAAsB,kBAAiB;AAAA,EAA9C;AAAA;AACL,gCAAO;AAAA;AACP;AACK,MAAO,4BAA4B,kBAAiB;AAAA,EAApD;AAAA;AACL,gCAAO;AAAA;AACP;AACK,MAAO,sBAAsB,kBAAiB;AAAA,EAA9C;AAAA;AACL,gCAAO;AAAA;AACP;AACK,MAAO,oBAAoB,kBAAiB;AAAA,EAA5C;AAAA;AACL,gCAAO;AAAA;AACP;AACK,MAAO,8BAA8B,kBAAiB;AAAA,EAG3D,YAAY,QAAmB;AAC9B,UACC,GAAG,OAAO,eACT,OAAO,WAAW,IAAI,KAAK,6CAE5B;AAAA,MACC,OAAO;AAAA,IAAA,CACP;AATH,gCAAO;AAAA,EAWP;AACA;AACK,MAAO,sCAAsC,kBAAiB;AAAA,EAA9D;AAAA;AACL,gCAAO;AAAA;AACP;
|
|
1
|
+
{"version":3,"file":"errors.js","sources":["../../src/errors.ts"],"sourcesContent":["import { HookError } from \"@slicemachine/plugin-kit\";\n\nexport class SliceMachineError extends Error {\n\tname = \"SMSliceMachineError\";\n}\nexport class UnauthorizedError extends SliceMachineError {\n\tname = \"SMUnauthorizedError\" as const;\n}\nexport class UnauthenticatedError extends SliceMachineError {\n\tname = \"SMUnauthenticatedError\" as const;\n\tmessage = \"Authenticate before trying again.\";\n}\nexport class NotFoundError extends SliceMachineError {\n\tname = \"SMNotFoundError\" as const;\n}\nexport class UnexpectedDataError extends SliceMachineError {\n\tname = \"SMUnexpectedDataError\" as const;\n}\nexport class InternalError extends SliceMachineError {\n\tname = \"SMInternalError\" as const;\n}\nexport class PluginError extends SliceMachineError {\n\tname = \"SMPluginError\" as const;\n}\nexport class PluginHookResultError extends SliceMachineError {\n\tname = \"SMPluginHookResultError\" as const;\n\n\tconstructor(errors: HookError[]) {\n\t\tsuper(\n\t\t\t`${errors.length} error${\n\t\t\t\terrors.length === 1 ? \"\" : \"s\"\n\t\t\t} were returned by one or more plugins.`,\n\t\t\t{\n\t\t\t\tcause: errors,\n\t\t\t},\n\t\t);\n\t}\n}\nexport class InvalidActiveEnvironmentError extends SliceMachineError {\n\tname = \"SMInvalidActiveEnvironmentError\" as const;\n}\nexport class UnsupportedError extends SliceMachineError {\n\tname = \"SMUnsupportedError\" as const;\n}\n\ntype SliceMachineErrorNames =\n\t| \"SMSliceMachineError\"\n\t| UnauthorizedError[\"name\"]\n\t| UnauthenticatedError[\"name\"]\n\t| NotFoundError[\"name\"]\n\t| UnexpectedDataError[\"name\"]\n\t| InternalError[\"name\"]\n\t| PluginError[\"name\"]\n\t| PluginHookResultError[\"name\"]\n\t| InvalidActiveEnvironmentError[\"name\"]\n\t| UnsupportedError[\"name\"];\n\ntype ShallowSliceMachineError<TName extends SliceMachineErrorNames> = Error & {\n\tname: TName;\n};\n\nexport const isSliceMachineError = <TName extends SliceMachineErrorNames>(\n\terror: unknown,\n\tname?: TName,\n): error is TName extends string ? ShallowSliceMachineError<TName> : Error => {\n\tconst isErrorInstance = error instanceof Error;\n\n\treturn name === undefined\n\t\t? isErrorInstance && error.name.startsWith(\"SM\")\n\t\t: isErrorInstance && error.name === name;\n};\n\nexport const isUnauthorizedError = (\n\terror: unknown,\n): error is ShallowSliceMachineError<\"SMUnauthorizedError\"> => {\n\treturn isSliceMachineError(error, \"SMUnauthorizedError\");\n};\n\nexport const isUnauthenticatedError = (\n\terror: unknown,\n): error is ShallowSliceMachineError<\"SMUnauthenticatedError\"> => {\n\treturn isSliceMachineError(error, \"SMUnauthenticatedError\");\n};\n\nexport const isNotFoundError = (\n\terror: unknown,\n): error is ShallowSliceMachineError<\"SMNotFoundError\"> => {\n\treturn isSliceMachineError(error, \"SMNotFoundError\");\n};\n\nexport const isUnexpectedDataError = (\n\terror: unknown,\n): error is ShallowSliceMachineError<\"SMUnexpectedDataError\"> => {\n\treturn isSliceMachineError(error, \"SMUnexpectedDataError\");\n};\n\nexport const isInternalError = (\n\terror: unknown,\n): error is ShallowSliceMachineError<\"SMInternalError\"> => {\n\treturn isSliceMachineError(error, \"SMInternalError\");\n};\n\nexport const isPluginError = (\n\terror: unknown,\n): error is ShallowSliceMachineError<\"SMPluginError\"> => {\n\treturn isSliceMachineError(error, \"SMPluginError\");\n};\n\nexport const isInvalidActiveEnvironmentError = (\n\terror: unknown,\n): error is ShallowSliceMachineError<\"SMInvalidActiveEnvironmentError\"> => {\n\treturn isSliceMachineError(error, \"SMInvalidActiveEnvironmentError\");\n};\n\nexport const isUnsupportedError = (\n\terror: unknown,\n): error is ShallowSliceMachineError<\"SMUnsupportedError\"> => {\n\treturn isSliceMachineError(error, \"SMUnsupportedError\");\n};\n"],"names":[],"mappings":";;;;;;AAEM,MAAO,0BAA0B,MAAK;AAAA,EAAtC;AAAA;AACL,gCAAO;AAAA;AACP;AACK,MAAO,0BAA0B,kBAAiB;AAAA,EAAlD;AAAA;AACL,gCAAO;AAAA;AACP;AACK,MAAO,6BAA6B,kBAAiB;AAAA,EAArD;AAAA;AACL,gCAAO;AACP,mCAAU;AAAA;AACV;AACK,MAAO,sBAAsB,kBAAiB;AAAA,EAA9C;AAAA;AACL,gCAAO;AAAA;AACP;AACK,MAAO,4BAA4B,kBAAiB;AAAA,EAApD;AAAA;AACL,gCAAO;AAAA;AACP;AACK,MAAO,sBAAsB,kBAAiB;AAAA,EAA9C;AAAA;AACL,gCAAO;AAAA;AACP;AACK,MAAO,oBAAoB,kBAAiB;AAAA,EAA5C;AAAA;AACL,gCAAO;AAAA;AACP;AACK,MAAO,8BAA8B,kBAAiB;AAAA,EAG3D,YAAY,QAAmB;AAC9B,UACC,GAAG,OAAO,eACT,OAAO,WAAW,IAAI,KAAK,6CAE5B;AAAA,MACC,OAAO;AAAA,IAAA,CACP;AATH,gCAAO;AAAA,EAWP;AACA;AACK,MAAO,sCAAsC,kBAAiB;AAAA,EAA9D;AAAA;AACL,gCAAO;AAAA;AACP;AACK,MAAO,yBAAyB,kBAAiB;AAAA,EAAjD;AAAA;AACL,gCAAO;AAAA;AACP;AAkBY,MAAA,sBAAsB,CAClC,OACA,SAC4E;AAC5E,QAAM,kBAAkB,iBAAiB;AAElC,SAAA,SAAS,SACb,mBAAmB,MAAM,KAAK,WAAW,IAAI,IAC7C,mBAAmB,MAAM,SAAS;AACtC;AAEa,MAAA,sBAAsB,CAClC,UAC6D;AACtD,SAAA,oBAAoB,OAAO,qBAAqB;AACxD;AAEa,MAAA,yBAAyB,CACrC,UACgE;AACzD,SAAA,oBAAoB,OAAO,wBAAwB;AAC3D;AAEa,MAAA,kBAAkB,CAC9B,UACyD;AAClD,SAAA,oBAAoB,OAAO,iBAAiB;AACpD;AAEa,MAAA,wBAAwB,CACpC,UAC+D;AACxD,SAAA,oBAAoB,OAAO,uBAAuB;AAC1D;AAEa,MAAA,kBAAkB,CAC9B,UACyD;AAClD,SAAA,oBAAoB,OAAO,iBAAiB;AACpD;AAEa,MAAA,gBAAgB,CAC5B,UACuD;AAChD,SAAA,oBAAoB,OAAO,eAAe;AAClD;AAEa,MAAA,kCAAkC,CAC9C,UACyE;AAClE,SAAA,oBAAoB,OAAO,iCAAiC;AACpE;AAEa,MAAA,qBAAqB,CACjC,UAC4D;AACrD,SAAA,oBAAoB,OAAO,oBAAoB;AACvD;"}
|
package/dist/index.cjs
CHANGED
|
@@ -21,6 +21,7 @@ exports.SliceMachineError = errors.SliceMachineError;
|
|
|
21
21
|
exports.UnauthenticatedError = errors.UnauthenticatedError;
|
|
22
22
|
exports.UnauthorizedError = errors.UnauthorizedError;
|
|
23
23
|
exports.UnexpectedDataError = errors.UnexpectedDataError;
|
|
24
|
+
exports.UnsupportedError = errors.UnsupportedError;
|
|
24
25
|
exports.getEnvironmentInfo = getEnvironmentInfo.getEnvironmentInfo;
|
|
25
26
|
exports.DecodeError = DecodeError.DecodeError;
|
|
26
27
|
exports.REPOSITORY_NAME_VALIDATION = REPOSITORY_NAME_VALIDATION.REPOSITORY_NAME_VALIDATION;
|
package/dist/index.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
package/dist/index.d.ts
CHANGED
|
@@ -10,7 +10,7 @@ export type { PrismicAuthManager, PrismicUserProfile, PrismicAuthState, } from "
|
|
|
10
10
|
export { createPrismicAuthManager } from "./auth/createPrismicAuthManager";
|
|
11
11
|
export { createPrismicAuthManagerMiddleware } from "./auth/createPrismicAuthManagerMiddleware";
|
|
12
12
|
export type { CreatePrismicAuthManagerMiddlewareArgs, PrismicAuthCheckStatusResponse, } from "./auth/createPrismicAuthManagerMiddleware";
|
|
13
|
-
export { SliceMachineError, UnauthorizedError, UnauthenticatedError, NotFoundError, UnexpectedDataError, InternalError, PluginError, PluginHookResultError, InvalidActiveEnvironmentError, } from "./errors";
|
|
13
|
+
export { SliceMachineError, UnauthorizedError, UnauthenticatedError, NotFoundError, UnexpectedDataError, InternalError, PluginError, PluginHookResultError, InvalidActiveEnvironmentError, UnsupportedError, } from "./errors";
|
|
14
14
|
export { getEnvironmentInfo } from "./getEnvironmentInfo";
|
|
15
15
|
export { DecodeError } from "./lib/DecodeError";
|
|
16
16
|
export type { SliceMachineConfig, PackageManager } from "./types";
|
package/dist/index.js
CHANGED
|
@@ -2,7 +2,7 @@ import { createSliceMachineManager } from "./managers/createSliceMachineManager.
|
|
|
2
2
|
import { createSliceMachineManagerMiddleware } from "./managers/createSliceMachineManagerMiddleware.js";
|
|
3
3
|
import { createPrismicAuthManager } from "./auth/createPrismicAuthManager.js";
|
|
4
4
|
import { createPrismicAuthManagerMiddleware } from "./auth/createPrismicAuthManagerMiddleware.js";
|
|
5
|
-
import { InternalError, InvalidActiveEnvironmentError, NotFoundError, PluginError, PluginHookResultError, SliceMachineError, UnauthenticatedError, UnauthorizedError, UnexpectedDataError } from "./errors.js";
|
|
5
|
+
import { InternalError, InvalidActiveEnvironmentError, NotFoundError, PluginError, PluginHookResultError, SliceMachineError, UnauthenticatedError, UnauthorizedError, UnexpectedDataError, UnsupportedError } from "./errors.js";
|
|
6
6
|
import { getEnvironmentInfo } from "./getEnvironmentInfo.js";
|
|
7
7
|
import { DecodeError } from "./lib/DecodeError.js";
|
|
8
8
|
import { REPOSITORY_NAME_VALIDATION } from "./constants/REPOSITORY_NAME_VALIDATION.js";
|
|
@@ -18,6 +18,7 @@ export {
|
|
|
18
18
|
UnauthenticatedError,
|
|
19
19
|
UnauthorizedError,
|
|
20
20
|
UnexpectedDataError,
|
|
21
|
+
UnsupportedError,
|
|
21
22
|
createPrismicAuthManager,
|
|
22
23
|
createPrismicAuthManagerMiddleware,
|
|
23
24
|
createSliceMachineManager,
|
|
@@ -23,6 +23,9 @@ class BaseManager {
|
|
|
23
23
|
get cwd() {
|
|
24
24
|
return this._sliceMachineManager.cwd;
|
|
25
25
|
}
|
|
26
|
+
getMode() {
|
|
27
|
+
return this._sliceMachineManager.getMode();
|
|
28
|
+
}
|
|
26
29
|
// Protected instance prevents circular intellisense
|
|
27
30
|
// e.g. sliceMachineManager.user.user.user
|
|
28
31
|
get user() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BaseManager.cjs","sources":["../../../src/managers/BaseManager.ts"],"sourcesContent":["import { SliceMachinePluginRunner } from \"@slicemachine/plugin-kit\";\nimport { PrismicAuthManager } from \"../auth/PrismicAuthManager\";\n\nimport { SliceMachineManager } from \"./SliceMachineManager\";\n\nimport { UserManager } from \"./user/UserManager\";\nimport { PrismicRepositoryManager } from \"./prismicRepository/PrismicRepositoryManager\";\n\nimport { PluginsManager } from \"./plugins/PluginsManager\";\n\nimport { ProjectManager } from \"./project/ProjectManager\";\nimport { CustomTypesManager } from \"./customTypes/CustomTypesManager\";\nimport { SlicesManager } from \"./slices/SlicesManager\";\nimport { SnippetsManager } from \"./snippets/SnippetsManager\";\nimport { ScreenshotsManager } from \"./screenshots/ScreenshotsManager\";\nimport { SimulatorManager } from \"./simulator/SimulatorManager\";\n\nimport { VersionsManager } from \"./versions/VersionsManager\";\nimport { TelemetryManager } from \"./telemetry/TelemetryManager\";\nimport { DocumentationManager } from \"./documentation/DocumentationManager\";\nimport { SliceTemplateLibraryManager } from \"./sliceTemplateLibrary/SliceTemplateLibraryManager\";\n\nexport abstract class BaseManager {\n\tprivate _sliceMachineManager: SliceMachineManager;\n\n\tconstructor(sliceMachineManager: SliceMachineManager) {\n\t\tthis._sliceMachineManager = sliceMachineManager;\n\t}\n\n\tprotected get prismicAuthManager(): PrismicAuthManager {\n\t\treturn this._sliceMachineManager.getPrismicAuthManager();\n\t}\n\n\tprotected get sliceMachinePluginRunner():\n\t\t| SliceMachinePluginRunner\n\t\t| undefined {\n\t\treturn this._sliceMachineManager.getSliceMachinePluginRunner();\n\t}\n\n\tprotected set sliceMachinePluginRunner(\n\t\tsliceMachinePluginRunner: SliceMachinePluginRunner | undefined,\n\t) {\n\t\t// @ts-expect-error - _sliceMachinePluginRunner is private. We\n\t\t// are intentially ignoring its privacy to allow Manager\n\t\t// classes to access a shared plugin runner via protected\n\t\t// getters and setters.\n\t\tthis._sliceMachineManager._sliceMachinePluginRunner =\n\t\t\tsliceMachinePluginRunner;\n\t}\n\n\tprotected get cwd(): string {\n\t\treturn this._sliceMachineManager.cwd;\n\t}\n\n\t// Protected instance prevents circular intellisense\n\t// e.g. sliceMachineManager.user.user.user\n\tprotected get user(): UserManager {\n\t\treturn this._sliceMachineManager.user;\n\t}\n\tprotected get prismicRepository(): PrismicRepositoryManager {\n\t\treturn this._sliceMachineManager.prismicRepository;\n\t}\n\n\tprotected get plugins(): PluginsManager {\n\t\treturn this._sliceMachineManager.plugins;\n\t}\n\n\tprotected get project(): ProjectManager {\n\t\treturn this._sliceMachineManager.project;\n\t}\n\tprotected get customTypes(): CustomTypesManager {\n\t\treturn this._sliceMachineManager.customTypes;\n\t}\n\tprotected get slices(): SlicesManager {\n\t\treturn this._sliceMachineManager.slices;\n\t}\n\tprotected get snippets(): SnippetsManager {\n\t\treturn this._sliceMachineManager.snippets;\n\t}\n\tprotected get screenshots(): ScreenshotsManager {\n\t\treturn this._sliceMachineManager.screenshots;\n\t}\n\tprotected get simulator(): SimulatorManager {\n\t\treturn this._sliceMachineManager.simulator;\n\t}\n\tprotected get documentation(): DocumentationManager {\n\t\treturn this._sliceMachineManager.documentation;\n\t}\n\tprotected get sliceTemplateLibrary(): SliceTemplateLibraryManager {\n\t\treturn this._sliceMachineManager.sliceTemplateLibrary;\n\t}\n\n\tprotected get versions(): VersionsManager {\n\t\treturn this._sliceMachineManager.versions;\n\t}\n\n\tprotected get telemetry(): TelemetryManager {\n\t\treturn this._sliceMachineManager.telemetry;\n\t}\n}\n"],"names":[],"mappings":";;;;;;;;MAsBsB,YAAW;AAAA,EAGhC,YAAY,qBAAwC;AAF5C;AAGP,SAAK,uBAAuB;AAAA,EAC7B;AAAA,EAEA,IAAc,qBAAkB;AACxB,WAAA,KAAK,qBAAqB;EAClC;AAAA,EAEA,IAAc,2BAAwB;AAG9B,WAAA,KAAK,qBAAqB;EAClC;AAAA,EAEA,IAAc,yBACb,0BAA8D;AAM9D,SAAK,qBAAqB,4BACzB;AAAA,EACF;AAAA,EAEA,IAAc,MAAG;AAChB,WAAO,KAAK,qBAAqB;AAAA,EAClC;AAAA;AAAA;AAAA,EAIA,IAAc,OAAI;AACjB,WAAO,KAAK,qBAAqB;AAAA,EAClC;AAAA,EACA,IAAc,oBAAiB;AAC9B,WAAO,KAAK,qBAAqB;AAAA,EAClC;AAAA,EAEA,IAAc,UAAO;AACpB,WAAO,KAAK,qBAAqB;AAAA,EAClC;AAAA,EAEA,IAAc,UAAO;AACpB,WAAO,KAAK,qBAAqB;AAAA,EAClC;AAAA,EACA,IAAc,cAAW;AACxB,WAAO,KAAK,qBAAqB;AAAA,EAClC;AAAA,EACA,IAAc,SAAM;AACnB,WAAO,KAAK,qBAAqB;AAAA,EAClC;AAAA,EACA,IAAc,WAAQ;AACrB,WAAO,KAAK,qBAAqB;AAAA,EAClC;AAAA,EACA,IAAc,cAAW;AACxB,WAAO,KAAK,qBAAqB;AAAA,EAClC;AAAA,EACA,IAAc,YAAS;AACtB,WAAO,KAAK,qBAAqB;AAAA,EAClC;AAAA,EACA,IAAc,gBAAa;AAC1B,WAAO,KAAK,qBAAqB;AAAA,EAClC;AAAA,EACA,IAAc,uBAAoB;AACjC,WAAO,KAAK,qBAAqB;AAAA,EAClC;AAAA,EAEA,IAAc,WAAQ;AACrB,WAAO,KAAK,qBAAqB;AAAA,EAClC;AAAA,EAEA,IAAc,YAAS;AACtB,WAAO,KAAK,qBAAqB;AAAA,EAClC;AACA;;"}
|
|
1
|
+
{"version":3,"file":"BaseManager.cjs","sources":["../../../src/managers/BaseManager.ts"],"sourcesContent":["import { SliceMachinePluginRunner } from \"@slicemachine/plugin-kit\";\nimport { PrismicAuthManager } from \"../auth/PrismicAuthManager\";\n\nimport { SliceMachineManager } from \"./SliceMachineManager\";\n\nimport { UserManager } from \"./user/UserManager\";\nimport { PrismicRepositoryManager } from \"./prismicRepository/PrismicRepositoryManager\";\n\nimport { PluginsManager } from \"./plugins/PluginsManager\";\n\nimport { ProjectManager } from \"./project/ProjectManager\";\nimport { CustomTypesManager } from \"./customTypes/CustomTypesManager\";\nimport { SlicesManager } from \"./slices/SlicesManager\";\nimport { SnippetsManager } from \"./snippets/SnippetsManager\";\nimport { ScreenshotsManager } from \"./screenshots/ScreenshotsManager\";\nimport { SimulatorManager } from \"./simulator/SimulatorManager\";\n\nimport { VersionsManager } from \"./versions/VersionsManager\";\nimport { TelemetryManager } from \"./telemetry/TelemetryManager\";\nimport { DocumentationManager } from \"./documentation/DocumentationManager\";\nimport { SliceTemplateLibraryManager } from \"./sliceTemplateLibrary/SliceTemplateLibraryManager\";\n\nexport abstract class BaseManager {\n\tprivate _sliceMachineManager: SliceMachineManager;\n\n\tconstructor(sliceMachineManager: SliceMachineManager) {\n\t\tthis._sliceMachineManager = sliceMachineManager;\n\t}\n\n\tprotected get prismicAuthManager(): PrismicAuthManager {\n\t\treturn this._sliceMachineManager.getPrismicAuthManager();\n\t}\n\n\tprotected get sliceMachinePluginRunner():\n\t\t| SliceMachinePluginRunner\n\t\t| undefined {\n\t\treturn this._sliceMachineManager.getSliceMachinePluginRunner();\n\t}\n\n\tprotected set sliceMachinePluginRunner(\n\t\tsliceMachinePluginRunner: SliceMachinePluginRunner | undefined,\n\t) {\n\t\t// @ts-expect-error - _sliceMachinePluginRunner is private. We\n\t\t// are intentially ignoring its privacy to allow Manager\n\t\t// classes to access a shared plugin runner via protected\n\t\t// getters and setters.\n\t\tthis._sliceMachineManager._sliceMachinePluginRunner =\n\t\t\tsliceMachinePluginRunner;\n\t}\n\n\tprotected get cwd(): string {\n\t\treturn this._sliceMachineManager.cwd;\n\t}\n\n\tprotected getMode(): string {\n\t\treturn this._sliceMachineManager.getMode();\n\t}\n\n\t// Protected instance prevents circular intellisense\n\t// e.g. sliceMachineManager.user.user.user\n\tprotected get user(): UserManager {\n\t\treturn this._sliceMachineManager.user;\n\t}\n\tprotected get prismicRepository(): PrismicRepositoryManager {\n\t\treturn this._sliceMachineManager.prismicRepository;\n\t}\n\n\tprotected get plugins(): PluginsManager {\n\t\treturn this._sliceMachineManager.plugins;\n\t}\n\n\tprotected get project(): ProjectManager {\n\t\treturn this._sliceMachineManager.project;\n\t}\n\tprotected get customTypes(): CustomTypesManager {\n\t\treturn this._sliceMachineManager.customTypes;\n\t}\n\tprotected get slices(): SlicesManager {\n\t\treturn this._sliceMachineManager.slices;\n\t}\n\tprotected get snippets(): SnippetsManager {\n\t\treturn this._sliceMachineManager.snippets;\n\t}\n\tprotected get screenshots(): ScreenshotsManager {\n\t\treturn this._sliceMachineManager.screenshots;\n\t}\n\tprotected get simulator(): SimulatorManager {\n\t\treturn this._sliceMachineManager.simulator;\n\t}\n\tprotected get documentation(): DocumentationManager {\n\t\treturn this._sliceMachineManager.documentation;\n\t}\n\tprotected get sliceTemplateLibrary(): SliceTemplateLibraryManager {\n\t\treturn this._sliceMachineManager.sliceTemplateLibrary;\n\t}\n\n\tprotected get versions(): VersionsManager {\n\t\treturn this._sliceMachineManager.versions;\n\t}\n\n\tprotected get telemetry(): TelemetryManager {\n\t\treturn this._sliceMachineManager.telemetry;\n\t}\n}\n"],"names":[],"mappings":";;;;;;;;MAsBsB,YAAW;AAAA,EAGhC,YAAY,qBAAwC;AAF5C;AAGP,SAAK,uBAAuB;AAAA,EAC7B;AAAA,EAEA,IAAc,qBAAkB;AACxB,WAAA,KAAK,qBAAqB;EAClC;AAAA,EAEA,IAAc,2BAAwB;AAG9B,WAAA,KAAK,qBAAqB;EAClC;AAAA,EAEA,IAAc,yBACb,0BAA8D;AAM9D,SAAK,qBAAqB,4BACzB;AAAA,EACF;AAAA,EAEA,IAAc,MAAG;AAChB,WAAO,KAAK,qBAAqB;AAAA,EAClC;AAAA,EAEU,UAAO;AACT,WAAA,KAAK,qBAAqB;EAClC;AAAA;AAAA;AAAA,EAIA,IAAc,OAAI;AACjB,WAAO,KAAK,qBAAqB;AAAA,EAClC;AAAA,EACA,IAAc,oBAAiB;AAC9B,WAAO,KAAK,qBAAqB;AAAA,EAClC;AAAA,EAEA,IAAc,UAAO;AACpB,WAAO,KAAK,qBAAqB;AAAA,EAClC;AAAA,EAEA,IAAc,UAAO;AACpB,WAAO,KAAK,qBAAqB;AAAA,EAClC;AAAA,EACA,IAAc,cAAW;AACxB,WAAO,KAAK,qBAAqB;AAAA,EAClC;AAAA,EACA,IAAc,SAAM;AACnB,WAAO,KAAK,qBAAqB;AAAA,EAClC;AAAA,EACA,IAAc,WAAQ;AACrB,WAAO,KAAK,qBAAqB;AAAA,EAClC;AAAA,EACA,IAAc,cAAW;AACxB,WAAO,KAAK,qBAAqB;AAAA,EAClC;AAAA,EACA,IAAc,YAAS;AACtB,WAAO,KAAK,qBAAqB;AAAA,EAClC;AAAA,EACA,IAAc,gBAAa;AAC1B,WAAO,KAAK,qBAAqB;AAAA,EAClC;AAAA,EACA,IAAc,uBAAoB;AACjC,WAAO,KAAK,qBAAqB;AAAA,EAClC;AAAA,EAEA,IAAc,WAAQ;AACrB,WAAO,KAAK,qBAAqB;AAAA,EAClC;AAAA,EAEA,IAAc,YAAS;AACtB,WAAO,KAAK,qBAAqB;AAAA,EAClC;AACA;;"}
|
|
@@ -21,6 +21,7 @@ export declare abstract class BaseManager {
|
|
|
21
21
|
protected get sliceMachinePluginRunner(): SliceMachinePluginRunner | undefined;
|
|
22
22
|
protected set sliceMachinePluginRunner(sliceMachinePluginRunner: SliceMachinePluginRunner | undefined);
|
|
23
23
|
protected get cwd(): string;
|
|
24
|
+
protected getMode(): string;
|
|
24
25
|
protected get user(): UserManager;
|
|
25
26
|
protected get prismicRepository(): PrismicRepositoryManager;
|
|
26
27
|
protected get plugins(): PluginsManager;
|
|
@@ -21,6 +21,9 @@ class BaseManager {
|
|
|
21
21
|
get cwd() {
|
|
22
22
|
return this._sliceMachineManager.cwd;
|
|
23
23
|
}
|
|
24
|
+
getMode() {
|
|
25
|
+
return this._sliceMachineManager.getMode();
|
|
26
|
+
}
|
|
24
27
|
// Protected instance prevents circular intellisense
|
|
25
28
|
// e.g. sliceMachineManager.user.user.user
|
|
26
29
|
get user() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BaseManager.js","sources":["../../../src/managers/BaseManager.ts"],"sourcesContent":["import { SliceMachinePluginRunner } from \"@slicemachine/plugin-kit\";\nimport { PrismicAuthManager } from \"../auth/PrismicAuthManager\";\n\nimport { SliceMachineManager } from \"./SliceMachineManager\";\n\nimport { UserManager } from \"./user/UserManager\";\nimport { PrismicRepositoryManager } from \"./prismicRepository/PrismicRepositoryManager\";\n\nimport { PluginsManager } from \"./plugins/PluginsManager\";\n\nimport { ProjectManager } from \"./project/ProjectManager\";\nimport { CustomTypesManager } from \"./customTypes/CustomTypesManager\";\nimport { SlicesManager } from \"./slices/SlicesManager\";\nimport { SnippetsManager } from \"./snippets/SnippetsManager\";\nimport { ScreenshotsManager } from \"./screenshots/ScreenshotsManager\";\nimport { SimulatorManager } from \"./simulator/SimulatorManager\";\n\nimport { VersionsManager } from \"./versions/VersionsManager\";\nimport { TelemetryManager } from \"./telemetry/TelemetryManager\";\nimport { DocumentationManager } from \"./documentation/DocumentationManager\";\nimport { SliceTemplateLibraryManager } from \"./sliceTemplateLibrary/SliceTemplateLibraryManager\";\n\nexport abstract class BaseManager {\n\tprivate _sliceMachineManager: SliceMachineManager;\n\n\tconstructor(sliceMachineManager: SliceMachineManager) {\n\t\tthis._sliceMachineManager = sliceMachineManager;\n\t}\n\n\tprotected get prismicAuthManager(): PrismicAuthManager {\n\t\treturn this._sliceMachineManager.getPrismicAuthManager();\n\t}\n\n\tprotected get sliceMachinePluginRunner():\n\t\t| SliceMachinePluginRunner\n\t\t| undefined {\n\t\treturn this._sliceMachineManager.getSliceMachinePluginRunner();\n\t}\n\n\tprotected set sliceMachinePluginRunner(\n\t\tsliceMachinePluginRunner: SliceMachinePluginRunner | undefined,\n\t) {\n\t\t// @ts-expect-error - _sliceMachinePluginRunner is private. We\n\t\t// are intentially ignoring its privacy to allow Manager\n\t\t// classes to access a shared plugin runner via protected\n\t\t// getters and setters.\n\t\tthis._sliceMachineManager._sliceMachinePluginRunner =\n\t\t\tsliceMachinePluginRunner;\n\t}\n\n\tprotected get cwd(): string {\n\t\treturn this._sliceMachineManager.cwd;\n\t}\n\n\t// Protected instance prevents circular intellisense\n\t// e.g. sliceMachineManager.user.user.user\n\tprotected get user(): UserManager {\n\t\treturn this._sliceMachineManager.user;\n\t}\n\tprotected get prismicRepository(): PrismicRepositoryManager {\n\t\treturn this._sliceMachineManager.prismicRepository;\n\t}\n\n\tprotected get plugins(): PluginsManager {\n\t\treturn this._sliceMachineManager.plugins;\n\t}\n\n\tprotected get project(): ProjectManager {\n\t\treturn this._sliceMachineManager.project;\n\t}\n\tprotected get customTypes(): CustomTypesManager {\n\t\treturn this._sliceMachineManager.customTypes;\n\t}\n\tprotected get slices(): SlicesManager {\n\t\treturn this._sliceMachineManager.slices;\n\t}\n\tprotected get snippets(): SnippetsManager {\n\t\treturn this._sliceMachineManager.snippets;\n\t}\n\tprotected get screenshots(): ScreenshotsManager {\n\t\treturn this._sliceMachineManager.screenshots;\n\t}\n\tprotected get simulator(): SimulatorManager {\n\t\treturn this._sliceMachineManager.simulator;\n\t}\n\tprotected get documentation(): DocumentationManager {\n\t\treturn this._sliceMachineManager.documentation;\n\t}\n\tprotected get sliceTemplateLibrary(): SliceTemplateLibraryManager {\n\t\treturn this._sliceMachineManager.sliceTemplateLibrary;\n\t}\n\n\tprotected get versions(): VersionsManager {\n\t\treturn this._sliceMachineManager.versions;\n\t}\n\n\tprotected get telemetry(): TelemetryManager {\n\t\treturn this._sliceMachineManager.telemetry;\n\t}\n}\n"],"names":[],"mappings":";;;;;;MAsBsB,YAAW;AAAA,EAGhC,YAAY,qBAAwC;AAF5C;AAGP,SAAK,uBAAuB;AAAA,EAC7B;AAAA,EAEA,IAAc,qBAAkB;AACxB,WAAA,KAAK,qBAAqB;EAClC;AAAA,EAEA,IAAc,2BAAwB;AAG9B,WAAA,KAAK,qBAAqB;EAClC;AAAA,EAEA,IAAc,yBACb,0BAA8D;AAM9D,SAAK,qBAAqB,4BACzB;AAAA,EACF;AAAA,EAEA,IAAc,MAAG;AAChB,WAAO,KAAK,qBAAqB;AAAA,EAClC;AAAA;AAAA;AAAA,EAIA,IAAc,OAAI;AACjB,WAAO,KAAK,qBAAqB;AAAA,EAClC;AAAA,EACA,IAAc,oBAAiB;AAC9B,WAAO,KAAK,qBAAqB;AAAA,EAClC;AAAA,EAEA,IAAc,UAAO;AACpB,WAAO,KAAK,qBAAqB;AAAA,EAClC;AAAA,EAEA,IAAc,UAAO;AACpB,WAAO,KAAK,qBAAqB;AAAA,EAClC;AAAA,EACA,IAAc,cAAW;AACxB,WAAO,KAAK,qBAAqB;AAAA,EAClC;AAAA,EACA,IAAc,SAAM;AACnB,WAAO,KAAK,qBAAqB;AAAA,EAClC;AAAA,EACA,IAAc,WAAQ;AACrB,WAAO,KAAK,qBAAqB;AAAA,EAClC;AAAA,EACA,IAAc,cAAW;AACxB,WAAO,KAAK,qBAAqB;AAAA,EAClC;AAAA,EACA,IAAc,YAAS;AACtB,WAAO,KAAK,qBAAqB;AAAA,EAClC;AAAA,EACA,IAAc,gBAAa;AAC1B,WAAO,KAAK,qBAAqB;AAAA,EAClC;AAAA,EACA,IAAc,uBAAoB;AACjC,WAAO,KAAK,qBAAqB;AAAA,EAClC;AAAA,EAEA,IAAc,WAAQ;AACrB,WAAO,KAAK,qBAAqB;AAAA,EAClC;AAAA,EAEA,IAAc,YAAS;AACtB,WAAO,KAAK,qBAAqB;AAAA,EAClC;AACA;"}
|
|
1
|
+
{"version":3,"file":"BaseManager.js","sources":["../../../src/managers/BaseManager.ts"],"sourcesContent":["import { SliceMachinePluginRunner } from \"@slicemachine/plugin-kit\";\nimport { PrismicAuthManager } from \"../auth/PrismicAuthManager\";\n\nimport { SliceMachineManager } from \"./SliceMachineManager\";\n\nimport { UserManager } from \"./user/UserManager\";\nimport { PrismicRepositoryManager } from \"./prismicRepository/PrismicRepositoryManager\";\n\nimport { PluginsManager } from \"./plugins/PluginsManager\";\n\nimport { ProjectManager } from \"./project/ProjectManager\";\nimport { CustomTypesManager } from \"./customTypes/CustomTypesManager\";\nimport { SlicesManager } from \"./slices/SlicesManager\";\nimport { SnippetsManager } from \"./snippets/SnippetsManager\";\nimport { ScreenshotsManager } from \"./screenshots/ScreenshotsManager\";\nimport { SimulatorManager } from \"./simulator/SimulatorManager\";\n\nimport { VersionsManager } from \"./versions/VersionsManager\";\nimport { TelemetryManager } from \"./telemetry/TelemetryManager\";\nimport { DocumentationManager } from \"./documentation/DocumentationManager\";\nimport { SliceTemplateLibraryManager } from \"./sliceTemplateLibrary/SliceTemplateLibraryManager\";\n\nexport abstract class BaseManager {\n\tprivate _sliceMachineManager: SliceMachineManager;\n\n\tconstructor(sliceMachineManager: SliceMachineManager) {\n\t\tthis._sliceMachineManager = sliceMachineManager;\n\t}\n\n\tprotected get prismicAuthManager(): PrismicAuthManager {\n\t\treturn this._sliceMachineManager.getPrismicAuthManager();\n\t}\n\n\tprotected get sliceMachinePluginRunner():\n\t\t| SliceMachinePluginRunner\n\t\t| undefined {\n\t\treturn this._sliceMachineManager.getSliceMachinePluginRunner();\n\t}\n\n\tprotected set sliceMachinePluginRunner(\n\t\tsliceMachinePluginRunner: SliceMachinePluginRunner | undefined,\n\t) {\n\t\t// @ts-expect-error - _sliceMachinePluginRunner is private. We\n\t\t// are intentially ignoring its privacy to allow Manager\n\t\t// classes to access a shared plugin runner via protected\n\t\t// getters and setters.\n\t\tthis._sliceMachineManager._sliceMachinePluginRunner =\n\t\t\tsliceMachinePluginRunner;\n\t}\n\n\tprotected get cwd(): string {\n\t\treturn this._sliceMachineManager.cwd;\n\t}\n\n\tprotected getMode(): string {\n\t\treturn this._sliceMachineManager.getMode();\n\t}\n\n\t// Protected instance prevents circular intellisense\n\t// e.g. sliceMachineManager.user.user.user\n\tprotected get user(): UserManager {\n\t\treturn this._sliceMachineManager.user;\n\t}\n\tprotected get prismicRepository(): PrismicRepositoryManager {\n\t\treturn this._sliceMachineManager.prismicRepository;\n\t}\n\n\tprotected get plugins(): PluginsManager {\n\t\treturn this._sliceMachineManager.plugins;\n\t}\n\n\tprotected get project(): ProjectManager {\n\t\treturn this._sliceMachineManager.project;\n\t}\n\tprotected get customTypes(): CustomTypesManager {\n\t\treturn this._sliceMachineManager.customTypes;\n\t}\n\tprotected get slices(): SlicesManager {\n\t\treturn this._sliceMachineManager.slices;\n\t}\n\tprotected get snippets(): SnippetsManager {\n\t\treturn this._sliceMachineManager.snippets;\n\t}\n\tprotected get screenshots(): ScreenshotsManager {\n\t\treturn this._sliceMachineManager.screenshots;\n\t}\n\tprotected get simulator(): SimulatorManager {\n\t\treturn this._sliceMachineManager.simulator;\n\t}\n\tprotected get documentation(): DocumentationManager {\n\t\treturn this._sliceMachineManager.documentation;\n\t}\n\tprotected get sliceTemplateLibrary(): SliceTemplateLibraryManager {\n\t\treturn this._sliceMachineManager.sliceTemplateLibrary;\n\t}\n\n\tprotected get versions(): VersionsManager {\n\t\treturn this._sliceMachineManager.versions;\n\t}\n\n\tprotected get telemetry(): TelemetryManager {\n\t\treturn this._sliceMachineManager.telemetry;\n\t}\n}\n"],"names":[],"mappings":";;;;;;MAsBsB,YAAW;AAAA,EAGhC,YAAY,qBAAwC;AAF5C;AAGP,SAAK,uBAAuB;AAAA,EAC7B;AAAA,EAEA,IAAc,qBAAkB;AACxB,WAAA,KAAK,qBAAqB;EAClC;AAAA,EAEA,IAAc,2BAAwB;AAG9B,WAAA,KAAK,qBAAqB;EAClC;AAAA,EAEA,IAAc,yBACb,0BAA8D;AAM9D,SAAK,qBAAqB,4BACzB;AAAA,EACF;AAAA,EAEA,IAAc,MAAG;AAChB,WAAO,KAAK,qBAAqB;AAAA,EAClC;AAAA,EAEU,UAAO;AACT,WAAA,KAAK,qBAAqB;EAClC;AAAA;AAAA;AAAA,EAIA,IAAc,OAAI;AACjB,WAAO,KAAK,qBAAqB;AAAA,EAClC;AAAA,EACA,IAAc,oBAAiB;AAC9B,WAAO,KAAK,qBAAqB;AAAA,EAClC;AAAA,EAEA,IAAc,UAAO;AACpB,WAAO,KAAK,qBAAqB;AAAA,EAClC;AAAA,EAEA,IAAc,UAAO;AACpB,WAAO,KAAK,qBAAqB;AAAA,EAClC;AAAA,EACA,IAAc,cAAW;AACxB,WAAO,KAAK,qBAAqB;AAAA,EAClC;AAAA,EACA,IAAc,SAAM;AACnB,WAAO,KAAK,qBAAqB;AAAA,EAClC;AAAA,EACA,IAAc,WAAQ;AACrB,WAAO,KAAK,qBAAqB;AAAA,EAClC;AAAA,EACA,IAAc,cAAW;AACxB,WAAO,KAAK,qBAAqB;AAAA,EAClC;AAAA,EACA,IAAc,YAAS;AACtB,WAAO,KAAK,qBAAqB;AAAA,EAClC;AAAA,EACA,IAAc,gBAAa;AAC1B,WAAO,KAAK,qBAAqB;AAAA,EAClC;AAAA,EACA,IAAc,uBAAoB;AACjC,WAAO,KAAK,qBAAqB;AAAA,EAClC;AAAA,EAEA,IAAc,WAAQ;AACrB,WAAO,KAAK,qBAAqB;AAAA,EAClC;AAAA,EAEA,IAAc,YAAS;AACtB,WAAO,KAAK,qBAAqB;AAAA,EAClC;AACA;"}
|
|
@@ -10,6 +10,8 @@ const prismicCustomTypesClient = require("@prismicio/custom-types-client");
|
|
|
10
10
|
const createContentDigest = require("../lib/createContentDigest.cjs");
|
|
11
11
|
const createPrismicAuthManager = require("../auth/createPrismicAuthManager.cjs");
|
|
12
12
|
const API_ENDPOINTS = require("../constants/API_ENDPOINTS.cjs");
|
|
13
|
+
const APPLICATION_MODE = require("../constants/APPLICATION_MODE.cjs");
|
|
14
|
+
const errors = require("../errors.cjs");
|
|
13
15
|
const UserManager = require("./user/UserManager.cjs");
|
|
14
16
|
const PrismicRepositoryManager = require("./prismicRepository/PrismicRepositoryManager.cjs");
|
|
15
17
|
const PluginsManager = require("./plugins/PluginsManager.cjs");
|
|
@@ -99,6 +101,13 @@ class SliceMachineManager {
|
|
|
99
101
|
getAPIEndpoints() {
|
|
100
102
|
return API_ENDPOINTS.API_ENDPOINTS;
|
|
101
103
|
}
|
|
104
|
+
getMode() {
|
|
105
|
+
const mode = process.env.SM_ENV || APPLICATION_MODE.APPLICATION_MODE.Production;
|
|
106
|
+
if (mode !== APPLICATION_MODE.APPLICATION_MODE.Production && mode !== APPLICATION_MODE.APPLICATION_MODE.Staging && mode !== APPLICATION_MODE.APPLICATION_MODE.Development) {
|
|
107
|
+
throw new errors.UnexpectedDataError(`Invalid application mode: ${mode}`);
|
|
108
|
+
}
|
|
109
|
+
return mode;
|
|
110
|
+
}
|
|
102
111
|
// TODO: Remove this global-state method. It is expensive and a
|
|
103
112
|
// potential source of bugs due to data inconsistency. SM UI relies on
|
|
104
113
|
// it heavily, so removal will require significant effort.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SliceMachineManager.cjs","sources":["../../../src/managers/SliceMachineManager.ts"],"sourcesContent":["import {\n\tSharedSlice,\n\tCustomType,\n} from \"@prismicio/types-internal/lib/customtypes\";\nimport { SharedSliceContent } from \"@prismicio/types-internal/lib/content\";\nimport * as prismicCustomTypesClient from \"@prismicio/custom-types-client\";\nimport {\n\tSliceMachinePlugin,\n\tSliceMachinePluginRunner,\n} from \"@slicemachine/plugin-kit\";\n\nimport { createContentDigest } from \"../lib/createContentDigest\";\n\nimport { PackageManager, SliceMachineConfig } from \"../types\";\nimport {\n\tPrismicAuthManager,\n\tPrismicUserProfile,\n} from \"../auth/PrismicAuthManager\";\nimport { createPrismicAuthManager } from \"../auth/createPrismicAuthManager\";\n\nimport { API_ENDPOINTS, APIEndpoints } from \"../constants/API_ENDPOINTS\";\n\nimport { UserManager } from \"./user/UserManager\";\nimport { PrismicRepositoryManager } from \"./prismicRepository/PrismicRepositoryManager\";\n\nimport { PluginsManager } from \"./plugins/PluginsManager\";\n\nimport { ProjectManager } from \"./project/ProjectManager\";\nimport { CustomTypesManager } from \"./customTypes/CustomTypesManager\";\nimport { SlicesManager } from \"./slices/SlicesManager\";\nimport { SnippetsManager } from \"./snippets/SnippetsManager\";\nimport { ScreenshotsManager } from \"./screenshots/ScreenshotsManager\";\nimport { SimulatorManager } from \"./simulator/SimulatorManager\";\n\nimport { VersionsManager } from \"./versions/VersionsManager\";\n\nimport { TelemetryManager } from \"./telemetry/TelemetryManager\";\nimport { buildPrismicRepositoryAPIEndpoint } from \"../lib/buildPrismicRepositoryAPIEndpoint\";\nimport { DocumentationManager } from \"./documentation/DocumentationManager\";\nimport { SliceTemplateLibraryManager } from \"./sliceTemplateLibrary/SliceTemplateLibraryManager\";\nimport { GitManager } from \"./git/GitManager\";\n\ntype SliceMachineManagerGetStateReturnType = {\n\tenv: {\n\t\tshortId?: string;\n\t\tintercomHash?: string;\n\t\tmanifest: {\n\t\t\tapiEndpoint: string;\n\t\t\tlocalSliceSimulatorURL?: string;\n\t\t};\n\t\trepo: string;\n\t\tpackageManager: PackageManager;\n\t\tsupportsSliceSimulator: boolean;\n\t\tendpoints: APIEndpoints;\n\t};\n\tlibraries: {\n\t\tname: string;\n\t\tpath: string;\n\t\tisLocal: boolean;\n\t\tcomponents: {\n\t\t\tfrom: string;\n\t\t\thref: string;\n\t\t\tpathToSlice: string;\n\t\t\tfileName: string | null;\n\t\t\textension: string | null;\n\t\t\tmodel: SharedSlice;\n\t\t\tscreenshots: Record<\n\t\t\t\tstring,\n\t\t\t\t{\n\t\t\t\t\thash: string;\n\t\t\t\t\tdata: Buffer;\n\t\t\t\t}\n\t\t\t>;\n\t\t\tmocks?: SharedSliceContent[];\n\t\t}[];\n\t\tmeta: {\n\t\t\tname?: string;\n\t\t\tversion?: string;\n\t\t\tisNodeModule: boolean;\n\t\t\tisDownloaded: boolean;\n\t\t\tisManual: boolean;\n\t\t};\n\t}[];\n\tcustomTypes: CustomType[];\n\tremoteCustomTypes: CustomType[];\n\tremoteSlices: SharedSlice[];\n\tclientError?: {\n\t\tname: string;\n\t\tmessage: string;\n\t\tstatus: number;\n\t\treason: string;\n\t};\n};\n\ntype SliceMachineManagerConstructorArgs = {\n\tcwd?: string;\n\tnativePlugins?: Record<string, SliceMachinePlugin>;\n};\n\nexport class SliceMachineManager {\n\tprivate _sliceMachinePluginRunner: SliceMachinePluginRunner | undefined =\n\t\tundefined;\n\tprivate _prismicAuthManager: PrismicAuthManager;\n\n\tcwd: string;\n\n\tcustomTypes: CustomTypesManager;\n\tplugins: PluginsManager;\n\tprismicRepository: PrismicRepositoryManager;\n\tproject: ProjectManager;\n\tscreenshots: ScreenshotsManager;\n\tsimulator: SimulatorManager;\n\tslices: SlicesManager;\n\tsnippets: SnippetsManager;\n\tdocumentation: DocumentationManager;\n\tsliceTemplateLibrary: SliceTemplateLibraryManager;\n\ttelemetry: TelemetryManager;\n\tuser: UserManager;\n\tversions: VersionsManager;\n\tgit: GitManager;\n\n\tconstructor(args?: SliceMachineManagerConstructorArgs) {\n\t\t// _prismicAuthManager must be set at least before UserManager\n\t\t// is instantiated. It depends on the PrismicAuthManager for\n\t\t// authentication-related methods.\n\t\tthis._prismicAuthManager = createPrismicAuthManager();\n\n\t\tthis.user = new UserManager(this);\n\t\tthis.prismicRepository = new PrismicRepositoryManager(this);\n\n\t\tthis.plugins = new PluginsManager(this, {\n\t\t\tnativePlugins: args?.nativePlugins,\n\t\t});\n\n\t\tthis.project = new ProjectManager(this);\n\t\tthis.customTypes = new CustomTypesManager(this);\n\t\tthis.slices = new SlicesManager(this);\n\t\tthis.snippets = new SnippetsManager(this);\n\t\tthis.screenshots = new ScreenshotsManager(this);\n\t\tthis.simulator = new SimulatorManager(this);\n\t\tthis.documentation = new DocumentationManager(this);\n\t\tthis.sliceTemplateLibrary = new SliceTemplateLibraryManager(this);\n\n\t\tthis.versions = new VersionsManager(this);\n\n\t\tthis.telemetry = new TelemetryManager(this);\n\n\t\tthis.git = new GitManager(this);\n\n\t\tthis.cwd = args?.cwd ?? process.cwd();\n\t}\n\n\t// The `_sliceMachinePluginRunner` property is hidden behind a function to\n\t// discourage access. Using a function deliberatly breaks the pattern\n\t// of other child managers that are accessible as properties, like\n\t// `project`, `plugins`, etc. We do not treat SliceMachinePluginRunner\n\t// as a child manager.\n\tgetSliceMachinePluginRunner(): SliceMachinePluginRunner | undefined {\n\t\treturn this._sliceMachinePluginRunner;\n\t}\n\n\t// The `_prismicAuthManager` property is hidden behind a function to\n\t// discourage access. Using a function deliberatly breaks the pattern\n\t// of other child managers that are accessible as properties, like\n\t// `project`, `plugins`, etc. We do not treat PrismicAuthManager as a\n\t// child manager.\n\tgetPrismicAuthManager(): PrismicAuthManager {\n\t\treturn this._prismicAuthManager;\n\t}\n\n\tgetAPIEndpoints(): APIEndpoints {\n\t\treturn API_ENDPOINTS;\n\t}\n\n\t// TODO: Remove this global-state method. It is expensive and a\n\t// potential source of bugs due to data inconsistency. SM UI relies on\n\t// it heavily, so removal will require significant effort.\n\tasync getState(): Promise<SliceMachineManagerGetStateReturnType> {\n\t\tconst [\n\t\t\t{ sliceMachineConfig, libraries },\n\t\t\t{ profile, remoteCustomTypes, remoteSlices, authError },\n\t\t\tcustomTypes,\n\t\t\tpackageManager,\n\t\t] = await Promise.all([\n\t\t\tthis.project.getSliceMachineConfig().then(async (sliceMachineConfig) => {\n\t\t\t\tconst libraries = await this._getLibraries(sliceMachineConfig);\n\n\t\t\t\treturn { sliceMachineConfig, libraries };\n\t\t\t}),\n\t\t\tthis._getProfile().then(async (profile) => {\n\t\t\t\tlet authError;\n\t\t\t\tif (profile) {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tconst [remoteCustomTypes, remoteSlices] = await Promise.all([\n\t\t\t\t\t\t\tthis.customTypes.fetchRemoteCustomTypes(),\n\t\t\t\t\t\t\tthis.slices.fetchRemoteSlices(),\n\t\t\t\t\t\t]);\n\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\tprofile,\n\t\t\t\t\t\t\tremoteCustomTypes,\n\t\t\t\t\t\t\tremoteSlices,\n\t\t\t\t\t\t\tauthError,\n\t\t\t\t\t\t};\n\t\t\t\t\t} catch (error) {\n\t\t\t\t\t\tif (error instanceof prismicCustomTypesClient.ForbiddenError) {\n\t\t\t\t\t\t\tauthError = {\n\t\t\t\t\t\t\t\tname: \"__stub__\",\n\t\t\t\t\t\t\t\tmessage: \"__stub__\",\n\t\t\t\t\t\t\t\treason: \"__stub__\",\n\t\t\t\t\t\t\t\tstatus: 401,\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t} else if (\n\t\t\t\t\t\t\terror instanceof prismicCustomTypesClient.UnauthorizedError\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tauthError = {\n\t\t\t\t\t\t\t\tname: \"__stub__\",\n\t\t\t\t\t\t\t\tmessage: \"__stub__\",\n\t\t\t\t\t\t\t\treason: \"__stub__\",\n\t\t\t\t\t\t\t\tstatus: 403,\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tthrow error;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn {\n\t\t\t\t\tprofile,\n\t\t\t\t\tremoteCustomTypes: [],\n\t\t\t\t\tremoteSlices: [],\n\t\t\t\t\tauthError,\n\t\t\t\t};\n\t\t\t}),\n\t\t\tthis._getCustomTypes(),\n\t\t\tthis.project.detectPackageManager(),\n\t\t]);\n\n\t\t// SM UI detects if a user is logged out by looking at\n\t\t// `clientError`. Here, we simulate what the old core does by\n\t\t// returning an `ErrorWithStatus`-like object if the user does\n\t\t// not have access to the repository or is not logged in.\n\t\tconst clientError: SliceMachineManagerGetStateReturnType[\"clientError\"] =\n\t\t\tauthError ||\n\t\t\t(profile\n\t\t\t\t? undefined\n\t\t\t\t: {\n\t\t\t\t\t\tname: \"__stub__\",\n\t\t\t\t\t\tmessage: \"__stub__\",\n\t\t\t\t\t\treason: \"__stub__\",\n\t\t\t\t\t\tstatus: 401, // Needed to trigger the unauthorized flow.\n\t\t\t\t });\n\n\t\treturn {\n\t\t\tenv: {\n\t\t\t\tmanifest: {\n\t\t\t\t\tapiEndpoint:\n\t\t\t\t\t\tsliceMachineConfig.apiEndpoint ||\n\t\t\t\t\t\tbuildPrismicRepositoryAPIEndpoint(\n\t\t\t\t\t\t\tsliceMachineConfig.repositoryName,\n\t\t\t\t\t\t),\n\t\t\t\t\tlocalSliceSimulatorURL: sliceMachineConfig.localSliceSimulatorURL,\n\t\t\t\t},\n\t\t\t\tpackageManager,\n\t\t\t\tsupportsSliceSimulator: this.simulator.supportsSliceSimulator(),\n\t\t\t\trepo: sliceMachineConfig.repositoryName,\n\t\t\t\tintercomHash: profile?.intercomHash,\n\t\t\t\tshortId: profile?.shortId,\n\t\t\t\tendpoints: this.getAPIEndpoints(),\n\t\t\t},\n\t\t\tlibraries,\n\t\t\tcustomTypes,\n\t\t\tremoteCustomTypes,\n\t\t\tremoteSlices,\n\t\t\tclientError,\n\t\t};\n\t}\n\n\tprivate async _getProfile(): Promise<PrismicUserProfile | undefined> {\n\t\tlet profile: PrismicUserProfile | undefined;\n\n\t\tconst isLoggedIn = await this.user.checkIsLoggedIn();\n\n\t\tif (isLoggedIn) {\n\t\t\tprofile = await this.user.getProfile();\n\t\t\tawait this.user.refreshAuthenticationToken();\n\t\t}\n\n\t\treturn profile;\n\t}\n\n\tprivate async _getLibraries(\n\t\tsliceMachineConfig: SliceMachineConfig,\n\t): Promise<SliceMachineManagerGetStateReturnType[\"libraries\"]> {\n\t\tconst libraries: SliceMachineManagerGetStateReturnType[\"libraries\"] = [];\n\n\t\tif (sliceMachineConfig.libraries) {\n\t\t\tawait Promise.all(\n\t\t\t\tsliceMachineConfig.libraries.map(async (libraryID) => {\n\t\t\t\t\tconst { sliceIDs } = await this.slices.readSliceLibrary({\n\t\t\t\t\t\tlibraryID,\n\t\t\t\t\t});\n\n\t\t\t\t\tif (sliceIDs) {\n\t\t\t\t\t\tconst components: SliceMachineManagerGetStateReturnType[\"libraries\"][number][\"components\"] =\n\t\t\t\t\t\t\t[];\n\n\t\t\t\t\t\tawait Promise.all(\n\t\t\t\t\t\t\tsliceIDs.map(async (sliceID) => {\n\t\t\t\t\t\t\t\tconst [{ model }, { mocks }] = await Promise.all([\n\t\t\t\t\t\t\t\t\tthis.slices.readSlice({ libraryID, sliceID }),\n\t\t\t\t\t\t\t\t\tthis.slices.readSliceMocks({ libraryID, sliceID }),\n\t\t\t\t\t\t\t\t]);\n\n\t\t\t\t\t\t\t\tif (model) {\n\t\t\t\t\t\t\t\t\tconst screenshots: (typeof components)[number][\"screenshots\"] =\n\t\t\t\t\t\t\t\t\t\t{};\n\t\t\t\t\t\t\t\t\tawait Promise.all(\n\t\t\t\t\t\t\t\t\t\tmodel.variations.map(async (variation) => {\n\t\t\t\t\t\t\t\t\t\t\tconst screenshot = await this.slices.readSliceScreenshot({\n\t\t\t\t\t\t\t\t\t\t\t\tlibraryID,\n\t\t\t\t\t\t\t\t\t\t\t\tsliceID,\n\t\t\t\t\t\t\t\t\t\t\t\tvariationID: variation.id,\n\t\t\t\t\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\t\t\t\t\tif (screenshot.data) {\n\t\t\t\t\t\t\t\t\t\t\t\tscreenshots[variation.id] = {\n\t\t\t\t\t\t\t\t\t\t\t\t\thash: createContentDigest(screenshot.data),\n\t\t\t\t\t\t\t\t\t\t\t\t\tdata: screenshot.data,\n\t\t\t\t\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t\t\t);\n\n\t\t\t\t\t\t\t\t\tcomponents.push({\n\t\t\t\t\t\t\t\t\t\tfrom: libraryID,\n\t\t\t\t\t\t\t\t\t\thref: libraryID.replace(/\\//g, \"--\"),\n\t\t\t\t\t\t\t\t\t\tpathToSlice: \"pathToSlice\",\n\t\t\t\t\t\t\t\t\t\tfileName: \"fileName\",\n\t\t\t\t\t\t\t\t\t\textension: \"extension\",\n\t\t\t\t\t\t\t\t\t\tmodel,\n\t\t\t\t\t\t\t\t\t\tscreenshots,\n\t\t\t\t\t\t\t\t\t\tmocks,\n\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\tlibraries.push({\n\t\t\t\t\t\t\tname: libraryID,\n\t\t\t\t\t\t\tpath: libraryID,\n\t\t\t\t\t\t\tisLocal: true, // TODO: Do we still support node_modules-based libraries?\n\t\t\t\t\t\t\tcomponents,\n\t\t\t\t\t\t\tmeta: {\n\t\t\t\t\t\t\t\t// TODO: Do we still support node_modules-based libraries?\n\t\t\t\t\t\t\t\tisNodeModule: false,\n\t\t\t\t\t\t\t\tisDownloaded: false,\n\t\t\t\t\t\t\t\tisManual: true,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t}),\n\t\t\t);\n\t\t}\n\n\t\t// Preserve library order from config file\n\t\treturn libraries.sort((library1, library2) => {\n\t\t\tconst libraryIndex1 =\n\t\t\t\tsliceMachineConfig.libraries?.indexOf(library1.name) || 0;\n\t\t\tconst libraryIndex2 =\n\t\t\t\tsliceMachineConfig.libraries?.indexOf(library2.name) || 0;\n\n\t\t\treturn Math.sign(libraryIndex1 - libraryIndex2);\n\t\t});\n\t}\n\n\tprivate async _getCustomTypes(): Promise<\n\t\tSliceMachineManagerGetStateReturnType[\"customTypes\"]\n\t> {\n\t\tconst customTypes: SliceMachineManagerGetStateReturnType[\"customTypes\"] =\n\t\t\t[];\n\n\t\tconst { ids: customTypeIDs } =\n\t\t\tawait this.customTypes.readCustomTypeLibrary();\n\n\t\tif (customTypeIDs) {\n\t\t\tawait Promise.all(\n\t\t\t\tcustomTypeIDs.map(async (customTypeID) => {\n\t\t\t\t\tconst { model } = await this.customTypes.readCustomType({\n\t\t\t\t\t\tid: customTypeID,\n\t\t\t\t\t});\n\n\t\t\t\t\tif (model) {\n\t\t\t\t\t\tcustomTypes.push(model);\n\t\t\t\t\t}\n\t\t\t\t}),\n\t\t\t);\n\t\t}\n\n\t\treturn customTypes;\n\t}\n}\n"],"names":["createPrismicAuthManager","UserManager","PrismicRepositoryManager","PluginsManager","ProjectManager","CustomTypesManager","SlicesManager","SnippetsManager","ScreenshotsManager","SimulatorManager","DocumentationManager","SliceTemplateLibraryManager","VersionsManager","TelemetryManager","GitManager","API_ENDPOINTS","sliceMachineConfig","libraries","profile","authError","remoteCustomTypes","remoteSlices","prismicCustomTypesClient","buildPrismicRepositoryAPIEndpoint","createContentDigest"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"SliceMachineManager.cjs","sources":["../../../src/managers/SliceMachineManager.ts"],"sourcesContent":["import {\n\tSharedSlice,\n\tCustomType,\n} from \"@prismicio/types-internal/lib/customtypes\";\nimport { SharedSliceContent } from \"@prismicio/types-internal/lib/content\";\nimport * as prismicCustomTypesClient from \"@prismicio/custom-types-client\";\nimport {\n\tSliceMachinePlugin,\n\tSliceMachinePluginRunner,\n} from \"@slicemachine/plugin-kit\";\n\nimport { createContentDigest } from \"../lib/createContentDigest\";\n\nimport { PackageManager, SliceMachineConfig } from \"../types\";\nimport {\n\tPrismicAuthManager,\n\tPrismicUserProfile,\n} from \"../auth/PrismicAuthManager\";\nimport { createPrismicAuthManager } from \"../auth/createPrismicAuthManager\";\n\nimport { API_ENDPOINTS, APIEndpoints } from \"../constants/API_ENDPOINTS\";\nimport { APPLICATION_MODE } from \"../constants/APPLICATION_MODE\";\n\nimport { UnexpectedDataError } from \"../errors\";\n\nimport { UserManager } from \"./user/UserManager\";\nimport { PrismicRepositoryManager } from \"./prismicRepository/PrismicRepositoryManager\";\n\nimport { PluginsManager } from \"./plugins/PluginsManager\";\n\nimport { ProjectManager } from \"./project/ProjectManager\";\nimport { CustomTypesManager } from \"./customTypes/CustomTypesManager\";\nimport { SlicesManager } from \"./slices/SlicesManager\";\nimport { SnippetsManager } from \"./snippets/SnippetsManager\";\nimport { ScreenshotsManager } from \"./screenshots/ScreenshotsManager\";\nimport { SimulatorManager } from \"./simulator/SimulatorManager\";\n\nimport { VersionsManager } from \"./versions/VersionsManager\";\n\nimport { TelemetryManager } from \"./telemetry/TelemetryManager\";\nimport { buildPrismicRepositoryAPIEndpoint } from \"../lib/buildPrismicRepositoryAPIEndpoint\";\nimport { DocumentationManager } from \"./documentation/DocumentationManager\";\nimport { SliceTemplateLibraryManager } from \"./sliceTemplateLibrary/SliceTemplateLibraryManager\";\nimport { GitManager } from \"./git/GitManager\";\n\ntype SliceMachineManagerGetStateReturnType = {\n\tenv: {\n\t\tshortId?: string;\n\t\tintercomHash?: string;\n\t\tmanifest: {\n\t\t\tapiEndpoint: string;\n\t\t\tlocalSliceSimulatorURL?: string;\n\t\t};\n\t\trepo: string;\n\t\tpackageManager: PackageManager;\n\t\tsupportsSliceSimulator: boolean;\n\t\tendpoints: APIEndpoints;\n\t};\n\tlibraries: {\n\t\tname: string;\n\t\tpath: string;\n\t\tisLocal: boolean;\n\t\tcomponents: {\n\t\t\tfrom: string;\n\t\t\thref: string;\n\t\t\tpathToSlice: string;\n\t\t\tfileName: string | null;\n\t\t\textension: string | null;\n\t\t\tmodel: SharedSlice;\n\t\t\tscreenshots: Record<\n\t\t\t\tstring,\n\t\t\t\t{\n\t\t\t\t\thash: string;\n\t\t\t\t\tdata: Buffer;\n\t\t\t\t}\n\t\t\t>;\n\t\t\tmocks?: SharedSliceContent[];\n\t\t}[];\n\t\tmeta: {\n\t\t\tname?: string;\n\t\t\tversion?: string;\n\t\t\tisNodeModule: boolean;\n\t\t\tisDownloaded: boolean;\n\t\t\tisManual: boolean;\n\t\t};\n\t}[];\n\tcustomTypes: CustomType[];\n\tremoteCustomTypes: CustomType[];\n\tremoteSlices: SharedSlice[];\n\tclientError?: {\n\t\tname: string;\n\t\tmessage: string;\n\t\tstatus: number;\n\t\treason: string;\n\t};\n};\n\ntype SliceMachineManagerConstructorArgs = {\n\tcwd?: string;\n\tnativePlugins?: Record<string, SliceMachinePlugin>;\n};\n\nexport class SliceMachineManager {\n\tprivate _sliceMachinePluginRunner: SliceMachinePluginRunner | undefined =\n\t\tundefined;\n\tprivate _prismicAuthManager: PrismicAuthManager;\n\n\tcwd: string;\n\n\tcustomTypes: CustomTypesManager;\n\tplugins: PluginsManager;\n\tprismicRepository: PrismicRepositoryManager;\n\tproject: ProjectManager;\n\tscreenshots: ScreenshotsManager;\n\tsimulator: SimulatorManager;\n\tslices: SlicesManager;\n\tsnippets: SnippetsManager;\n\tdocumentation: DocumentationManager;\n\tsliceTemplateLibrary: SliceTemplateLibraryManager;\n\ttelemetry: TelemetryManager;\n\tuser: UserManager;\n\tversions: VersionsManager;\n\tgit: GitManager;\n\n\tconstructor(args?: SliceMachineManagerConstructorArgs) {\n\t\t// _prismicAuthManager must be set at least before UserManager\n\t\t// is instantiated. It depends on the PrismicAuthManager for\n\t\t// authentication-related methods.\n\t\tthis._prismicAuthManager = createPrismicAuthManager();\n\n\t\tthis.user = new UserManager(this);\n\t\tthis.prismicRepository = new PrismicRepositoryManager(this);\n\n\t\tthis.plugins = new PluginsManager(this, {\n\t\t\tnativePlugins: args?.nativePlugins,\n\t\t});\n\n\t\tthis.project = new ProjectManager(this);\n\t\tthis.customTypes = new CustomTypesManager(this);\n\t\tthis.slices = new SlicesManager(this);\n\t\tthis.snippets = new SnippetsManager(this);\n\t\tthis.screenshots = new ScreenshotsManager(this);\n\t\tthis.simulator = new SimulatorManager(this);\n\t\tthis.documentation = new DocumentationManager(this);\n\t\tthis.sliceTemplateLibrary = new SliceTemplateLibraryManager(this);\n\n\t\tthis.versions = new VersionsManager(this);\n\n\t\tthis.telemetry = new TelemetryManager(this);\n\n\t\tthis.git = new GitManager(this);\n\n\t\tthis.cwd = args?.cwd ?? process.cwd();\n\t}\n\n\t// The `_sliceMachinePluginRunner` property is hidden behind a function to\n\t// discourage access. Using a function deliberatly breaks the pattern\n\t// of other child managers that are accessible as properties, like\n\t// `project`, `plugins`, etc. We do not treat SliceMachinePluginRunner\n\t// as a child manager.\n\tgetSliceMachinePluginRunner(): SliceMachinePluginRunner | undefined {\n\t\treturn this._sliceMachinePluginRunner;\n\t}\n\n\t// The `_prismicAuthManager` property is hidden behind a function to\n\t// discourage access. Using a function deliberatly breaks the pattern\n\t// of other child managers that are accessible as properties, like\n\t// `project`, `plugins`, etc. We do not treat PrismicAuthManager as a\n\t// child manager.\n\tgetPrismicAuthManager(): PrismicAuthManager {\n\t\treturn this._prismicAuthManager;\n\t}\n\n\tgetAPIEndpoints(): APIEndpoints {\n\t\treturn API_ENDPOINTS;\n\t}\n\n\tgetMode(): (typeof APPLICATION_MODE)[keyof typeof APPLICATION_MODE] {\n\t\tconst mode = process.env.SM_ENV || APPLICATION_MODE.Production;\n\n\t\tif (\n\t\t\tmode !== APPLICATION_MODE.Production &&\n\t\t\tmode !== APPLICATION_MODE.Staging &&\n\t\t\tmode !== APPLICATION_MODE.Development\n\t\t) {\n\t\t\tthrow new UnexpectedDataError(`Invalid application mode: ${mode}`);\n\t\t}\n\n\t\treturn mode;\n\t}\n\n\t// TODO: Remove this global-state method. It is expensive and a\n\t// potential source of bugs due to data inconsistency. SM UI relies on\n\t// it heavily, so removal will require significant effort.\n\tasync getState(): Promise<SliceMachineManagerGetStateReturnType> {\n\t\tconst [\n\t\t\t{ sliceMachineConfig, libraries },\n\t\t\t{ profile, remoteCustomTypes, remoteSlices, authError },\n\t\t\tcustomTypes,\n\t\t\tpackageManager,\n\t\t] = await Promise.all([\n\t\t\tthis.project.getSliceMachineConfig().then(async (sliceMachineConfig) => {\n\t\t\t\tconst libraries = await this._getLibraries(sliceMachineConfig);\n\n\t\t\t\treturn { sliceMachineConfig, libraries };\n\t\t\t}),\n\t\t\tthis._getProfile().then(async (profile) => {\n\t\t\t\tlet authError;\n\t\t\t\tif (profile) {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tconst [remoteCustomTypes, remoteSlices] = await Promise.all([\n\t\t\t\t\t\t\tthis.customTypes.fetchRemoteCustomTypes(),\n\t\t\t\t\t\t\tthis.slices.fetchRemoteSlices(),\n\t\t\t\t\t\t]);\n\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\tprofile,\n\t\t\t\t\t\t\tremoteCustomTypes,\n\t\t\t\t\t\t\tremoteSlices,\n\t\t\t\t\t\t\tauthError,\n\t\t\t\t\t\t};\n\t\t\t\t\t} catch (error) {\n\t\t\t\t\t\tif (error instanceof prismicCustomTypesClient.ForbiddenError) {\n\t\t\t\t\t\t\tauthError = {\n\t\t\t\t\t\t\t\tname: \"__stub__\",\n\t\t\t\t\t\t\t\tmessage: \"__stub__\",\n\t\t\t\t\t\t\t\treason: \"__stub__\",\n\t\t\t\t\t\t\t\tstatus: 401,\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t} else if (\n\t\t\t\t\t\t\terror instanceof prismicCustomTypesClient.UnauthorizedError\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tauthError = {\n\t\t\t\t\t\t\t\tname: \"__stub__\",\n\t\t\t\t\t\t\t\tmessage: \"__stub__\",\n\t\t\t\t\t\t\t\treason: \"__stub__\",\n\t\t\t\t\t\t\t\tstatus: 403,\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tthrow error;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn {\n\t\t\t\t\tprofile,\n\t\t\t\t\tremoteCustomTypes: [],\n\t\t\t\t\tremoteSlices: [],\n\t\t\t\t\tauthError,\n\t\t\t\t};\n\t\t\t}),\n\t\t\tthis._getCustomTypes(),\n\t\t\tthis.project.detectPackageManager(),\n\t\t]);\n\n\t\t// SM UI detects if a user is logged out by looking at\n\t\t// `clientError`. Here, we simulate what the old core does by\n\t\t// returning an `ErrorWithStatus`-like object if the user does\n\t\t// not have access to the repository or is not logged in.\n\t\tconst clientError: SliceMachineManagerGetStateReturnType[\"clientError\"] =\n\t\t\tauthError ||\n\t\t\t(profile\n\t\t\t\t? undefined\n\t\t\t\t: {\n\t\t\t\t\t\tname: \"__stub__\",\n\t\t\t\t\t\tmessage: \"__stub__\",\n\t\t\t\t\t\treason: \"__stub__\",\n\t\t\t\t\t\tstatus: 401, // Needed to trigger the unauthorized flow.\n\t\t\t\t });\n\n\t\treturn {\n\t\t\tenv: {\n\t\t\t\tmanifest: {\n\t\t\t\t\tapiEndpoint:\n\t\t\t\t\t\tsliceMachineConfig.apiEndpoint ||\n\t\t\t\t\t\tbuildPrismicRepositoryAPIEndpoint(\n\t\t\t\t\t\t\tsliceMachineConfig.repositoryName,\n\t\t\t\t\t\t),\n\t\t\t\t\tlocalSliceSimulatorURL: sliceMachineConfig.localSliceSimulatorURL,\n\t\t\t\t},\n\t\t\t\tpackageManager,\n\t\t\t\tsupportsSliceSimulator: this.simulator.supportsSliceSimulator(),\n\t\t\t\trepo: sliceMachineConfig.repositoryName,\n\t\t\t\tintercomHash: profile?.intercomHash,\n\t\t\t\tshortId: profile?.shortId,\n\t\t\t\tendpoints: this.getAPIEndpoints(),\n\t\t\t},\n\t\t\tlibraries,\n\t\t\tcustomTypes,\n\t\t\tremoteCustomTypes,\n\t\t\tremoteSlices,\n\t\t\tclientError,\n\t\t};\n\t}\n\n\tprivate async _getProfile(): Promise<PrismicUserProfile | undefined> {\n\t\tlet profile: PrismicUserProfile | undefined;\n\n\t\tconst isLoggedIn = await this.user.checkIsLoggedIn();\n\n\t\tif (isLoggedIn) {\n\t\t\tprofile = await this.user.getProfile();\n\t\t\tawait this.user.refreshAuthenticationToken();\n\t\t}\n\n\t\treturn profile;\n\t}\n\n\tprivate async _getLibraries(\n\t\tsliceMachineConfig: SliceMachineConfig,\n\t): Promise<SliceMachineManagerGetStateReturnType[\"libraries\"]> {\n\t\tconst libraries: SliceMachineManagerGetStateReturnType[\"libraries\"] = [];\n\n\t\tif (sliceMachineConfig.libraries) {\n\t\t\tawait Promise.all(\n\t\t\t\tsliceMachineConfig.libraries.map(async (libraryID) => {\n\t\t\t\t\tconst { sliceIDs } = await this.slices.readSliceLibrary({\n\t\t\t\t\t\tlibraryID,\n\t\t\t\t\t});\n\n\t\t\t\t\tif (sliceIDs) {\n\t\t\t\t\t\tconst components: SliceMachineManagerGetStateReturnType[\"libraries\"][number][\"components\"] =\n\t\t\t\t\t\t\t[];\n\n\t\t\t\t\t\tawait Promise.all(\n\t\t\t\t\t\t\tsliceIDs.map(async (sliceID) => {\n\t\t\t\t\t\t\t\tconst [{ model }, { mocks }] = await Promise.all([\n\t\t\t\t\t\t\t\t\tthis.slices.readSlice({ libraryID, sliceID }),\n\t\t\t\t\t\t\t\t\tthis.slices.readSliceMocks({ libraryID, sliceID }),\n\t\t\t\t\t\t\t\t]);\n\n\t\t\t\t\t\t\t\tif (model) {\n\t\t\t\t\t\t\t\t\tconst screenshots: (typeof components)[number][\"screenshots\"] =\n\t\t\t\t\t\t\t\t\t\t{};\n\t\t\t\t\t\t\t\t\tawait Promise.all(\n\t\t\t\t\t\t\t\t\t\tmodel.variations.map(async (variation) => {\n\t\t\t\t\t\t\t\t\t\t\tconst screenshot = await this.slices.readSliceScreenshot({\n\t\t\t\t\t\t\t\t\t\t\t\tlibraryID,\n\t\t\t\t\t\t\t\t\t\t\t\tsliceID,\n\t\t\t\t\t\t\t\t\t\t\t\tvariationID: variation.id,\n\t\t\t\t\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\t\t\t\t\tif (screenshot.data) {\n\t\t\t\t\t\t\t\t\t\t\t\tscreenshots[variation.id] = {\n\t\t\t\t\t\t\t\t\t\t\t\t\thash: createContentDigest(screenshot.data),\n\t\t\t\t\t\t\t\t\t\t\t\t\tdata: screenshot.data,\n\t\t\t\t\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t\t\t);\n\n\t\t\t\t\t\t\t\t\tcomponents.push({\n\t\t\t\t\t\t\t\t\t\tfrom: libraryID,\n\t\t\t\t\t\t\t\t\t\thref: libraryID.replace(/\\//g, \"--\"),\n\t\t\t\t\t\t\t\t\t\tpathToSlice: \"pathToSlice\",\n\t\t\t\t\t\t\t\t\t\tfileName: \"fileName\",\n\t\t\t\t\t\t\t\t\t\textension: \"extension\",\n\t\t\t\t\t\t\t\t\t\tmodel,\n\t\t\t\t\t\t\t\t\t\tscreenshots,\n\t\t\t\t\t\t\t\t\t\tmocks,\n\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\tlibraries.push({\n\t\t\t\t\t\t\tname: libraryID,\n\t\t\t\t\t\t\tpath: libraryID,\n\t\t\t\t\t\t\tisLocal: true, // TODO: Do we still support node_modules-based libraries?\n\t\t\t\t\t\t\tcomponents,\n\t\t\t\t\t\t\tmeta: {\n\t\t\t\t\t\t\t\t// TODO: Do we still support node_modules-based libraries?\n\t\t\t\t\t\t\t\tisNodeModule: false,\n\t\t\t\t\t\t\t\tisDownloaded: false,\n\t\t\t\t\t\t\t\tisManual: true,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t}),\n\t\t\t);\n\t\t}\n\n\t\t// Preserve library order from config file\n\t\treturn libraries.sort((library1, library2) => {\n\t\t\tconst libraryIndex1 =\n\t\t\t\tsliceMachineConfig.libraries?.indexOf(library1.name) || 0;\n\t\t\tconst libraryIndex2 =\n\t\t\t\tsliceMachineConfig.libraries?.indexOf(library2.name) || 0;\n\n\t\t\treturn Math.sign(libraryIndex1 - libraryIndex2);\n\t\t});\n\t}\n\n\tprivate async _getCustomTypes(): Promise<\n\t\tSliceMachineManagerGetStateReturnType[\"customTypes\"]\n\t> {\n\t\tconst customTypes: SliceMachineManagerGetStateReturnType[\"customTypes\"] =\n\t\t\t[];\n\n\t\tconst { ids: customTypeIDs } =\n\t\t\tawait this.customTypes.readCustomTypeLibrary();\n\n\t\tif (customTypeIDs) {\n\t\t\tawait Promise.all(\n\t\t\t\tcustomTypeIDs.map(async (customTypeID) => {\n\t\t\t\t\tconst { model } = await this.customTypes.readCustomType({\n\t\t\t\t\t\tid: customTypeID,\n\t\t\t\t\t});\n\n\t\t\t\t\tif (model) {\n\t\t\t\t\t\tcustomTypes.push(model);\n\t\t\t\t\t}\n\t\t\t\t}),\n\t\t\t);\n\t\t}\n\n\t\treturn customTypes;\n\t}\n}\n"],"names":["createPrismicAuthManager","UserManager","PrismicRepositoryManager","PluginsManager","ProjectManager","CustomTypesManager","SlicesManager","SnippetsManager","ScreenshotsManager","SimulatorManager","DocumentationManager","SliceTemplateLibraryManager","VersionsManager","TelemetryManager","GitManager","API_ENDPOINTS","APPLICATION_MODE","UnexpectedDataError","sliceMachineConfig","libraries","profile","authError","remoteCustomTypes","remoteSlices","prismicCustomTypesClient","buildPrismicRepositoryAPIEndpoint","createContentDigest"],"mappings":"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"}
|
|
@@ -5,6 +5,7 @@ import { SliceMachinePlugin, SliceMachinePluginRunner } from "@slicemachine/plug
|
|
|
5
5
|
import { PackageManager } from "../types";
|
|
6
6
|
import { PrismicAuthManager } from "../auth/PrismicAuthManager";
|
|
7
7
|
import { APIEndpoints } from "../constants/API_ENDPOINTS";
|
|
8
|
+
import { APPLICATION_MODE } from "../constants/APPLICATION_MODE";
|
|
8
9
|
import { UserManager } from "./user/UserManager";
|
|
9
10
|
import { PrismicRepositoryManager } from "./prismicRepository/PrismicRepositoryManager";
|
|
10
11
|
import { PluginsManager } from "./plugins/PluginsManager";
|
|
@@ -93,6 +94,7 @@ export declare class SliceMachineManager {
|
|
|
93
94
|
getSliceMachinePluginRunner(): SliceMachinePluginRunner | undefined;
|
|
94
95
|
getPrismicAuthManager(): PrismicAuthManager;
|
|
95
96
|
getAPIEndpoints(): APIEndpoints;
|
|
97
|
+
getMode(): (typeof APPLICATION_MODE)[keyof typeof APPLICATION_MODE];
|
|
96
98
|
getState(): Promise<SliceMachineManagerGetStateReturnType>;
|
|
97
99
|
private _getProfile;
|
|
98
100
|
private _getLibraries;
|
|
@@ -8,6 +8,8 @@ import * as prismicCustomTypesClient from "@prismicio/custom-types-client";
|
|
|
8
8
|
import { createContentDigest } from "../lib/createContentDigest.js";
|
|
9
9
|
import { createPrismicAuthManager } from "../auth/createPrismicAuthManager.js";
|
|
10
10
|
import { API_ENDPOINTS } from "../constants/API_ENDPOINTS.js";
|
|
11
|
+
import { APPLICATION_MODE } from "../constants/APPLICATION_MODE.js";
|
|
12
|
+
import { UnexpectedDataError } from "../errors.js";
|
|
11
13
|
import { UserManager } from "./user/UserManager.js";
|
|
12
14
|
import { PrismicRepositoryManager } from "./prismicRepository/PrismicRepositoryManager.js";
|
|
13
15
|
import { PluginsManager } from "./plugins/PluginsManager.js";
|
|
@@ -80,6 +82,13 @@ class SliceMachineManager {
|
|
|
80
82
|
getAPIEndpoints() {
|
|
81
83
|
return API_ENDPOINTS;
|
|
82
84
|
}
|
|
85
|
+
getMode() {
|
|
86
|
+
const mode = process.env.SM_ENV || APPLICATION_MODE.Production;
|
|
87
|
+
if (mode !== APPLICATION_MODE.Production && mode !== APPLICATION_MODE.Staging && mode !== APPLICATION_MODE.Development) {
|
|
88
|
+
throw new UnexpectedDataError(`Invalid application mode: ${mode}`);
|
|
89
|
+
}
|
|
90
|
+
return mode;
|
|
91
|
+
}
|
|
83
92
|
// TODO: Remove this global-state method. It is expensive and a
|
|
84
93
|
// potential source of bugs due to data inconsistency. SM UI relies on
|
|
85
94
|
// it heavily, so removal will require significant effort.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SliceMachineManager.js","sources":["../../../src/managers/SliceMachineManager.ts"],"sourcesContent":["import {\n\tSharedSlice,\n\tCustomType,\n} from \"@prismicio/types-internal/lib/customtypes\";\nimport { SharedSliceContent } from \"@prismicio/types-internal/lib/content\";\nimport * as prismicCustomTypesClient from \"@prismicio/custom-types-client\";\nimport {\n\tSliceMachinePlugin,\n\tSliceMachinePluginRunner,\n} from \"@slicemachine/plugin-kit\";\n\nimport { createContentDigest } from \"../lib/createContentDigest\";\n\nimport { PackageManager, SliceMachineConfig } from \"../types\";\nimport {\n\tPrismicAuthManager,\n\tPrismicUserProfile,\n} from \"../auth/PrismicAuthManager\";\nimport { createPrismicAuthManager } from \"../auth/createPrismicAuthManager\";\n\nimport { API_ENDPOINTS, APIEndpoints } from \"../constants/API_ENDPOINTS\";\n\nimport { UserManager } from \"./user/UserManager\";\nimport { PrismicRepositoryManager } from \"./prismicRepository/PrismicRepositoryManager\";\n\nimport { PluginsManager } from \"./plugins/PluginsManager\";\n\nimport { ProjectManager } from \"./project/ProjectManager\";\nimport { CustomTypesManager } from \"./customTypes/CustomTypesManager\";\nimport { SlicesManager } from \"./slices/SlicesManager\";\nimport { SnippetsManager } from \"./snippets/SnippetsManager\";\nimport { ScreenshotsManager } from \"./screenshots/ScreenshotsManager\";\nimport { SimulatorManager } from \"./simulator/SimulatorManager\";\n\nimport { VersionsManager } from \"./versions/VersionsManager\";\n\nimport { TelemetryManager } from \"./telemetry/TelemetryManager\";\nimport { buildPrismicRepositoryAPIEndpoint } from \"../lib/buildPrismicRepositoryAPIEndpoint\";\nimport { DocumentationManager } from \"./documentation/DocumentationManager\";\nimport { SliceTemplateLibraryManager } from \"./sliceTemplateLibrary/SliceTemplateLibraryManager\";\nimport { GitManager } from \"./git/GitManager\";\n\ntype SliceMachineManagerGetStateReturnType = {\n\tenv: {\n\t\tshortId?: string;\n\t\tintercomHash?: string;\n\t\tmanifest: {\n\t\t\tapiEndpoint: string;\n\t\t\tlocalSliceSimulatorURL?: string;\n\t\t};\n\t\trepo: string;\n\t\tpackageManager: PackageManager;\n\t\tsupportsSliceSimulator: boolean;\n\t\tendpoints: APIEndpoints;\n\t};\n\tlibraries: {\n\t\tname: string;\n\t\tpath: string;\n\t\tisLocal: boolean;\n\t\tcomponents: {\n\t\t\tfrom: string;\n\t\t\thref: string;\n\t\t\tpathToSlice: string;\n\t\t\tfileName: string | null;\n\t\t\textension: string | null;\n\t\t\tmodel: SharedSlice;\n\t\t\tscreenshots: Record<\n\t\t\t\tstring,\n\t\t\t\t{\n\t\t\t\t\thash: string;\n\t\t\t\t\tdata: Buffer;\n\t\t\t\t}\n\t\t\t>;\n\t\t\tmocks?: SharedSliceContent[];\n\t\t}[];\n\t\tmeta: {\n\t\t\tname?: string;\n\t\t\tversion?: string;\n\t\t\tisNodeModule: boolean;\n\t\t\tisDownloaded: boolean;\n\t\t\tisManual: boolean;\n\t\t};\n\t}[];\n\tcustomTypes: CustomType[];\n\tremoteCustomTypes: CustomType[];\n\tremoteSlices: SharedSlice[];\n\tclientError?: {\n\t\tname: string;\n\t\tmessage: string;\n\t\tstatus: number;\n\t\treason: string;\n\t};\n};\n\ntype SliceMachineManagerConstructorArgs = {\n\tcwd?: string;\n\tnativePlugins?: Record<string, SliceMachinePlugin>;\n};\n\nexport class SliceMachineManager {\n\tprivate _sliceMachinePluginRunner: SliceMachinePluginRunner | undefined =\n\t\tundefined;\n\tprivate _prismicAuthManager: PrismicAuthManager;\n\n\tcwd: string;\n\n\tcustomTypes: CustomTypesManager;\n\tplugins: PluginsManager;\n\tprismicRepository: PrismicRepositoryManager;\n\tproject: ProjectManager;\n\tscreenshots: ScreenshotsManager;\n\tsimulator: SimulatorManager;\n\tslices: SlicesManager;\n\tsnippets: SnippetsManager;\n\tdocumentation: DocumentationManager;\n\tsliceTemplateLibrary: SliceTemplateLibraryManager;\n\ttelemetry: TelemetryManager;\n\tuser: UserManager;\n\tversions: VersionsManager;\n\tgit: GitManager;\n\n\tconstructor(args?: SliceMachineManagerConstructorArgs) {\n\t\t// _prismicAuthManager must be set at least before UserManager\n\t\t// is instantiated. It depends on the PrismicAuthManager for\n\t\t// authentication-related methods.\n\t\tthis._prismicAuthManager = createPrismicAuthManager();\n\n\t\tthis.user = new UserManager(this);\n\t\tthis.prismicRepository = new PrismicRepositoryManager(this);\n\n\t\tthis.plugins = new PluginsManager(this, {\n\t\t\tnativePlugins: args?.nativePlugins,\n\t\t});\n\n\t\tthis.project = new ProjectManager(this);\n\t\tthis.customTypes = new CustomTypesManager(this);\n\t\tthis.slices = new SlicesManager(this);\n\t\tthis.snippets = new SnippetsManager(this);\n\t\tthis.screenshots = new ScreenshotsManager(this);\n\t\tthis.simulator = new SimulatorManager(this);\n\t\tthis.documentation = new DocumentationManager(this);\n\t\tthis.sliceTemplateLibrary = new SliceTemplateLibraryManager(this);\n\n\t\tthis.versions = new VersionsManager(this);\n\n\t\tthis.telemetry = new TelemetryManager(this);\n\n\t\tthis.git = new GitManager(this);\n\n\t\tthis.cwd = args?.cwd ?? process.cwd();\n\t}\n\n\t// The `_sliceMachinePluginRunner` property is hidden behind a function to\n\t// discourage access. Using a function deliberatly breaks the pattern\n\t// of other child managers that are accessible as properties, like\n\t// `project`, `plugins`, etc. We do not treat SliceMachinePluginRunner\n\t// as a child manager.\n\tgetSliceMachinePluginRunner(): SliceMachinePluginRunner | undefined {\n\t\treturn this._sliceMachinePluginRunner;\n\t}\n\n\t// The `_prismicAuthManager` property is hidden behind a function to\n\t// discourage access. Using a function deliberatly breaks the pattern\n\t// of other child managers that are accessible as properties, like\n\t// `project`, `plugins`, etc. We do not treat PrismicAuthManager as a\n\t// child manager.\n\tgetPrismicAuthManager(): PrismicAuthManager {\n\t\treturn this._prismicAuthManager;\n\t}\n\n\tgetAPIEndpoints(): APIEndpoints {\n\t\treturn API_ENDPOINTS;\n\t}\n\n\t// TODO: Remove this global-state method. It is expensive and a\n\t// potential source of bugs due to data inconsistency. SM UI relies on\n\t// it heavily, so removal will require significant effort.\n\tasync getState(): Promise<SliceMachineManagerGetStateReturnType> {\n\t\tconst [\n\t\t\t{ sliceMachineConfig, libraries },\n\t\t\t{ profile, remoteCustomTypes, remoteSlices, authError },\n\t\t\tcustomTypes,\n\t\t\tpackageManager,\n\t\t] = await Promise.all([\n\t\t\tthis.project.getSliceMachineConfig().then(async (sliceMachineConfig) => {\n\t\t\t\tconst libraries = await this._getLibraries(sliceMachineConfig);\n\n\t\t\t\treturn { sliceMachineConfig, libraries };\n\t\t\t}),\n\t\t\tthis._getProfile().then(async (profile) => {\n\t\t\t\tlet authError;\n\t\t\t\tif (profile) {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tconst [remoteCustomTypes, remoteSlices] = await Promise.all([\n\t\t\t\t\t\t\tthis.customTypes.fetchRemoteCustomTypes(),\n\t\t\t\t\t\t\tthis.slices.fetchRemoteSlices(),\n\t\t\t\t\t\t]);\n\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\tprofile,\n\t\t\t\t\t\t\tremoteCustomTypes,\n\t\t\t\t\t\t\tremoteSlices,\n\t\t\t\t\t\t\tauthError,\n\t\t\t\t\t\t};\n\t\t\t\t\t} catch (error) {\n\t\t\t\t\t\tif (error instanceof prismicCustomTypesClient.ForbiddenError) {\n\t\t\t\t\t\t\tauthError = {\n\t\t\t\t\t\t\t\tname: \"__stub__\",\n\t\t\t\t\t\t\t\tmessage: \"__stub__\",\n\t\t\t\t\t\t\t\treason: \"__stub__\",\n\t\t\t\t\t\t\t\tstatus: 401,\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t} else if (\n\t\t\t\t\t\t\terror instanceof prismicCustomTypesClient.UnauthorizedError\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tauthError = {\n\t\t\t\t\t\t\t\tname: \"__stub__\",\n\t\t\t\t\t\t\t\tmessage: \"__stub__\",\n\t\t\t\t\t\t\t\treason: \"__stub__\",\n\t\t\t\t\t\t\t\tstatus: 403,\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tthrow error;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn {\n\t\t\t\t\tprofile,\n\t\t\t\t\tremoteCustomTypes: [],\n\t\t\t\t\tremoteSlices: [],\n\t\t\t\t\tauthError,\n\t\t\t\t};\n\t\t\t}),\n\t\t\tthis._getCustomTypes(),\n\t\t\tthis.project.detectPackageManager(),\n\t\t]);\n\n\t\t// SM UI detects if a user is logged out by looking at\n\t\t// `clientError`. Here, we simulate what the old core does by\n\t\t// returning an `ErrorWithStatus`-like object if the user does\n\t\t// not have access to the repository or is not logged in.\n\t\tconst clientError: SliceMachineManagerGetStateReturnType[\"clientError\"] =\n\t\t\tauthError ||\n\t\t\t(profile\n\t\t\t\t? undefined\n\t\t\t\t: {\n\t\t\t\t\t\tname: \"__stub__\",\n\t\t\t\t\t\tmessage: \"__stub__\",\n\t\t\t\t\t\treason: \"__stub__\",\n\t\t\t\t\t\tstatus: 401, // Needed to trigger the unauthorized flow.\n\t\t\t\t });\n\n\t\treturn {\n\t\t\tenv: {\n\t\t\t\tmanifest: {\n\t\t\t\t\tapiEndpoint:\n\t\t\t\t\t\tsliceMachineConfig.apiEndpoint ||\n\t\t\t\t\t\tbuildPrismicRepositoryAPIEndpoint(\n\t\t\t\t\t\t\tsliceMachineConfig.repositoryName,\n\t\t\t\t\t\t),\n\t\t\t\t\tlocalSliceSimulatorURL: sliceMachineConfig.localSliceSimulatorURL,\n\t\t\t\t},\n\t\t\t\tpackageManager,\n\t\t\t\tsupportsSliceSimulator: this.simulator.supportsSliceSimulator(),\n\t\t\t\trepo: sliceMachineConfig.repositoryName,\n\t\t\t\tintercomHash: profile?.intercomHash,\n\t\t\t\tshortId: profile?.shortId,\n\t\t\t\tendpoints: this.getAPIEndpoints(),\n\t\t\t},\n\t\t\tlibraries,\n\t\t\tcustomTypes,\n\t\t\tremoteCustomTypes,\n\t\t\tremoteSlices,\n\t\t\tclientError,\n\t\t};\n\t}\n\n\tprivate async _getProfile(): Promise<PrismicUserProfile | undefined> {\n\t\tlet profile: PrismicUserProfile | undefined;\n\n\t\tconst isLoggedIn = await this.user.checkIsLoggedIn();\n\n\t\tif (isLoggedIn) {\n\t\t\tprofile = await this.user.getProfile();\n\t\t\tawait this.user.refreshAuthenticationToken();\n\t\t}\n\n\t\treturn profile;\n\t}\n\n\tprivate async _getLibraries(\n\t\tsliceMachineConfig: SliceMachineConfig,\n\t): Promise<SliceMachineManagerGetStateReturnType[\"libraries\"]> {\n\t\tconst libraries: SliceMachineManagerGetStateReturnType[\"libraries\"] = [];\n\n\t\tif (sliceMachineConfig.libraries) {\n\t\t\tawait Promise.all(\n\t\t\t\tsliceMachineConfig.libraries.map(async (libraryID) => {\n\t\t\t\t\tconst { sliceIDs } = await this.slices.readSliceLibrary({\n\t\t\t\t\t\tlibraryID,\n\t\t\t\t\t});\n\n\t\t\t\t\tif (sliceIDs) {\n\t\t\t\t\t\tconst components: SliceMachineManagerGetStateReturnType[\"libraries\"][number][\"components\"] =\n\t\t\t\t\t\t\t[];\n\n\t\t\t\t\t\tawait Promise.all(\n\t\t\t\t\t\t\tsliceIDs.map(async (sliceID) => {\n\t\t\t\t\t\t\t\tconst [{ model }, { mocks }] = await Promise.all([\n\t\t\t\t\t\t\t\t\tthis.slices.readSlice({ libraryID, sliceID }),\n\t\t\t\t\t\t\t\t\tthis.slices.readSliceMocks({ libraryID, sliceID }),\n\t\t\t\t\t\t\t\t]);\n\n\t\t\t\t\t\t\t\tif (model) {\n\t\t\t\t\t\t\t\t\tconst screenshots: (typeof components)[number][\"screenshots\"] =\n\t\t\t\t\t\t\t\t\t\t{};\n\t\t\t\t\t\t\t\t\tawait Promise.all(\n\t\t\t\t\t\t\t\t\t\tmodel.variations.map(async (variation) => {\n\t\t\t\t\t\t\t\t\t\t\tconst screenshot = await this.slices.readSliceScreenshot({\n\t\t\t\t\t\t\t\t\t\t\t\tlibraryID,\n\t\t\t\t\t\t\t\t\t\t\t\tsliceID,\n\t\t\t\t\t\t\t\t\t\t\t\tvariationID: variation.id,\n\t\t\t\t\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\t\t\t\t\tif (screenshot.data) {\n\t\t\t\t\t\t\t\t\t\t\t\tscreenshots[variation.id] = {\n\t\t\t\t\t\t\t\t\t\t\t\t\thash: createContentDigest(screenshot.data),\n\t\t\t\t\t\t\t\t\t\t\t\t\tdata: screenshot.data,\n\t\t\t\t\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t\t\t);\n\n\t\t\t\t\t\t\t\t\tcomponents.push({\n\t\t\t\t\t\t\t\t\t\tfrom: libraryID,\n\t\t\t\t\t\t\t\t\t\thref: libraryID.replace(/\\//g, \"--\"),\n\t\t\t\t\t\t\t\t\t\tpathToSlice: \"pathToSlice\",\n\t\t\t\t\t\t\t\t\t\tfileName: \"fileName\",\n\t\t\t\t\t\t\t\t\t\textension: \"extension\",\n\t\t\t\t\t\t\t\t\t\tmodel,\n\t\t\t\t\t\t\t\t\t\tscreenshots,\n\t\t\t\t\t\t\t\t\t\tmocks,\n\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\tlibraries.push({\n\t\t\t\t\t\t\tname: libraryID,\n\t\t\t\t\t\t\tpath: libraryID,\n\t\t\t\t\t\t\tisLocal: true, // TODO: Do we still support node_modules-based libraries?\n\t\t\t\t\t\t\tcomponents,\n\t\t\t\t\t\t\tmeta: {\n\t\t\t\t\t\t\t\t// TODO: Do we still support node_modules-based libraries?\n\t\t\t\t\t\t\t\tisNodeModule: false,\n\t\t\t\t\t\t\t\tisDownloaded: false,\n\t\t\t\t\t\t\t\tisManual: true,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t}),\n\t\t\t);\n\t\t}\n\n\t\t// Preserve library order from config file\n\t\treturn libraries.sort((library1, library2) => {\n\t\t\tconst libraryIndex1 =\n\t\t\t\tsliceMachineConfig.libraries?.indexOf(library1.name) || 0;\n\t\t\tconst libraryIndex2 =\n\t\t\t\tsliceMachineConfig.libraries?.indexOf(library2.name) || 0;\n\n\t\t\treturn Math.sign(libraryIndex1 - libraryIndex2);\n\t\t});\n\t}\n\n\tprivate async _getCustomTypes(): Promise<\n\t\tSliceMachineManagerGetStateReturnType[\"customTypes\"]\n\t> {\n\t\tconst customTypes: SliceMachineManagerGetStateReturnType[\"customTypes\"] =\n\t\t\t[];\n\n\t\tconst { ids: customTypeIDs } =\n\t\t\tawait this.customTypes.readCustomTypeLibrary();\n\n\t\tif (customTypeIDs) {\n\t\t\tawait Promise.all(\n\t\t\t\tcustomTypeIDs.map(async (customTypeID) => {\n\t\t\t\t\tconst { model } = await this.customTypes.readCustomType({\n\t\t\t\t\t\tid: customTypeID,\n\t\t\t\t\t});\n\n\t\t\t\t\tif (model) {\n\t\t\t\t\t\tcustomTypes.push(model);\n\t\t\t\t\t}\n\t\t\t\t}),\n\t\t\t);\n\t\t}\n\n\t\treturn customTypes;\n\t}\n}\n"],"names":["sliceMachineConfig","libraries","profile","authError","remoteCustomTypes","remoteSlices"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"SliceMachineManager.js","sources":["../../../src/managers/SliceMachineManager.ts"],"sourcesContent":["import {\n\tSharedSlice,\n\tCustomType,\n} from \"@prismicio/types-internal/lib/customtypes\";\nimport { SharedSliceContent } from \"@prismicio/types-internal/lib/content\";\nimport * as prismicCustomTypesClient from \"@prismicio/custom-types-client\";\nimport {\n\tSliceMachinePlugin,\n\tSliceMachinePluginRunner,\n} from \"@slicemachine/plugin-kit\";\n\nimport { createContentDigest } from \"../lib/createContentDigest\";\n\nimport { PackageManager, SliceMachineConfig } from \"../types\";\nimport {\n\tPrismicAuthManager,\n\tPrismicUserProfile,\n} from \"../auth/PrismicAuthManager\";\nimport { createPrismicAuthManager } from \"../auth/createPrismicAuthManager\";\n\nimport { API_ENDPOINTS, APIEndpoints } from \"../constants/API_ENDPOINTS\";\nimport { APPLICATION_MODE } from \"../constants/APPLICATION_MODE\";\n\nimport { UnexpectedDataError } from \"../errors\";\n\nimport { UserManager } from \"./user/UserManager\";\nimport { PrismicRepositoryManager } from \"./prismicRepository/PrismicRepositoryManager\";\n\nimport { PluginsManager } from \"./plugins/PluginsManager\";\n\nimport { ProjectManager } from \"./project/ProjectManager\";\nimport { CustomTypesManager } from \"./customTypes/CustomTypesManager\";\nimport { SlicesManager } from \"./slices/SlicesManager\";\nimport { SnippetsManager } from \"./snippets/SnippetsManager\";\nimport { ScreenshotsManager } from \"./screenshots/ScreenshotsManager\";\nimport { SimulatorManager } from \"./simulator/SimulatorManager\";\n\nimport { VersionsManager } from \"./versions/VersionsManager\";\n\nimport { TelemetryManager } from \"./telemetry/TelemetryManager\";\nimport { buildPrismicRepositoryAPIEndpoint } from \"../lib/buildPrismicRepositoryAPIEndpoint\";\nimport { DocumentationManager } from \"./documentation/DocumentationManager\";\nimport { SliceTemplateLibraryManager } from \"./sliceTemplateLibrary/SliceTemplateLibraryManager\";\nimport { GitManager } from \"./git/GitManager\";\n\ntype SliceMachineManagerGetStateReturnType = {\n\tenv: {\n\t\tshortId?: string;\n\t\tintercomHash?: string;\n\t\tmanifest: {\n\t\t\tapiEndpoint: string;\n\t\t\tlocalSliceSimulatorURL?: string;\n\t\t};\n\t\trepo: string;\n\t\tpackageManager: PackageManager;\n\t\tsupportsSliceSimulator: boolean;\n\t\tendpoints: APIEndpoints;\n\t};\n\tlibraries: {\n\t\tname: string;\n\t\tpath: string;\n\t\tisLocal: boolean;\n\t\tcomponents: {\n\t\t\tfrom: string;\n\t\t\thref: string;\n\t\t\tpathToSlice: string;\n\t\t\tfileName: string | null;\n\t\t\textension: string | null;\n\t\t\tmodel: SharedSlice;\n\t\t\tscreenshots: Record<\n\t\t\t\tstring,\n\t\t\t\t{\n\t\t\t\t\thash: string;\n\t\t\t\t\tdata: Buffer;\n\t\t\t\t}\n\t\t\t>;\n\t\t\tmocks?: SharedSliceContent[];\n\t\t}[];\n\t\tmeta: {\n\t\t\tname?: string;\n\t\t\tversion?: string;\n\t\t\tisNodeModule: boolean;\n\t\t\tisDownloaded: boolean;\n\t\t\tisManual: boolean;\n\t\t};\n\t}[];\n\tcustomTypes: CustomType[];\n\tremoteCustomTypes: CustomType[];\n\tremoteSlices: SharedSlice[];\n\tclientError?: {\n\t\tname: string;\n\t\tmessage: string;\n\t\tstatus: number;\n\t\treason: string;\n\t};\n};\n\ntype SliceMachineManagerConstructorArgs = {\n\tcwd?: string;\n\tnativePlugins?: Record<string, SliceMachinePlugin>;\n};\n\nexport class SliceMachineManager {\n\tprivate _sliceMachinePluginRunner: SliceMachinePluginRunner | undefined =\n\t\tundefined;\n\tprivate _prismicAuthManager: PrismicAuthManager;\n\n\tcwd: string;\n\n\tcustomTypes: CustomTypesManager;\n\tplugins: PluginsManager;\n\tprismicRepository: PrismicRepositoryManager;\n\tproject: ProjectManager;\n\tscreenshots: ScreenshotsManager;\n\tsimulator: SimulatorManager;\n\tslices: SlicesManager;\n\tsnippets: SnippetsManager;\n\tdocumentation: DocumentationManager;\n\tsliceTemplateLibrary: SliceTemplateLibraryManager;\n\ttelemetry: TelemetryManager;\n\tuser: UserManager;\n\tversions: VersionsManager;\n\tgit: GitManager;\n\n\tconstructor(args?: SliceMachineManagerConstructorArgs) {\n\t\t// _prismicAuthManager must be set at least before UserManager\n\t\t// is instantiated. It depends on the PrismicAuthManager for\n\t\t// authentication-related methods.\n\t\tthis._prismicAuthManager = createPrismicAuthManager();\n\n\t\tthis.user = new UserManager(this);\n\t\tthis.prismicRepository = new PrismicRepositoryManager(this);\n\n\t\tthis.plugins = new PluginsManager(this, {\n\t\t\tnativePlugins: args?.nativePlugins,\n\t\t});\n\n\t\tthis.project = new ProjectManager(this);\n\t\tthis.customTypes = new CustomTypesManager(this);\n\t\tthis.slices = new SlicesManager(this);\n\t\tthis.snippets = new SnippetsManager(this);\n\t\tthis.screenshots = new ScreenshotsManager(this);\n\t\tthis.simulator = new SimulatorManager(this);\n\t\tthis.documentation = new DocumentationManager(this);\n\t\tthis.sliceTemplateLibrary = new SliceTemplateLibraryManager(this);\n\n\t\tthis.versions = new VersionsManager(this);\n\n\t\tthis.telemetry = new TelemetryManager(this);\n\n\t\tthis.git = new GitManager(this);\n\n\t\tthis.cwd = args?.cwd ?? process.cwd();\n\t}\n\n\t// The `_sliceMachinePluginRunner` property is hidden behind a function to\n\t// discourage access. Using a function deliberatly breaks the pattern\n\t// of other child managers that are accessible as properties, like\n\t// `project`, `plugins`, etc. We do not treat SliceMachinePluginRunner\n\t// as a child manager.\n\tgetSliceMachinePluginRunner(): SliceMachinePluginRunner | undefined {\n\t\treturn this._sliceMachinePluginRunner;\n\t}\n\n\t// The `_prismicAuthManager` property is hidden behind a function to\n\t// discourage access. Using a function deliberatly breaks the pattern\n\t// of other child managers that are accessible as properties, like\n\t// `project`, `plugins`, etc. We do not treat PrismicAuthManager as a\n\t// child manager.\n\tgetPrismicAuthManager(): PrismicAuthManager {\n\t\treturn this._prismicAuthManager;\n\t}\n\n\tgetAPIEndpoints(): APIEndpoints {\n\t\treturn API_ENDPOINTS;\n\t}\n\n\tgetMode(): (typeof APPLICATION_MODE)[keyof typeof APPLICATION_MODE] {\n\t\tconst mode = process.env.SM_ENV || APPLICATION_MODE.Production;\n\n\t\tif (\n\t\t\tmode !== APPLICATION_MODE.Production &&\n\t\t\tmode !== APPLICATION_MODE.Staging &&\n\t\t\tmode !== APPLICATION_MODE.Development\n\t\t) {\n\t\t\tthrow new UnexpectedDataError(`Invalid application mode: ${mode}`);\n\t\t}\n\n\t\treturn mode;\n\t}\n\n\t// TODO: Remove this global-state method. It is expensive and a\n\t// potential source of bugs due to data inconsistency. SM UI relies on\n\t// it heavily, so removal will require significant effort.\n\tasync getState(): Promise<SliceMachineManagerGetStateReturnType> {\n\t\tconst [\n\t\t\t{ sliceMachineConfig, libraries },\n\t\t\t{ profile, remoteCustomTypes, remoteSlices, authError },\n\t\t\tcustomTypes,\n\t\t\tpackageManager,\n\t\t] = await Promise.all([\n\t\t\tthis.project.getSliceMachineConfig().then(async (sliceMachineConfig) => {\n\t\t\t\tconst libraries = await this._getLibraries(sliceMachineConfig);\n\n\t\t\t\treturn { sliceMachineConfig, libraries };\n\t\t\t}),\n\t\t\tthis._getProfile().then(async (profile) => {\n\t\t\t\tlet authError;\n\t\t\t\tif (profile) {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tconst [remoteCustomTypes, remoteSlices] = await Promise.all([\n\t\t\t\t\t\t\tthis.customTypes.fetchRemoteCustomTypes(),\n\t\t\t\t\t\t\tthis.slices.fetchRemoteSlices(),\n\t\t\t\t\t\t]);\n\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\tprofile,\n\t\t\t\t\t\t\tremoteCustomTypes,\n\t\t\t\t\t\t\tremoteSlices,\n\t\t\t\t\t\t\tauthError,\n\t\t\t\t\t\t};\n\t\t\t\t\t} catch (error) {\n\t\t\t\t\t\tif (error instanceof prismicCustomTypesClient.ForbiddenError) {\n\t\t\t\t\t\t\tauthError = {\n\t\t\t\t\t\t\t\tname: \"__stub__\",\n\t\t\t\t\t\t\t\tmessage: \"__stub__\",\n\t\t\t\t\t\t\t\treason: \"__stub__\",\n\t\t\t\t\t\t\t\tstatus: 401,\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t} else if (\n\t\t\t\t\t\t\terror instanceof prismicCustomTypesClient.UnauthorizedError\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tauthError = {\n\t\t\t\t\t\t\t\tname: \"__stub__\",\n\t\t\t\t\t\t\t\tmessage: \"__stub__\",\n\t\t\t\t\t\t\t\treason: \"__stub__\",\n\t\t\t\t\t\t\t\tstatus: 403,\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tthrow error;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn {\n\t\t\t\t\tprofile,\n\t\t\t\t\tremoteCustomTypes: [],\n\t\t\t\t\tremoteSlices: [],\n\t\t\t\t\tauthError,\n\t\t\t\t};\n\t\t\t}),\n\t\t\tthis._getCustomTypes(),\n\t\t\tthis.project.detectPackageManager(),\n\t\t]);\n\n\t\t// SM UI detects if a user is logged out by looking at\n\t\t// `clientError`. Here, we simulate what the old core does by\n\t\t// returning an `ErrorWithStatus`-like object if the user does\n\t\t// not have access to the repository or is not logged in.\n\t\tconst clientError: SliceMachineManagerGetStateReturnType[\"clientError\"] =\n\t\t\tauthError ||\n\t\t\t(profile\n\t\t\t\t? undefined\n\t\t\t\t: {\n\t\t\t\t\t\tname: \"__stub__\",\n\t\t\t\t\t\tmessage: \"__stub__\",\n\t\t\t\t\t\treason: \"__stub__\",\n\t\t\t\t\t\tstatus: 401, // Needed to trigger the unauthorized flow.\n\t\t\t\t });\n\n\t\treturn {\n\t\t\tenv: {\n\t\t\t\tmanifest: {\n\t\t\t\t\tapiEndpoint:\n\t\t\t\t\t\tsliceMachineConfig.apiEndpoint ||\n\t\t\t\t\t\tbuildPrismicRepositoryAPIEndpoint(\n\t\t\t\t\t\t\tsliceMachineConfig.repositoryName,\n\t\t\t\t\t\t),\n\t\t\t\t\tlocalSliceSimulatorURL: sliceMachineConfig.localSliceSimulatorURL,\n\t\t\t\t},\n\t\t\t\tpackageManager,\n\t\t\t\tsupportsSliceSimulator: this.simulator.supportsSliceSimulator(),\n\t\t\t\trepo: sliceMachineConfig.repositoryName,\n\t\t\t\tintercomHash: profile?.intercomHash,\n\t\t\t\tshortId: profile?.shortId,\n\t\t\t\tendpoints: this.getAPIEndpoints(),\n\t\t\t},\n\t\t\tlibraries,\n\t\t\tcustomTypes,\n\t\t\tremoteCustomTypes,\n\t\t\tremoteSlices,\n\t\t\tclientError,\n\t\t};\n\t}\n\n\tprivate async _getProfile(): Promise<PrismicUserProfile | undefined> {\n\t\tlet profile: PrismicUserProfile | undefined;\n\n\t\tconst isLoggedIn = await this.user.checkIsLoggedIn();\n\n\t\tif (isLoggedIn) {\n\t\t\tprofile = await this.user.getProfile();\n\t\t\tawait this.user.refreshAuthenticationToken();\n\t\t}\n\n\t\treturn profile;\n\t}\n\n\tprivate async _getLibraries(\n\t\tsliceMachineConfig: SliceMachineConfig,\n\t): Promise<SliceMachineManagerGetStateReturnType[\"libraries\"]> {\n\t\tconst libraries: SliceMachineManagerGetStateReturnType[\"libraries\"] = [];\n\n\t\tif (sliceMachineConfig.libraries) {\n\t\t\tawait Promise.all(\n\t\t\t\tsliceMachineConfig.libraries.map(async (libraryID) => {\n\t\t\t\t\tconst { sliceIDs } = await this.slices.readSliceLibrary({\n\t\t\t\t\t\tlibraryID,\n\t\t\t\t\t});\n\n\t\t\t\t\tif (sliceIDs) {\n\t\t\t\t\t\tconst components: SliceMachineManagerGetStateReturnType[\"libraries\"][number][\"components\"] =\n\t\t\t\t\t\t\t[];\n\n\t\t\t\t\t\tawait Promise.all(\n\t\t\t\t\t\t\tsliceIDs.map(async (sliceID) => {\n\t\t\t\t\t\t\t\tconst [{ model }, { mocks }] = await Promise.all([\n\t\t\t\t\t\t\t\t\tthis.slices.readSlice({ libraryID, sliceID }),\n\t\t\t\t\t\t\t\t\tthis.slices.readSliceMocks({ libraryID, sliceID }),\n\t\t\t\t\t\t\t\t]);\n\n\t\t\t\t\t\t\t\tif (model) {\n\t\t\t\t\t\t\t\t\tconst screenshots: (typeof components)[number][\"screenshots\"] =\n\t\t\t\t\t\t\t\t\t\t{};\n\t\t\t\t\t\t\t\t\tawait Promise.all(\n\t\t\t\t\t\t\t\t\t\tmodel.variations.map(async (variation) => {\n\t\t\t\t\t\t\t\t\t\t\tconst screenshot = await this.slices.readSliceScreenshot({\n\t\t\t\t\t\t\t\t\t\t\t\tlibraryID,\n\t\t\t\t\t\t\t\t\t\t\t\tsliceID,\n\t\t\t\t\t\t\t\t\t\t\t\tvariationID: variation.id,\n\t\t\t\t\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\t\t\t\t\tif (screenshot.data) {\n\t\t\t\t\t\t\t\t\t\t\t\tscreenshots[variation.id] = {\n\t\t\t\t\t\t\t\t\t\t\t\t\thash: createContentDigest(screenshot.data),\n\t\t\t\t\t\t\t\t\t\t\t\t\tdata: screenshot.data,\n\t\t\t\t\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t\t\t);\n\n\t\t\t\t\t\t\t\t\tcomponents.push({\n\t\t\t\t\t\t\t\t\t\tfrom: libraryID,\n\t\t\t\t\t\t\t\t\t\thref: libraryID.replace(/\\//g, \"--\"),\n\t\t\t\t\t\t\t\t\t\tpathToSlice: \"pathToSlice\",\n\t\t\t\t\t\t\t\t\t\tfileName: \"fileName\",\n\t\t\t\t\t\t\t\t\t\textension: \"extension\",\n\t\t\t\t\t\t\t\t\t\tmodel,\n\t\t\t\t\t\t\t\t\t\tscreenshots,\n\t\t\t\t\t\t\t\t\t\tmocks,\n\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\tlibraries.push({\n\t\t\t\t\t\t\tname: libraryID,\n\t\t\t\t\t\t\tpath: libraryID,\n\t\t\t\t\t\t\tisLocal: true, // TODO: Do we still support node_modules-based libraries?\n\t\t\t\t\t\t\tcomponents,\n\t\t\t\t\t\t\tmeta: {\n\t\t\t\t\t\t\t\t// TODO: Do we still support node_modules-based libraries?\n\t\t\t\t\t\t\t\tisNodeModule: false,\n\t\t\t\t\t\t\t\tisDownloaded: false,\n\t\t\t\t\t\t\t\tisManual: true,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t}),\n\t\t\t);\n\t\t}\n\n\t\t// Preserve library order from config file\n\t\treturn libraries.sort((library1, library2) => {\n\t\t\tconst libraryIndex1 =\n\t\t\t\tsliceMachineConfig.libraries?.indexOf(library1.name) || 0;\n\t\t\tconst libraryIndex2 =\n\t\t\t\tsliceMachineConfig.libraries?.indexOf(library2.name) || 0;\n\n\t\t\treturn Math.sign(libraryIndex1 - libraryIndex2);\n\t\t});\n\t}\n\n\tprivate async _getCustomTypes(): Promise<\n\t\tSliceMachineManagerGetStateReturnType[\"customTypes\"]\n\t> {\n\t\tconst customTypes: SliceMachineManagerGetStateReturnType[\"customTypes\"] =\n\t\t\t[];\n\n\t\tconst { ids: customTypeIDs } =\n\t\t\tawait this.customTypes.readCustomTypeLibrary();\n\n\t\tif (customTypeIDs) {\n\t\t\tawait Promise.all(\n\t\t\t\tcustomTypeIDs.map(async (customTypeID) => {\n\t\t\t\t\tconst { model } = await this.customTypes.readCustomType({\n\t\t\t\t\t\tid: customTypeID,\n\t\t\t\t\t});\n\n\t\t\t\t\tif (model) {\n\t\t\t\t\t\tcustomTypes.push(model);\n\t\t\t\t\t}\n\t\t\t\t}),\n\t\t\t);\n\t\t}\n\n\t\treturn customTypes;\n\t}\n}\n"],"names":["sliceMachineConfig","libraries","profile","authError","remoteCustomTypes","remoteSlices"],"mappings":"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"}
|