@slicemachine/manager 0.20.8-alpha.BI-dt-2380-add-shared-onboarding.22 → 0.20.8-beta.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.
Files changed (41) hide show
  1. package/dist/constants/API_ENDPOINTS.cjs +3 -6
  2. package/dist/constants/API_ENDPOINTS.cjs.map +1 -1
  3. package/dist/constants/API_ENDPOINTS.d.ts +0 -1
  4. package/dist/constants/API_ENDPOINTS.js +3 -6
  5. package/dist/constants/API_ENDPOINTS.js.map +1 -1
  6. package/dist/lib/DecodeError.cjs +1 -15
  7. package/dist/lib/DecodeError.cjs.map +1 -1
  8. package/dist/lib/DecodeError.d.ts +1 -2
  9. package/dist/lib/DecodeError.js +1 -15
  10. package/dist/lib/DecodeError.js.map +1 -1
  11. package/dist/lib/decode.cjs +2 -13
  12. package/dist/lib/decode.cjs.map +1 -1
  13. package/dist/lib/decode.d.ts +1 -3
  14. package/dist/lib/decode.js +2 -13
  15. package/dist/lib/decode.js.map +1 -1
  16. package/dist/managers/prismicRepository/PrismicRepositoryManager.cjs +0 -76
  17. package/dist/managers/prismicRepository/PrismicRepositoryManager.cjs.map +1 -1
  18. package/dist/managers/prismicRepository/PrismicRepositoryManager.d.ts +1 -8
  19. package/dist/managers/prismicRepository/PrismicRepositoryManager.js +1 -77
  20. package/dist/managers/prismicRepository/PrismicRepositoryManager.js.map +1 -1
  21. package/dist/managers/prismicRepository/types.cjs +0 -26
  22. package/dist/managers/prismicRepository/types.cjs.map +1 -1
  23. package/dist/managers/prismicRepository/types.d.ts +0 -33
  24. package/dist/managers/prismicRepository/types.js +1 -27
  25. package/dist/managers/prismicRepository/types.js.map +1 -1
  26. package/dist/managers/telemetry/types.cjs +8 -14
  27. package/dist/managers/telemetry/types.cjs.map +1 -1
  28. package/dist/managers/telemetry/types.d.ts +13 -23
  29. package/dist/managers/telemetry/types.js +8 -14
  30. package/dist/managers/telemetry/types.js.map +1 -1
  31. package/package.json +2 -2
  32. package/src/constants/API_ENDPOINTS.ts +0 -6
  33. package/src/lib/DecodeError.ts +2 -21
  34. package/src/lib/decode.ts +4 -30
  35. package/src/managers/prismicRepository/PrismicRepositoryManager.ts +1 -112
  36. package/src/managers/prismicRepository/types.ts +0 -38
  37. package/src/managers/telemetry/types.ts +18 -41
  38. package/dist/_node_modules/zod/lib/index.cjs +0 -4030
  39. package/dist/_node_modules/zod/lib/index.cjs.map +0 -1
  40. package/dist/_node_modules/zod/lib/index.js +0 -4033
  41. package/dist/_node_modules/zod/lib/index.js.map +0 -1
@@ -13,8 +13,7 @@ const API_ENDPOINTS = (() => {
13
13
  AwsAclProvider: trailingSlash.addTrailingSlash(process.env.acl_provider_endpoint),
14
14
  PrismicEmbed: trailingSlash.removeTrailingSlash(process.env.oembed_endpoint ?? "https://oembed.wroom.io"),
15
15
  PrismicUnsplash: trailingSlash.addTrailingSlash(process.env.unsplash_endpoint ?? "https://unsplash.wroom.io/"),
16
- SliceMachineV1: trailingSlash.addTrailingSlash(process.env.slice_machine_v1_endpoint ?? "https://mc5qopc07a.execute-api.us-east-1.amazonaws.com/v1/"),
17
- RepositoryService: trailingSlash.addTrailingSlash(process.env.repository_api ?? "https://repository.wroom.io/")
16
+ SliceMachineV1: trailingSlash.addTrailingSlash(process.env.slice_machine_v1_endpoint ?? "https://mc5qopc07a.execute-api.us-east-1.amazonaws.com/v1/")
18
17
  };
19
18
  const missingAPIEndpoints = Object.keys(apiEndpoints).filter((key) => {
20
19
  return !apiEndpoints[key];
@@ -46,8 +45,7 @@ If you didn't intend to run Slice Machine this way, stop it immediately and unse
46
45
  AwsAclProvider: "https://2iamcvnxf4.execute-api.us-east-1.amazonaws.com/stage/",
47
46
  PrismicEmbed: "https://oembed.wroom.io",
48
47
  PrismicUnsplash: "https://unsplash.wroom.io/",
49
- SliceMachineV1: "https://mc5qopc07a.execute-api.us-east-1.amazonaws.com/v1/",
50
- RepositoryService: "https://repository.wroom.io/"
48
+ SliceMachineV1: "https://mc5qopc07a.execute-api.us-east-1.amazonaws.com/v1/"
51
49
  };
52
50
  }
53
51
  case APPLICATION_MODE.APPLICATION_MODE.Production:
@@ -60,8 +58,7 @@ If you didn't intend to run Slice Machine this way, stop it immediately and unse
60
58
  AwsAclProvider: "https://0yyeb2g040.execute-api.us-east-1.amazonaws.com/prod/",
61
59
  PrismicEmbed: "https://oembed.prismic.io",
62
60
  PrismicUnsplash: "https://unsplash.prismic.io/",
63
- SliceMachineV1: "https://sm-api.prismic.io/v1/",
64
- RepositoryService: "https://repository.prismic.io/"
61
+ SliceMachineV1: "https://sm-api.prismic.io/v1/"
65
62
  };
66
63
  }
67
64
  }
@@ -1 +1 @@
1
- {"version":3,"file":"API_ENDPOINTS.cjs","sources":["../../../src/constants/API_ENDPOINTS.ts"],"sourcesContent":["import { addTrailingSlash, removeTrailingSlash } from \"../lib/trailingSlash\";\nimport { APPLICATION_MODE } from \"./APPLICATION_MODE\";\n\nexport type APIEndpoints = {\n\tPrismicWroom: string;\n\tPrismicAuthentication: string;\n\tPrismicModels: string;\n\tPrismicUser: string;\n\tAwsAclProvider: string;\n\tPrismicEmbed: string;\n\tPrismicUnsplash: string;\n\tSliceMachineV1: string;\n\tRepositoryService: string;\n};\n\nexport const API_ENDPOINTS: APIEndpoints = (() => {\n\tswitch (process.env.SM_ENV) {\n\t\tcase APPLICATION_MODE.Development: {\n\t\t\tconst apiEndpoints = {\n\t\t\t\tPrismicWroom: addTrailingSlash(process.env.wroom_endpoint),\n\t\t\t\tPrismicAuthentication: addTrailingSlash(\n\t\t\t\t\tprocess.env.authentication_server_endpoint,\n\t\t\t\t),\n\t\t\t\tPrismicModels: addTrailingSlash(process.env.customtypesapi_endpoint),\n\t\t\t\tPrismicUser: addTrailingSlash(process.env.user_service_endpoint),\n\t\t\t\tAwsAclProvider: addTrailingSlash(process.env.acl_provider_endpoint),\n\t\t\t\tPrismicEmbed: removeTrailingSlash(\n\t\t\t\t\tprocess.env.oembed_endpoint ?? \"https://oembed.wroom.io\",\n\t\t\t\t),\n\t\t\t\tPrismicUnsplash: addTrailingSlash(\n\t\t\t\t\tprocess.env.unsplash_endpoint ?? \"https://unsplash.wroom.io/\",\n\t\t\t\t),\n\t\t\t\tSliceMachineV1: addTrailingSlash(\n\t\t\t\t\tprocess.env.slice_machine_v1_endpoint ??\n\t\t\t\t\t\t\"https://mc5qopc07a.execute-api.us-east-1.amazonaws.com/v1/\",\n\t\t\t\t),\n\t\t\t\tRepositoryService: addTrailingSlash(\n\t\t\t\t\tprocess.env.repository_api ?? \"https://repository.wroom.io/\",\n\t\t\t\t),\n\t\t\t};\n\n\t\t\tconst missingAPIEndpoints = Object.keys(apiEndpoints).filter((key) => {\n\t\t\t\treturn !apiEndpoints[key as keyof typeof apiEndpoints];\n\t\t\t});\n\n\t\t\tif (missingAPIEndpoints.length > 0) {\n\t\t\t\tconsole.error(\n\t\t\t\t\t`You are running Slice Machine in development mode (SM_ENV=${\n\t\t\t\t\t\tAPPLICATION_MODE.Development\n\t\t\t\t\t}) where API endpoints are configured via environment variables.\n\nThe following endpoints were not configured: ${missingAPIEndpoints.join(\", \")}.\n\nConfigure them before continuing.`,\n\t\t\t\t);\n\n\t\t\t\tprocess.exit(1);\n\t\t\t}\n\n\t\t\tconsole.warn(`You are running Slice Machine in development mode (SM_ENV=${\n\t\t\t\tAPPLICATION_MODE.Development\n\t\t\t}).\n\nThe following API endpoints were configured via environment variables:\n${Object.entries(apiEndpoints)\n\t.map(([name, endpoint]) => ` - ${name}: ${endpoint}`)\n\t.join(\"\\n\")}\n\nThese endpoints are different than Slice Machine's normal endpoints and are not trusted.\n\nIf you didn't intend to run Slice Machine this way, stop it immediately and unset the SM_ENV environment variable.`);\n\n\t\t\treturn apiEndpoints as APIEndpoints;\n\t\t}\n\n\t\tcase APPLICATION_MODE.Staging: {\n\t\t\treturn {\n\t\t\t\tPrismicWroom: \"https://wroom.io/\",\n\t\t\t\tPrismicAuthentication: \"https://auth.wroom.io/\",\n\t\t\t\tPrismicModels: \"https://customtypes.wroom.io/\",\n\t\t\t\tPrismicUser: \"https://user-service.wroom.io/\",\n\t\t\t\tAwsAclProvider:\n\t\t\t\t\t\"https://2iamcvnxf4.execute-api.us-east-1.amazonaws.com/stage/\",\n\t\t\t\tPrismicEmbed: \"https://oembed.wroom.io\",\n\t\t\t\tPrismicUnsplash: \"https://unsplash.wroom.io/\",\n\t\t\t\tSliceMachineV1:\n\t\t\t\t\t\"https://mc5qopc07a.execute-api.us-east-1.amazonaws.com/v1/\",\n\t\t\t\tRepositoryService: \"https://repository.wroom.io/\",\n\t\t\t};\n\t\t}\n\n\t\tcase APPLICATION_MODE.Production:\n\t\tdefault: {\n\t\t\treturn {\n\t\t\t\tPrismicWroom: \"https://prismic.io/\",\n\t\t\t\tPrismicAuthentication: \"https://auth.prismic.io/\",\n\t\t\t\tPrismicModels: \"https://customtypes.prismic.io/\",\n\t\t\t\tPrismicUser: \"https://user-service.prismic.io/\",\n\t\t\t\tAwsAclProvider:\n\t\t\t\t\t\"https://0yyeb2g040.execute-api.us-east-1.amazonaws.com/prod/\",\n\t\t\t\tPrismicEmbed: \"https://oembed.prismic.io\",\n\t\t\t\tPrismicUnsplash: \"https://unsplash.prismic.io/\",\n\t\t\t\tSliceMachineV1: \"https://sm-api.prismic.io/v1/\",\n\t\t\t\tRepositoryService: \"https://repository.prismic.io/\",\n\t\t\t};\n\t\t}\n\t}\n})();\n"],"names":["APPLICATION_MODE","addTrailingSlash","removeTrailingSlash"],"mappings":";;;;AAeO,MAAM,iBAA+B,MAAK;AACxC,UAAA,QAAQ,IAAI,QAAQ;AAAA,IAC3B,KAAKA,iBAAAA,iBAAiB,aAAa;AAClC,YAAM,eAAe;AAAA,QACpB,cAAcC,cAAA,iBAAiB,QAAQ,IAAI,cAAc;AAAA,QACzD,uBAAuBA,cAAA,iBACtB,QAAQ,IAAI,8BAA8B;AAAA,QAE3C,eAAeA,cAAA,iBAAiB,QAAQ,IAAI,uBAAuB;AAAA,QACnE,aAAaA,cAAA,iBAAiB,QAAQ,IAAI,qBAAqB;AAAA,QAC/D,gBAAgBA,cAAA,iBAAiB,QAAQ,IAAI,qBAAqB;AAAA,QAClE,cAAcC,cAAAA,oBACb,QAAQ,IAAI,mBAAmB,yBAAyB;AAAA,QAEzD,iBAAiBD,cAAAA,iBAChB,QAAQ,IAAI,qBAAqB,4BAA4B;AAAA,QAE9D,gBAAgBA,cAAAA,iBACf,QAAQ,IAAI,6BACX,4DAA4D;AAAA,QAE9D,mBAAmBA,cAAAA,iBAClB,QAAQ,IAAI,kBAAkB,8BAA8B;AAAA,MAAA;AAI9D,YAAM,sBAAsB,OAAO,KAAK,YAAY,EAAE,OAAO,CAAC,QAAO;AAC7D,eAAA,CAAC,aAAa,GAAgC;AAAA,MAAA,CACrD;AAEG,UAAA,oBAAoB,SAAS,GAAG;AAC3B,gBAAA,MACP,6DACCD,iBAAAA,iBAAiB;AAAA;AAAA,+CAGwB,oBAAoB,KAAK,IAAI;AAAA;AAAA,kCAE1C;AAG9B,gBAAQ,KAAK,CAAC;AAAA,MACf;AAEQ,cAAA,KAAK,6DACZA,iBAAAA,iBAAiB;AAAA;AAAA;AAAA,EAInB,OAAO,QAAQ,YAAY,EAC3B,IAAI,CAAC,CAAC,MAAM,QAAQ,MAAM,OAAO,SAAS,UAAU,EACpD,KAAK,IAAI;AAAA;AAAA;AAAA;AAAA,mHAIwG;AAEzG,aAAA;AAAA,IACR;AAAA,IAEA,KAAKA,iBAAAA,iBAAiB,SAAS;AACvB,aAAA;AAAA,QACN,cAAc;AAAA,QACd,uBAAuB;AAAA,QACvB,eAAe;AAAA,QACf,aAAa;AAAA,QACb,gBACC;AAAA,QACD,cAAc;AAAA,QACd,iBAAiB;AAAA,QACjB,gBACC;AAAA,QACD,mBAAmB;AAAA,MAAA;AAAA,IAErB;AAAA,IAEA,KAAKA,iBAAAA,iBAAiB;AAAA,IACtB,SAAS;AACD,aAAA;AAAA,QACN,cAAc;AAAA,QACd,uBAAuB;AAAA,QACvB,eAAe;AAAA,QACf,aAAa;AAAA,QACb,gBACC;AAAA,QACD,cAAc;AAAA,QACd,iBAAiB;AAAA,QACjB,gBAAgB;AAAA,QAChB,mBAAmB;AAAA,MAAA;AAAA,IAErB;AAAA,EACD;AACD;;"}
1
+ {"version":3,"file":"API_ENDPOINTS.cjs","sources":["../../../src/constants/API_ENDPOINTS.ts"],"sourcesContent":["import { addTrailingSlash, removeTrailingSlash } from \"../lib/trailingSlash\";\nimport { APPLICATION_MODE } from \"./APPLICATION_MODE\";\n\nexport type APIEndpoints = {\n\tPrismicWroom: string;\n\tPrismicAuthentication: string;\n\tPrismicModels: string;\n\tPrismicUser: string;\n\tAwsAclProvider: string;\n\tPrismicEmbed: string;\n\tPrismicUnsplash: string;\n\tSliceMachineV1: string;\n};\n\nexport const API_ENDPOINTS: APIEndpoints = (() => {\n\tswitch (process.env.SM_ENV) {\n\t\tcase APPLICATION_MODE.Development: {\n\t\t\tconst apiEndpoints = {\n\t\t\t\tPrismicWroom: addTrailingSlash(process.env.wroom_endpoint),\n\t\t\t\tPrismicAuthentication: addTrailingSlash(\n\t\t\t\t\tprocess.env.authentication_server_endpoint,\n\t\t\t\t),\n\t\t\t\tPrismicModels: addTrailingSlash(process.env.customtypesapi_endpoint),\n\t\t\t\tPrismicUser: addTrailingSlash(process.env.user_service_endpoint),\n\t\t\t\tAwsAclProvider: addTrailingSlash(process.env.acl_provider_endpoint),\n\t\t\t\tPrismicEmbed: removeTrailingSlash(\n\t\t\t\t\tprocess.env.oembed_endpoint ?? \"https://oembed.wroom.io\",\n\t\t\t\t),\n\t\t\t\tPrismicUnsplash: addTrailingSlash(\n\t\t\t\t\tprocess.env.unsplash_endpoint ?? \"https://unsplash.wroom.io/\",\n\t\t\t\t),\n\t\t\t\tSliceMachineV1: addTrailingSlash(\n\t\t\t\t\tprocess.env.slice_machine_v1_endpoint ??\n\t\t\t\t\t\t\"https://mc5qopc07a.execute-api.us-east-1.amazonaws.com/v1/\",\n\t\t\t\t),\n\t\t\t};\n\n\t\t\tconst missingAPIEndpoints = Object.keys(apiEndpoints).filter((key) => {\n\t\t\t\treturn !apiEndpoints[key as keyof typeof apiEndpoints];\n\t\t\t});\n\n\t\t\tif (missingAPIEndpoints.length > 0) {\n\t\t\t\tconsole.error(\n\t\t\t\t\t`You are running Slice Machine in development mode (SM_ENV=${\n\t\t\t\t\t\tAPPLICATION_MODE.Development\n\t\t\t\t\t}) where API endpoints are configured via environment variables.\n\nThe following endpoints were not configured: ${missingAPIEndpoints.join(\", \")}.\n\nConfigure them before continuing.`,\n\t\t\t\t);\n\n\t\t\t\tprocess.exit(1);\n\t\t\t}\n\n\t\t\tconsole.warn(`You are running Slice Machine in development mode (SM_ENV=${\n\t\t\t\tAPPLICATION_MODE.Development\n\t\t\t}).\n\nThe following API endpoints were configured via environment variables:\n${Object.entries(apiEndpoints)\n\t.map(([name, endpoint]) => ` - ${name}: ${endpoint}`)\n\t.join(\"\\n\")}\n\nThese endpoints are different than Slice Machine's normal endpoints and are not trusted.\n\nIf you didn't intend to run Slice Machine this way, stop it immediately and unset the SM_ENV environment variable.`);\n\n\t\t\treturn apiEndpoints as APIEndpoints;\n\t\t}\n\n\t\tcase APPLICATION_MODE.Staging: {\n\t\t\treturn {\n\t\t\t\tPrismicWroom: \"https://wroom.io/\",\n\t\t\t\tPrismicAuthentication: \"https://auth.wroom.io/\",\n\t\t\t\tPrismicModels: \"https://customtypes.wroom.io/\",\n\t\t\t\tPrismicUser: \"https://user-service.wroom.io/\",\n\t\t\t\tAwsAclProvider:\n\t\t\t\t\t\"https://2iamcvnxf4.execute-api.us-east-1.amazonaws.com/stage/\",\n\t\t\t\tPrismicEmbed: \"https://oembed.wroom.io\",\n\t\t\t\tPrismicUnsplash: \"https://unsplash.wroom.io/\",\n\t\t\t\tSliceMachineV1:\n\t\t\t\t\t\"https://mc5qopc07a.execute-api.us-east-1.amazonaws.com/v1/\",\n\t\t\t};\n\t\t}\n\n\t\tcase APPLICATION_MODE.Production:\n\t\tdefault: {\n\t\t\treturn {\n\t\t\t\tPrismicWroom: \"https://prismic.io/\",\n\t\t\t\tPrismicAuthentication: \"https://auth.prismic.io/\",\n\t\t\t\tPrismicModels: \"https://customtypes.prismic.io/\",\n\t\t\t\tPrismicUser: \"https://user-service.prismic.io/\",\n\t\t\t\tAwsAclProvider:\n\t\t\t\t\t\"https://0yyeb2g040.execute-api.us-east-1.amazonaws.com/prod/\",\n\t\t\t\tPrismicEmbed: \"https://oembed.prismic.io\",\n\t\t\t\tPrismicUnsplash: \"https://unsplash.prismic.io/\",\n\t\t\t\tSliceMachineV1: \"https://sm-api.prismic.io/v1/\",\n\t\t\t};\n\t\t}\n\t}\n})();\n"],"names":["APPLICATION_MODE","addTrailingSlash","removeTrailingSlash"],"mappings":";;;;AAcO,MAAM,iBAA+B,MAAK;AACxC,UAAA,QAAQ,IAAI,QAAQ;AAAA,IAC3B,KAAKA,iBAAAA,iBAAiB,aAAa;AAClC,YAAM,eAAe;AAAA,QACpB,cAAcC,cAAA,iBAAiB,QAAQ,IAAI,cAAc;AAAA,QACzD,uBAAuBA,cAAA,iBACtB,QAAQ,IAAI,8BAA8B;AAAA,QAE3C,eAAeA,cAAA,iBAAiB,QAAQ,IAAI,uBAAuB;AAAA,QACnE,aAAaA,cAAA,iBAAiB,QAAQ,IAAI,qBAAqB;AAAA,QAC/D,gBAAgBA,cAAA,iBAAiB,QAAQ,IAAI,qBAAqB;AAAA,QAClE,cAAcC,cAAAA,oBACb,QAAQ,IAAI,mBAAmB,yBAAyB;AAAA,QAEzD,iBAAiBD,cAAAA,iBAChB,QAAQ,IAAI,qBAAqB,4BAA4B;AAAA,QAE9D,gBAAgBA,cAAAA,iBACf,QAAQ,IAAI,6BACX,4DAA4D;AAAA,MAAA;AAI/D,YAAM,sBAAsB,OAAO,KAAK,YAAY,EAAE,OAAO,CAAC,QAAO;AAC7D,eAAA,CAAC,aAAa,GAAgC;AAAA,MAAA,CACrD;AAEG,UAAA,oBAAoB,SAAS,GAAG;AAC3B,gBAAA,MACP,6DACCD,iBAAAA,iBAAiB;AAAA;AAAA,+CAGwB,oBAAoB,KAAK,IAAI;AAAA;AAAA,kCAE1C;AAG9B,gBAAQ,KAAK,CAAC;AAAA,MACf;AAEQ,cAAA,KAAK,6DACZA,iBAAAA,iBAAiB;AAAA;AAAA;AAAA,EAInB,OAAO,QAAQ,YAAY,EAC3B,IAAI,CAAC,CAAC,MAAM,QAAQ,MAAM,OAAO,SAAS,UAAU,EACpD,KAAK,IAAI;AAAA;AAAA;AAAA;AAAA,mHAIwG;AAEzG,aAAA;AAAA,IACR;AAAA,IAEA,KAAKA,iBAAAA,iBAAiB,SAAS;AACvB,aAAA;AAAA,QACN,cAAc;AAAA,QACd,uBAAuB;AAAA,QACvB,eAAe;AAAA,QACf,aAAa;AAAA,QACb,gBACC;AAAA,QACD,cAAc;AAAA,QACd,iBAAiB;AAAA,QACjB,gBACC;AAAA,MAAA;AAAA,IAEH;AAAA,IAEA,KAAKA,iBAAAA,iBAAiB;AAAA,IACtB,SAAS;AACD,aAAA;AAAA,QACN,cAAc;AAAA,QACd,uBAAuB;AAAA,QACvB,eAAe;AAAA,QACf,aAAa;AAAA,QACb,gBACC;AAAA,QACD,cAAc;AAAA,QACd,iBAAiB;AAAA,QACjB,gBAAgB;AAAA,MAAA;AAAA,IAElB;AAAA,EACD;AACD;;"}
@@ -7,6 +7,5 @@ export type APIEndpoints = {
7
7
  PrismicEmbed: string;
8
8
  PrismicUnsplash: string;
9
9
  SliceMachineV1: string;
10
- RepositoryService: string;
11
10
  };
12
11
  export declare const API_ENDPOINTS: APIEndpoints;
@@ -11,8 +11,7 @@ const API_ENDPOINTS = (() => {
11
11
  AwsAclProvider: addTrailingSlash(process.env.acl_provider_endpoint),
12
12
  PrismicEmbed: removeTrailingSlash(process.env.oembed_endpoint ?? "https://oembed.wroom.io"),
13
13
  PrismicUnsplash: addTrailingSlash(process.env.unsplash_endpoint ?? "https://unsplash.wroom.io/"),
14
- SliceMachineV1: addTrailingSlash(process.env.slice_machine_v1_endpoint ?? "https://mc5qopc07a.execute-api.us-east-1.amazonaws.com/v1/"),
15
- RepositoryService: addTrailingSlash(process.env.repository_api ?? "https://repository.wroom.io/")
14
+ SliceMachineV1: addTrailingSlash(process.env.slice_machine_v1_endpoint ?? "https://mc5qopc07a.execute-api.us-east-1.amazonaws.com/v1/")
16
15
  };
17
16
  const missingAPIEndpoints = Object.keys(apiEndpoints).filter((key) => {
18
17
  return !apiEndpoints[key];
@@ -44,8 +43,7 @@ If you didn't intend to run Slice Machine this way, stop it immediately and unse
44
43
  AwsAclProvider: "https://2iamcvnxf4.execute-api.us-east-1.amazonaws.com/stage/",
45
44
  PrismicEmbed: "https://oembed.wroom.io",
46
45
  PrismicUnsplash: "https://unsplash.wroom.io/",
47
- SliceMachineV1: "https://mc5qopc07a.execute-api.us-east-1.amazonaws.com/v1/",
48
- RepositoryService: "https://repository.wroom.io/"
46
+ SliceMachineV1: "https://mc5qopc07a.execute-api.us-east-1.amazonaws.com/v1/"
49
47
  };
50
48
  }
51
49
  case APPLICATION_MODE.Production:
@@ -58,8 +56,7 @@ If you didn't intend to run Slice Machine this way, stop it immediately and unse
58
56
  AwsAclProvider: "https://0yyeb2g040.execute-api.us-east-1.amazonaws.com/prod/",
59
57
  PrismicEmbed: "https://oembed.prismic.io",
60
58
  PrismicUnsplash: "https://unsplash.prismic.io/",
61
- SliceMachineV1: "https://sm-api.prismic.io/v1/",
62
- RepositoryService: "https://repository.prismic.io/"
59
+ SliceMachineV1: "https://sm-api.prismic.io/v1/"
63
60
  };
64
61
  }
65
62
  }
@@ -1 +1 @@
1
- {"version":3,"file":"API_ENDPOINTS.js","sources":["../../../src/constants/API_ENDPOINTS.ts"],"sourcesContent":["import { addTrailingSlash, removeTrailingSlash } from \"../lib/trailingSlash\";\nimport { APPLICATION_MODE } from \"./APPLICATION_MODE\";\n\nexport type APIEndpoints = {\n\tPrismicWroom: string;\n\tPrismicAuthentication: string;\n\tPrismicModels: string;\n\tPrismicUser: string;\n\tAwsAclProvider: string;\n\tPrismicEmbed: string;\n\tPrismicUnsplash: string;\n\tSliceMachineV1: string;\n\tRepositoryService: string;\n};\n\nexport const API_ENDPOINTS: APIEndpoints = (() => {\n\tswitch (process.env.SM_ENV) {\n\t\tcase APPLICATION_MODE.Development: {\n\t\t\tconst apiEndpoints = {\n\t\t\t\tPrismicWroom: addTrailingSlash(process.env.wroom_endpoint),\n\t\t\t\tPrismicAuthentication: addTrailingSlash(\n\t\t\t\t\tprocess.env.authentication_server_endpoint,\n\t\t\t\t),\n\t\t\t\tPrismicModels: addTrailingSlash(process.env.customtypesapi_endpoint),\n\t\t\t\tPrismicUser: addTrailingSlash(process.env.user_service_endpoint),\n\t\t\t\tAwsAclProvider: addTrailingSlash(process.env.acl_provider_endpoint),\n\t\t\t\tPrismicEmbed: removeTrailingSlash(\n\t\t\t\t\tprocess.env.oembed_endpoint ?? \"https://oembed.wroom.io\",\n\t\t\t\t),\n\t\t\t\tPrismicUnsplash: addTrailingSlash(\n\t\t\t\t\tprocess.env.unsplash_endpoint ?? \"https://unsplash.wroom.io/\",\n\t\t\t\t),\n\t\t\t\tSliceMachineV1: addTrailingSlash(\n\t\t\t\t\tprocess.env.slice_machine_v1_endpoint ??\n\t\t\t\t\t\t\"https://mc5qopc07a.execute-api.us-east-1.amazonaws.com/v1/\",\n\t\t\t\t),\n\t\t\t\tRepositoryService: addTrailingSlash(\n\t\t\t\t\tprocess.env.repository_api ?? \"https://repository.wroom.io/\",\n\t\t\t\t),\n\t\t\t};\n\n\t\t\tconst missingAPIEndpoints = Object.keys(apiEndpoints).filter((key) => {\n\t\t\t\treturn !apiEndpoints[key as keyof typeof apiEndpoints];\n\t\t\t});\n\n\t\t\tif (missingAPIEndpoints.length > 0) {\n\t\t\t\tconsole.error(\n\t\t\t\t\t`You are running Slice Machine in development mode (SM_ENV=${\n\t\t\t\t\t\tAPPLICATION_MODE.Development\n\t\t\t\t\t}) where API endpoints are configured via environment variables.\n\nThe following endpoints were not configured: ${missingAPIEndpoints.join(\", \")}.\n\nConfigure them before continuing.`,\n\t\t\t\t);\n\n\t\t\t\tprocess.exit(1);\n\t\t\t}\n\n\t\t\tconsole.warn(`You are running Slice Machine in development mode (SM_ENV=${\n\t\t\t\tAPPLICATION_MODE.Development\n\t\t\t}).\n\nThe following API endpoints were configured via environment variables:\n${Object.entries(apiEndpoints)\n\t.map(([name, endpoint]) => ` - ${name}: ${endpoint}`)\n\t.join(\"\\n\")}\n\nThese endpoints are different than Slice Machine's normal endpoints and are not trusted.\n\nIf you didn't intend to run Slice Machine this way, stop it immediately and unset the SM_ENV environment variable.`);\n\n\t\t\treturn apiEndpoints as APIEndpoints;\n\t\t}\n\n\t\tcase APPLICATION_MODE.Staging: {\n\t\t\treturn {\n\t\t\t\tPrismicWroom: \"https://wroom.io/\",\n\t\t\t\tPrismicAuthentication: \"https://auth.wroom.io/\",\n\t\t\t\tPrismicModels: \"https://customtypes.wroom.io/\",\n\t\t\t\tPrismicUser: \"https://user-service.wroom.io/\",\n\t\t\t\tAwsAclProvider:\n\t\t\t\t\t\"https://2iamcvnxf4.execute-api.us-east-1.amazonaws.com/stage/\",\n\t\t\t\tPrismicEmbed: \"https://oembed.wroom.io\",\n\t\t\t\tPrismicUnsplash: \"https://unsplash.wroom.io/\",\n\t\t\t\tSliceMachineV1:\n\t\t\t\t\t\"https://mc5qopc07a.execute-api.us-east-1.amazonaws.com/v1/\",\n\t\t\t\tRepositoryService: \"https://repository.wroom.io/\",\n\t\t\t};\n\t\t}\n\n\t\tcase APPLICATION_MODE.Production:\n\t\tdefault: {\n\t\t\treturn {\n\t\t\t\tPrismicWroom: \"https://prismic.io/\",\n\t\t\t\tPrismicAuthentication: \"https://auth.prismic.io/\",\n\t\t\t\tPrismicModels: \"https://customtypes.prismic.io/\",\n\t\t\t\tPrismicUser: \"https://user-service.prismic.io/\",\n\t\t\t\tAwsAclProvider:\n\t\t\t\t\t\"https://0yyeb2g040.execute-api.us-east-1.amazonaws.com/prod/\",\n\t\t\t\tPrismicEmbed: \"https://oembed.prismic.io\",\n\t\t\t\tPrismicUnsplash: \"https://unsplash.prismic.io/\",\n\t\t\t\tSliceMachineV1: \"https://sm-api.prismic.io/v1/\",\n\t\t\t\tRepositoryService: \"https://repository.prismic.io/\",\n\t\t\t};\n\t\t}\n\t}\n})();\n"],"names":[],"mappings":";;AAeO,MAAM,iBAA+B,MAAK;AACxC,UAAA,QAAQ,IAAI,QAAQ;AAAA,IAC3B,KAAK,iBAAiB,aAAa;AAClC,YAAM,eAAe;AAAA,QACpB,cAAc,iBAAiB,QAAQ,IAAI,cAAc;AAAA,QACzD,uBAAuB,iBACtB,QAAQ,IAAI,8BAA8B;AAAA,QAE3C,eAAe,iBAAiB,QAAQ,IAAI,uBAAuB;AAAA,QACnE,aAAa,iBAAiB,QAAQ,IAAI,qBAAqB;AAAA,QAC/D,gBAAgB,iBAAiB,QAAQ,IAAI,qBAAqB;AAAA,QAClE,cAAc,oBACb,QAAQ,IAAI,mBAAmB,yBAAyB;AAAA,QAEzD,iBAAiB,iBAChB,QAAQ,IAAI,qBAAqB,4BAA4B;AAAA,QAE9D,gBAAgB,iBACf,QAAQ,IAAI,6BACX,4DAA4D;AAAA,QAE9D,mBAAmB,iBAClB,QAAQ,IAAI,kBAAkB,8BAA8B;AAAA,MAAA;AAI9D,YAAM,sBAAsB,OAAO,KAAK,YAAY,EAAE,OAAO,CAAC,QAAO;AAC7D,eAAA,CAAC,aAAa,GAAgC;AAAA,MAAA,CACrD;AAEG,UAAA,oBAAoB,SAAS,GAAG;AAC3B,gBAAA,MACP,6DACC,iBAAiB;AAAA;AAAA,+CAGwB,oBAAoB,KAAK,IAAI;AAAA;AAAA,kCAE1C;AAG9B,gBAAQ,KAAK,CAAC;AAAA,MACf;AAEQ,cAAA,KAAK,6DACZ,iBAAiB;AAAA;AAAA;AAAA,EAInB,OAAO,QAAQ,YAAY,EAC3B,IAAI,CAAC,CAAC,MAAM,QAAQ,MAAM,OAAO,SAAS,UAAU,EACpD,KAAK,IAAI;AAAA;AAAA;AAAA;AAAA,mHAIwG;AAEzG,aAAA;AAAA,IACR;AAAA,IAEA,KAAK,iBAAiB,SAAS;AACvB,aAAA;AAAA,QACN,cAAc;AAAA,QACd,uBAAuB;AAAA,QACvB,eAAe;AAAA,QACf,aAAa;AAAA,QACb,gBACC;AAAA,QACD,cAAc;AAAA,QACd,iBAAiB;AAAA,QACjB,gBACC;AAAA,QACD,mBAAmB;AAAA,MAAA;AAAA,IAErB;AAAA,IAEA,KAAK,iBAAiB;AAAA,IACtB,SAAS;AACD,aAAA;AAAA,QACN,cAAc;AAAA,QACd,uBAAuB;AAAA,QACvB,eAAe;AAAA,QACf,aAAa;AAAA,QACb,gBACC;AAAA,QACD,cAAc;AAAA,QACd,iBAAiB;AAAA,QACjB,gBAAgB;AAAA,QAChB,mBAAmB;AAAA,MAAA;AAAA,IAErB;AAAA,EACD;AACD;"}
1
+ {"version":3,"file":"API_ENDPOINTS.js","sources":["../../../src/constants/API_ENDPOINTS.ts"],"sourcesContent":["import { addTrailingSlash, removeTrailingSlash } from \"../lib/trailingSlash\";\nimport { APPLICATION_MODE } from \"./APPLICATION_MODE\";\n\nexport type APIEndpoints = {\n\tPrismicWroom: string;\n\tPrismicAuthentication: string;\n\tPrismicModels: string;\n\tPrismicUser: string;\n\tAwsAclProvider: string;\n\tPrismicEmbed: string;\n\tPrismicUnsplash: string;\n\tSliceMachineV1: string;\n};\n\nexport const API_ENDPOINTS: APIEndpoints = (() => {\n\tswitch (process.env.SM_ENV) {\n\t\tcase APPLICATION_MODE.Development: {\n\t\t\tconst apiEndpoints = {\n\t\t\t\tPrismicWroom: addTrailingSlash(process.env.wroom_endpoint),\n\t\t\t\tPrismicAuthentication: addTrailingSlash(\n\t\t\t\t\tprocess.env.authentication_server_endpoint,\n\t\t\t\t),\n\t\t\t\tPrismicModels: addTrailingSlash(process.env.customtypesapi_endpoint),\n\t\t\t\tPrismicUser: addTrailingSlash(process.env.user_service_endpoint),\n\t\t\t\tAwsAclProvider: addTrailingSlash(process.env.acl_provider_endpoint),\n\t\t\t\tPrismicEmbed: removeTrailingSlash(\n\t\t\t\t\tprocess.env.oembed_endpoint ?? \"https://oembed.wroom.io\",\n\t\t\t\t),\n\t\t\t\tPrismicUnsplash: addTrailingSlash(\n\t\t\t\t\tprocess.env.unsplash_endpoint ?? \"https://unsplash.wroom.io/\",\n\t\t\t\t),\n\t\t\t\tSliceMachineV1: addTrailingSlash(\n\t\t\t\t\tprocess.env.slice_machine_v1_endpoint ??\n\t\t\t\t\t\t\"https://mc5qopc07a.execute-api.us-east-1.amazonaws.com/v1/\",\n\t\t\t\t),\n\t\t\t};\n\n\t\t\tconst missingAPIEndpoints = Object.keys(apiEndpoints).filter((key) => {\n\t\t\t\treturn !apiEndpoints[key as keyof typeof apiEndpoints];\n\t\t\t});\n\n\t\t\tif (missingAPIEndpoints.length > 0) {\n\t\t\t\tconsole.error(\n\t\t\t\t\t`You are running Slice Machine in development mode (SM_ENV=${\n\t\t\t\t\t\tAPPLICATION_MODE.Development\n\t\t\t\t\t}) where API endpoints are configured via environment variables.\n\nThe following endpoints were not configured: ${missingAPIEndpoints.join(\", \")}.\n\nConfigure them before continuing.`,\n\t\t\t\t);\n\n\t\t\t\tprocess.exit(1);\n\t\t\t}\n\n\t\t\tconsole.warn(`You are running Slice Machine in development mode (SM_ENV=${\n\t\t\t\tAPPLICATION_MODE.Development\n\t\t\t}).\n\nThe following API endpoints were configured via environment variables:\n${Object.entries(apiEndpoints)\n\t.map(([name, endpoint]) => ` - ${name}: ${endpoint}`)\n\t.join(\"\\n\")}\n\nThese endpoints are different than Slice Machine's normal endpoints and are not trusted.\n\nIf you didn't intend to run Slice Machine this way, stop it immediately and unset the SM_ENV environment variable.`);\n\n\t\t\treturn apiEndpoints as APIEndpoints;\n\t\t}\n\n\t\tcase APPLICATION_MODE.Staging: {\n\t\t\treturn {\n\t\t\t\tPrismicWroom: \"https://wroom.io/\",\n\t\t\t\tPrismicAuthentication: \"https://auth.wroom.io/\",\n\t\t\t\tPrismicModels: \"https://customtypes.wroom.io/\",\n\t\t\t\tPrismicUser: \"https://user-service.wroom.io/\",\n\t\t\t\tAwsAclProvider:\n\t\t\t\t\t\"https://2iamcvnxf4.execute-api.us-east-1.amazonaws.com/stage/\",\n\t\t\t\tPrismicEmbed: \"https://oembed.wroom.io\",\n\t\t\t\tPrismicUnsplash: \"https://unsplash.wroom.io/\",\n\t\t\t\tSliceMachineV1:\n\t\t\t\t\t\"https://mc5qopc07a.execute-api.us-east-1.amazonaws.com/v1/\",\n\t\t\t};\n\t\t}\n\n\t\tcase APPLICATION_MODE.Production:\n\t\tdefault: {\n\t\t\treturn {\n\t\t\t\tPrismicWroom: \"https://prismic.io/\",\n\t\t\t\tPrismicAuthentication: \"https://auth.prismic.io/\",\n\t\t\t\tPrismicModels: \"https://customtypes.prismic.io/\",\n\t\t\t\tPrismicUser: \"https://user-service.prismic.io/\",\n\t\t\t\tAwsAclProvider:\n\t\t\t\t\t\"https://0yyeb2g040.execute-api.us-east-1.amazonaws.com/prod/\",\n\t\t\t\tPrismicEmbed: \"https://oembed.prismic.io\",\n\t\t\t\tPrismicUnsplash: \"https://unsplash.prismic.io/\",\n\t\t\t\tSliceMachineV1: \"https://sm-api.prismic.io/v1/\",\n\t\t\t};\n\t\t}\n\t}\n})();\n"],"names":[],"mappings":";;AAcO,MAAM,iBAA+B,MAAK;AACxC,UAAA,QAAQ,IAAI,QAAQ;AAAA,IAC3B,KAAK,iBAAiB,aAAa;AAClC,YAAM,eAAe;AAAA,QACpB,cAAc,iBAAiB,QAAQ,IAAI,cAAc;AAAA,QACzD,uBAAuB,iBACtB,QAAQ,IAAI,8BAA8B;AAAA,QAE3C,eAAe,iBAAiB,QAAQ,IAAI,uBAAuB;AAAA,QACnE,aAAa,iBAAiB,QAAQ,IAAI,qBAAqB;AAAA,QAC/D,gBAAgB,iBAAiB,QAAQ,IAAI,qBAAqB;AAAA,QAClE,cAAc,oBACb,QAAQ,IAAI,mBAAmB,yBAAyB;AAAA,QAEzD,iBAAiB,iBAChB,QAAQ,IAAI,qBAAqB,4BAA4B;AAAA,QAE9D,gBAAgB,iBACf,QAAQ,IAAI,6BACX,4DAA4D;AAAA,MAAA;AAI/D,YAAM,sBAAsB,OAAO,KAAK,YAAY,EAAE,OAAO,CAAC,QAAO;AAC7D,eAAA,CAAC,aAAa,GAAgC;AAAA,MAAA,CACrD;AAEG,UAAA,oBAAoB,SAAS,GAAG;AAC3B,gBAAA,MACP,6DACC,iBAAiB;AAAA;AAAA,+CAGwB,oBAAoB,KAAK,IAAI;AAAA;AAAA,kCAE1C;AAG9B,gBAAQ,KAAK,CAAC;AAAA,MACf;AAEQ,cAAA,KAAK,6DACZ,iBAAiB;AAAA;AAAA;AAAA,EAInB,OAAO,QAAQ,YAAY,EAC3B,IAAI,CAAC,CAAC,MAAM,QAAQ,MAAM,OAAO,SAAS,UAAU,EACpD,KAAK,IAAI;AAAA;AAAA;AAAA;AAAA,mHAIwG;AAEzG,aAAA;AAAA,IACR;AAAA,IAEA,KAAK,iBAAiB,SAAS;AACvB,aAAA;AAAA,QACN,cAAc;AAAA,QACd,uBAAuB;AAAA,QACvB,eAAe;AAAA,QACf,aAAa;AAAA,QACb,gBACC;AAAA,QACD,cAAc;AAAA,QACd,iBAAiB;AAAA,QACjB,gBACC;AAAA,MAAA;AAAA,IAEH;AAAA,IAEA,KAAK,iBAAiB;AAAA,IACtB,SAAS;AACD,aAAA;AAAA,QACN,cAAc;AAAA,QACd,uBAAuB;AAAA,QACvB,eAAe;AAAA,QACf,aAAa;AAAA,QACb,gBACC;AAAA,QACD,cAAc;AAAA,QACd,iBAAiB;AAAA,QACjB,gBAAgB;AAAA,MAAA;AAAA,IAElB;AAAA,EACD;AACD;"}
@@ -7,23 +7,9 @@ var __publicField = (obj, key, value) => {
7
7
  };
8
8
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
9
9
  const ioTsReporters = require("io-ts-reporters");
10
- function isZodIssueArray(errors) {
11
- return "path" in errors[0];
12
- }
13
- function formatZodErrors(errors) {
14
- return errors.map((err) => {
15
- const path = err.path.length > 0 ? ` at ${err.path.join(".")}` : "";
16
- return `${err.message}${path}`;
17
- });
18
- }
19
10
  class DecodeError extends Error {
20
11
  constructor(args) {
21
- let formattedErrors = [];
22
- if (isZodIssueArray(args.errors)) {
23
- formattedErrors = formatZodErrors(args.errors);
24
- } else {
25
- formattedErrors = ioTsReporters.formatValidationErrors(args.errors);
26
- }
12
+ const formattedErrors = ioTsReporters.formatValidationErrors(args.errors);
27
13
  super(formattedErrors.join(", "));
28
14
  __publicField(this, "name", "DecodeError");
29
15
  __publicField(this, "input");
@@ -1 +1 @@
1
- {"version":3,"file":"DecodeError.cjs","sources":["../../../src/lib/DecodeError.ts"],"sourcesContent":["import * as t from \"io-ts\";\nimport { formatValidationErrors } from \"io-ts-reporters\";\nimport { ZodIssue } from \"zod\";\n\ntype DecodeErrorConstructorArgs<TInput = unknown> = {\n\tinput: TInput;\n\terrors: t.Errors | ZodIssue[];\n};\n\nfunction isZodIssueArray(errors: object[]): errors is ZodIssue[] {\n\treturn \"path\" in errors[0];\n}\n\nfunction formatZodErrors(errors: ZodIssue[]): string[] {\n\treturn errors.map((err) => {\n\t\tconst path = err.path.length > 0 ? ` at ${err.path.join(\".\")}` : \"\";\n\n\t\treturn `${err.message}${path}`;\n\t});\n}\n\nexport class DecodeError<TInput = unknown> extends Error {\n\tname = \"DecodeError\";\n\tinput: TInput;\n\terrors: string[];\n\n\tconstructor(args: DecodeErrorConstructorArgs<TInput>) {\n\t\tlet formattedErrors: string[] = [];\n\n\t\tif (isZodIssueArray(args.errors)) {\n\t\t\tformattedErrors = formatZodErrors(args.errors);\n\t\t} else {\n\t\t\tformattedErrors = formatValidationErrors(args.errors);\n\t\t}\n\n\t\tsuper(formattedErrors.join(\", \"));\n\n\t\tthis.input = args.input;\n\t\tthis.errors = formattedErrors;\n\t}\n}\n"],"names":["formatValidationErrors"],"mappings":";;;;;;;;;AASA,SAAS,gBAAgB,QAAgB;AACjC,SAAA,UAAU,OAAO,CAAC;AAC1B;AAEA,SAAS,gBAAgB,QAAkB;AACnC,SAAA,OAAO,IAAI,CAAC,QAAO;AACnB,UAAA,OAAO,IAAI,KAAK,SAAS,IAAI,OAAO,IAAI,KAAK,KAAK,GAAG,MAAM;AAE1D,WAAA,GAAG,IAAI,UAAU;AAAA,EAAA,CACxB;AACF;AAEM,MAAO,oBAAsC,MAAK;AAAA,EAKvD,YAAY,MAAwC;AACnD,QAAI,kBAA4B,CAAA;AAE5B,QAAA,gBAAgB,KAAK,MAAM,GAAG;AACf,wBAAA,gBAAgB,KAAK,MAAM;AAAA,IAAA,OACvC;AACY,wBAAAA,cAAA,uBAAuB,KAAK,MAAM;AAAA,IACrD;AAEM,UAAA,gBAAgB,KAAK,IAAI,CAAC;AAbjC,gCAAO;AACP;AACA;AAaC,SAAK,QAAQ,KAAK;AAClB,SAAK,SAAS;AAAA,EACf;AACA;;"}
1
+ {"version":3,"file":"DecodeError.cjs","sources":["../../../src/lib/DecodeError.ts"],"sourcesContent":["import * as t from \"io-ts\";\nimport { formatValidationErrors } from \"io-ts-reporters\";\n\ntype DecodeErrorConstructorArgs<TInput = unknown> = {\n\tinput: TInput;\n\terrors: t.Errors;\n};\n\nexport class DecodeError<TInput = unknown> extends Error {\n\tname = \"DecodeError\";\n\tinput: TInput;\n\terrors: string[];\n\n\tconstructor(args: DecodeErrorConstructorArgs<TInput>) {\n\t\tconst formattedErrors = formatValidationErrors(args.errors);\n\n\t\tsuper(formattedErrors.join(\", \"));\n\n\t\tthis.input = args.input;\n\t\tthis.errors = formattedErrors;\n\t}\n}\n"],"names":["formatValidationErrors"],"mappings":";;;;;;;;;AAQM,MAAO,oBAAsC,MAAK;AAAA,EAKvD,YAAY,MAAwC;AAC7C,UAAA,kBAAkBA,cAAAA,uBAAuB,KAAK,MAAM;AAEpD,UAAA,gBAAgB,KAAK,IAAI,CAAC;AAPjC,gCAAO;AACP;AACA;AAOC,SAAK,QAAQ,KAAK;AAClB,SAAK,SAAS;AAAA,EACf;AACA;;"}
@@ -1,8 +1,7 @@
1
1
  import * as t from "io-ts";
2
- import { ZodIssue } from "zod";
3
2
  type DecodeErrorConstructorArgs<TInput = unknown> = {
4
3
  input: TInput;
5
- errors: t.Errors | ZodIssue[];
4
+ errors: t.Errors;
6
5
  };
7
6
  export declare class DecodeError<TInput = unknown> extends Error {
8
7
  name: string;
@@ -5,23 +5,9 @@ var __publicField = (obj, key, value) => {
5
5
  return value;
6
6
  };
7
7
  import { formatValidationErrors } from "io-ts-reporters";
8
- function isZodIssueArray(errors) {
9
- return "path" in errors[0];
10
- }
11
- function formatZodErrors(errors) {
12
- return errors.map((err) => {
13
- const path = err.path.length > 0 ? ` at ${err.path.join(".")}` : "";
14
- return `${err.message}${path}`;
15
- });
16
- }
17
8
  class DecodeError extends Error {
18
9
  constructor(args) {
19
- let formattedErrors = [];
20
- if (isZodIssueArray(args.errors)) {
21
- formattedErrors = formatZodErrors(args.errors);
22
- } else {
23
- formattedErrors = formatValidationErrors(args.errors);
24
- }
10
+ const formattedErrors = formatValidationErrors(args.errors);
25
11
  super(formattedErrors.join(", "));
26
12
  __publicField(this, "name", "DecodeError");
27
13
  __publicField(this, "input");
@@ -1 +1 @@
1
- {"version":3,"file":"DecodeError.js","sources":["../../../src/lib/DecodeError.ts"],"sourcesContent":["import * as t from \"io-ts\";\nimport { formatValidationErrors } from \"io-ts-reporters\";\nimport { ZodIssue } from \"zod\";\n\ntype DecodeErrorConstructorArgs<TInput = unknown> = {\n\tinput: TInput;\n\terrors: t.Errors | ZodIssue[];\n};\n\nfunction isZodIssueArray(errors: object[]): errors is ZodIssue[] {\n\treturn \"path\" in errors[0];\n}\n\nfunction formatZodErrors(errors: ZodIssue[]): string[] {\n\treturn errors.map((err) => {\n\t\tconst path = err.path.length > 0 ? ` at ${err.path.join(\".\")}` : \"\";\n\n\t\treturn `${err.message}${path}`;\n\t});\n}\n\nexport class DecodeError<TInput = unknown> extends Error {\n\tname = \"DecodeError\";\n\tinput: TInput;\n\terrors: string[];\n\n\tconstructor(args: DecodeErrorConstructorArgs<TInput>) {\n\t\tlet formattedErrors: string[] = [];\n\n\t\tif (isZodIssueArray(args.errors)) {\n\t\t\tformattedErrors = formatZodErrors(args.errors);\n\t\t} else {\n\t\t\tformattedErrors = formatValidationErrors(args.errors);\n\t\t}\n\n\t\tsuper(formattedErrors.join(\", \"));\n\n\t\tthis.input = args.input;\n\t\tthis.errors = formattedErrors;\n\t}\n}\n"],"names":[],"mappings":";;;;;;;AASA,SAAS,gBAAgB,QAAgB;AACjC,SAAA,UAAU,OAAO,CAAC;AAC1B;AAEA,SAAS,gBAAgB,QAAkB;AACnC,SAAA,OAAO,IAAI,CAAC,QAAO;AACnB,UAAA,OAAO,IAAI,KAAK,SAAS,IAAI,OAAO,IAAI,KAAK,KAAK,GAAG,MAAM;AAE1D,WAAA,GAAG,IAAI,UAAU;AAAA,EAAA,CACxB;AACF;AAEM,MAAO,oBAAsC,MAAK;AAAA,EAKvD,YAAY,MAAwC;AACnD,QAAI,kBAA4B,CAAA;AAE5B,QAAA,gBAAgB,KAAK,MAAM,GAAG;AACf,wBAAA,gBAAgB,KAAK,MAAM;AAAA,IAAA,OACvC;AACY,wBAAA,uBAAuB,KAAK,MAAM;AAAA,IACrD;AAEM,UAAA,gBAAgB,KAAK,IAAI,CAAC;AAbjC,gCAAO;AACP;AACA;AAaC,SAAK,QAAQ,KAAK;AAClB,SAAK,SAAS;AAAA,EACf;AACA;"}
1
+ {"version":3,"file":"DecodeError.js","sources":["../../../src/lib/DecodeError.ts"],"sourcesContent":["import * as t from \"io-ts\";\nimport { formatValidationErrors } from \"io-ts-reporters\";\n\ntype DecodeErrorConstructorArgs<TInput = unknown> = {\n\tinput: TInput;\n\terrors: t.Errors;\n};\n\nexport class DecodeError<TInput = unknown> extends Error {\n\tname = \"DecodeError\";\n\tinput: TInput;\n\terrors: string[];\n\n\tconstructor(args: DecodeErrorConstructorArgs<TInput>) {\n\t\tconst formattedErrors = formatValidationErrors(args.errors);\n\n\t\tsuper(formattedErrors.join(\", \"));\n\n\t\tthis.input = args.input;\n\t\tthis.errors = formattedErrors;\n\t}\n}\n"],"names":[],"mappings":";;;;;;;AAQM,MAAO,oBAAsC,MAAK;AAAA,EAKvD,YAAY,MAAwC;AAC7C,UAAA,kBAAkB,uBAAuB,KAAK,MAAM;AAEpD,UAAA,gBAAgB,KAAK,IAAI,CAAC;AAPjC,gCAAO;AACP;AACA;AAOC,SAAK,QAAQ,KAAK;AAClB,SAAK,SAAS;AAAA,EACf;AACA;"}
@@ -1,20 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const index = require('./../_node_modules/zod/lib/index.cjs');
4
3
  const Either = require('./../_node_modules/fp-ts/es6/Either.cjs');
5
4
  const _function = require('./../_node_modules/fp-ts/es6/function.cjs');
6
5
  const DecodeError = require("./DecodeError.cjs");
7
- function isZodSchema(value) {
8
- return typeof value.safeParse === "function" && value instanceof index.Schema;
9
- }
10
- function decode(codec, input) {
11
- if (isZodSchema(codec)) {
12
- const parsed = codec.safeParse(input);
13
- if (parsed.success) {
14
- return { value: parsed.data };
15
- }
16
- return { error: new DecodeError.DecodeError({ input, errors: parsed.error.errors }) };
17
- }
6
+ const decode = (codec, input) => {
18
7
  return _function.pipe(codec.decode(input), Either.foldW((errors) => {
19
8
  return {
20
9
  error: new DecodeError.DecodeError({ input, errors })
@@ -24,6 +13,6 @@ function decode(codec, input) {
24
13
  value
25
14
  };
26
15
  }));
27
- }
16
+ };
28
17
  exports.decode = decode;
29
18
  //# sourceMappingURL=decode.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"decode.cjs","sources":["../../../src/lib/decode.ts"],"sourcesContent":["import * as t from \"io-ts\";\nimport { ZodType, ZodTypeDef } from \"zod\";\nimport * as E from \"fp-ts/Either\";\nimport { pipe } from \"fp-ts/function\";\n\nimport { DecodeError } from \"./DecodeError\";\n\nexport type DecodeReturnType<A, _O, I> =\n\t| {\n\t\t\tvalue: A;\n\t\t\terror?: never;\n\t }\n\t| {\n\t\t\tvalue?: never;\n\t\t\terror: DecodeError<I>;\n\t };\n\nfunction isZodSchema(value: unknown): value is ZodType<unknown> {\n\treturn (\n\t\ttypeof (value as ZodType<unknown>).safeParse === \"function\" &&\n\t\tvalue instanceof ZodType\n\t);\n}\n\nexport function decode<A, O, I>(\n\tcodec: ZodType<A, ZodTypeDef, unknown>,\n\tinput: I,\n): DecodeReturnType<A, O, I>;\nexport function decode<A, O, I>(\n\tcodec: t.Type<A, O, I> | ZodType<A, ZodTypeDef, unknown>,\n\tinput: I,\n): DecodeReturnType<A, O, I>;\nexport function decode<A, O, I>(\n\tcodec: t.Type<A, O, I> | ZodType<A, ZodTypeDef, unknown>,\n\tinput: I,\n): DecodeReturnType<A, O, I> {\n\tif (isZodSchema(codec)) {\n\t\tconst parsed = codec.safeParse(input);\n\n\t\tif (parsed.success) {\n\t\t\treturn { value: parsed.data };\n\t\t}\n\n\t\treturn { error: new DecodeError({ input, errors: parsed.error.errors }) };\n\t}\n\n\treturn pipe(\n\t\tcodec.decode(input),\n\t\tE.foldW(\n\t\t\t(errors) => {\n\t\t\t\treturn {\n\t\t\t\t\terror: new DecodeError({ input, errors }),\n\t\t\t\t};\n\t\t\t},\n\t\t\t(value) => {\n\t\t\t\treturn {\n\t\t\t\t\tvalue,\n\t\t\t\t};\n\t\t\t},\n\t\t),\n\t);\n}\n"],"names":["ZodType","DecodeError","pipe","E.foldW"],"mappings":";;;;;;AAiBA,SAAS,YAAY,OAAc;AAClC,SACC,OAAQ,MAA2B,cAAc,cACjD,iBAAiBA,MAAAA;AAEnB;AAUgB,SAAA,OACf,OACA,OAAQ;AAEJ,MAAA,YAAY,KAAK,GAAG;AACjB,UAAA,SAAS,MAAM,UAAU,KAAK;AAEpC,QAAI,OAAO,SAAS;AACZ,aAAA,EAAE,OAAO,OAAO;IACxB;AAEO,WAAA,EAAE,OAAO,IAAIC,YAAY,YAAA,EAAE,OAAO,QAAQ,OAAO,MAAM,OAAQ,CAAA;EACvE;AAEO,SAAAC,UAAAA,KACN,MAAM,OAAO,KAAK,GAClBC,OAAAA,MACC,CAAC,WAAU;AACH,WAAA;AAAA,MACN,OAAO,IAAIF,YAAA,YAAY,EAAE,OAAO,QAAQ;AAAA,IAAA;AAAA,EAE1C,GACA,CAAC,UAAS;AACF,WAAA;AAAA,MACN;AAAA,IAAA;AAAA,EAED,CAAA,CACD;AAEH;;"}
1
+ {"version":3,"file":"decode.cjs","sources":["../../../src/lib/decode.ts"],"sourcesContent":["import * as t from \"io-ts\";\nimport * as E from \"fp-ts/Either\";\nimport { pipe } from \"fp-ts/function\";\n\nimport { DecodeError } from \"./DecodeError\";\n\nexport type DecodeReturnType<A, _O, I> =\n\t| {\n\t\t\tvalue: A;\n\t\t\terror?: never;\n\t }\n\t| {\n\t\t\tvalue?: never;\n\t\t\terror: DecodeError<I>;\n\t };\n\nexport const decode = <A, O, I>(\n\tcodec: t.Type<A, O, I>,\n\tinput: I,\n): DecodeReturnType<A, O, I> => {\n\treturn pipe(\n\t\tcodec.decode(input),\n\t\tE.foldW(\n\t\t\t(errors) => {\n\t\t\t\treturn {\n\t\t\t\t\terror: new DecodeError({ input, errors }),\n\t\t\t\t};\n\t\t\t},\n\t\t\t(value) => {\n\t\t\t\treturn {\n\t\t\t\t\tvalue,\n\t\t\t\t};\n\t\t\t},\n\t\t),\n\t);\n};\n"],"names":["pipe","E.foldW","DecodeError"],"mappings":";;;;;AAgBa,MAAA,SAAS,CACrB,OACA,UAC8B;AACvB,SAAAA,UAAAA,KACN,MAAM,OAAO,KAAK,GAClBC,OAAAA,MACC,CAAC,WAAU;AACH,WAAA;AAAA,MACN,OAAO,IAAIC,YAAA,YAAY,EAAE,OAAO,QAAQ;AAAA,IAAA;AAAA,EAE1C,GACA,CAAC,UAAS;AACF,WAAA;AAAA,MACN;AAAA,IAAA;AAAA,EAED,CAAA,CACD;AAEH;;"}
@@ -1,5 +1,4 @@
1
1
  import * as t from "io-ts";
2
- import { ZodType, ZodTypeDef } from "zod";
3
2
  import { DecodeError } from "./DecodeError";
4
3
  export type DecodeReturnType<A, _O, I> = {
5
4
  value: A;
@@ -8,5 +7,4 @@ export type DecodeReturnType<A, _O, I> = {
8
7
  value?: never;
9
8
  error: DecodeError<I>;
10
9
  };
11
- export declare function decode<A, O, I>(codec: ZodType<A, ZodTypeDef, unknown>, input: I): DecodeReturnType<A, O, I>;
12
- export declare function decode<A, O, I>(codec: t.Type<A, O, I> | ZodType<A, ZodTypeDef, unknown>, input: I): DecodeReturnType<A, O, I>;
10
+ export declare const decode: <A, O, I>(codec: t.Type<A, O, I>, input: I) => DecodeReturnType<A, O, I>;
@@ -1,18 +1,7 @@
1
- import { Schema as ZodType } from './../_node_modules/zod/lib/index.js';
2
1
  import { foldW } from './../_node_modules/fp-ts/es6/Either.js';
3
2
  import { pipe } from './../_node_modules/fp-ts/es6/function.js';
4
3
  import { DecodeError } from "./DecodeError.js";
5
- function isZodSchema(value) {
6
- return typeof value.safeParse === "function" && value instanceof ZodType;
7
- }
8
- function decode(codec, input) {
9
- if (isZodSchema(codec)) {
10
- const parsed = codec.safeParse(input);
11
- if (parsed.success) {
12
- return { value: parsed.data };
13
- }
14
- return { error: new DecodeError({ input, errors: parsed.error.errors }) };
15
- }
4
+ const decode = (codec, input) => {
16
5
  return pipe(codec.decode(input), foldW((errors) => {
17
6
  return {
18
7
  error: new DecodeError({ input, errors })
@@ -22,7 +11,7 @@ function decode(codec, input) {
22
11
  value
23
12
  };
24
13
  }));
25
- }
14
+ };
26
15
  export {
27
16
  decode
28
17
  };
@@ -1 +1 @@
1
- {"version":3,"file":"decode.js","sources":["../../../src/lib/decode.ts"],"sourcesContent":["import * as t from \"io-ts\";\nimport { ZodType, ZodTypeDef } from \"zod\";\nimport * as E from \"fp-ts/Either\";\nimport { pipe } from \"fp-ts/function\";\n\nimport { DecodeError } from \"./DecodeError\";\n\nexport type DecodeReturnType<A, _O, I> =\n\t| {\n\t\t\tvalue: A;\n\t\t\terror?: never;\n\t }\n\t| {\n\t\t\tvalue?: never;\n\t\t\terror: DecodeError<I>;\n\t };\n\nfunction isZodSchema(value: unknown): value is ZodType<unknown> {\n\treturn (\n\t\ttypeof (value as ZodType<unknown>).safeParse === \"function\" &&\n\t\tvalue instanceof ZodType\n\t);\n}\n\nexport function decode<A, O, I>(\n\tcodec: ZodType<A, ZodTypeDef, unknown>,\n\tinput: I,\n): DecodeReturnType<A, O, I>;\nexport function decode<A, O, I>(\n\tcodec: t.Type<A, O, I> | ZodType<A, ZodTypeDef, unknown>,\n\tinput: I,\n): DecodeReturnType<A, O, I>;\nexport function decode<A, O, I>(\n\tcodec: t.Type<A, O, I> | ZodType<A, ZodTypeDef, unknown>,\n\tinput: I,\n): DecodeReturnType<A, O, I> {\n\tif (isZodSchema(codec)) {\n\t\tconst parsed = codec.safeParse(input);\n\n\t\tif (parsed.success) {\n\t\t\treturn { value: parsed.data };\n\t\t}\n\n\t\treturn { error: new DecodeError({ input, errors: parsed.error.errors }) };\n\t}\n\n\treturn pipe(\n\t\tcodec.decode(input),\n\t\tE.foldW(\n\t\t\t(errors) => {\n\t\t\t\treturn {\n\t\t\t\t\terror: new DecodeError({ input, errors }),\n\t\t\t\t};\n\t\t\t},\n\t\t\t(value) => {\n\t\t\t\treturn {\n\t\t\t\t\tvalue,\n\t\t\t\t};\n\t\t\t},\n\t\t),\n\t);\n}\n"],"names":["E.foldW"],"mappings":";;;;AAiBA,SAAS,YAAY,OAAc;AAClC,SACC,OAAQ,MAA2B,cAAc,cACjD,iBAAiB;AAEnB;AAUgB,SAAA,OACf,OACA,OAAQ;AAEJ,MAAA,YAAY,KAAK,GAAG;AACjB,UAAA,SAAS,MAAM,UAAU,KAAK;AAEpC,QAAI,OAAO,SAAS;AACZ,aAAA,EAAE,OAAO,OAAO;IACxB;AAEO,WAAA,EAAE,OAAO,IAAI,YAAY,EAAE,OAAO,QAAQ,OAAO,MAAM,OAAQ,CAAA;EACvE;AAEO,SAAA,KACN,MAAM,OAAO,KAAK,GAClBA,MACC,CAAC,WAAU;AACH,WAAA;AAAA,MACN,OAAO,IAAI,YAAY,EAAE,OAAO,QAAQ;AAAA,IAAA;AAAA,EAE1C,GACA,CAAC,UAAS;AACF,WAAA;AAAA,MACN;AAAA,IAAA;AAAA,EAED,CAAA,CACD;AAEH;"}
1
+ {"version":3,"file":"decode.js","sources":["../../../src/lib/decode.ts"],"sourcesContent":["import * as t from \"io-ts\";\nimport * as E from \"fp-ts/Either\";\nimport { pipe } from \"fp-ts/function\";\n\nimport { DecodeError } from \"./DecodeError\";\n\nexport type DecodeReturnType<A, _O, I> =\n\t| {\n\t\t\tvalue: A;\n\t\t\terror?: never;\n\t }\n\t| {\n\t\t\tvalue?: never;\n\t\t\terror: DecodeError<I>;\n\t };\n\nexport const decode = <A, O, I>(\n\tcodec: t.Type<A, O, I>,\n\tinput: I,\n): DecodeReturnType<A, O, I> => {\n\treturn pipe(\n\t\tcodec.decode(input),\n\t\tE.foldW(\n\t\t\t(errors) => {\n\t\t\t\treturn {\n\t\t\t\t\terror: new DecodeError({ input, errors }),\n\t\t\t\t};\n\t\t\t},\n\t\t\t(value) => {\n\t\t\t\treturn {\n\t\t\t\t\tvalue,\n\t\t\t\t};\n\t\t\t},\n\t\t),\n\t);\n};\n"],"names":["E.foldW"],"mappings":";;;AAgBa,MAAA,SAAS,CACrB,OACA,UAC8B;AACvB,SAAA,KACN,MAAM,OAAO,KAAK,GAClBA,MACC,CAAC,WAAU;AACH,WAAA;AAAA,MACN,OAAO,IAAI,YAAY,EAAE,OAAO,QAAQ;AAAA,IAAA;AAAA,EAE1C,GACA,CAAC,UAAS;AACF,WAAA;AAAA,MACN;AAAA,IAAA;AAAA,EAED,CAAA,CACD;AAEH;"}
@@ -1,7 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
3
  const t = require("io-ts");
4
- const index = require('./../../_node_modules/zod/lib/index.cjs');
5
4
  const fetch = require("../../lib/fetch.cjs");
6
5
  const Either = require('./../../_node_modules/fp-ts/es6/Either.cjs');
7
6
  const assertPluginsInitialized = require("../../lib/assertPluginsInitialized.cjs");
@@ -351,81 +350,6 @@ class PrismicRepositoryManager extends BaseManager.BaseManager {
351
350
  throw new Error("Failed to fetch environments.");
352
351
  }
353
352
  }
354
- async fetchOnboarding() {
355
- const repositoryName = await this.project.getRepositoryName();
356
- const url = new URL("/onboarding", API_ENDPOINTS.API_ENDPOINTS.RepositoryService);
357
- url.searchParams.set("repository", repositoryName);
358
- const res = await this._fetch({ url });
359
- if (res.ok) {
360
- const json = await res.json();
361
- const { value, error } = decode.decode(types.OnboardingState, json);
362
- if (error) {
363
- throw new errors.UnexpectedDataError(`Failed to decode onboarding: ${error.errors.join(", ")}`);
364
- }
365
- if (value) {
366
- return value;
367
- }
368
- }
369
- switch (res.status) {
370
- case 400:
371
- case 401:
372
- throw new errors.UnauthenticatedError();
373
- case 403:
374
- throw new errors.UnauthorizedError();
375
- default:
376
- throw new Error("Failed to fetch onboarding.");
377
- }
378
- }
379
- async toggleOnboardingStep(stepId) {
380
- const repositoryName = await this.project.getRepositoryName();
381
- const url = new URL(`/onboarding/${stepId}/toggle`, API_ENDPOINTS.API_ENDPOINTS.RepositoryService);
382
- url.searchParams.set("repository", repositoryName);
383
- const res = await this._fetch({ url, method: "PATCH" });
384
- if (res.ok) {
385
- const json = await res.json();
386
- const { value, error } = decode.decode(index.default.object({ completedSteps: index.default.array(index.default.string()) }), json);
387
- if (error) {
388
- throw new errors.UnexpectedDataError(`Failed to decode onboarding step toggle: ${error.errors.join(", ")}`);
389
- }
390
- if (value) {
391
- return value;
392
- }
393
- }
394
- switch (res.status) {
395
- case 400:
396
- case 401:
397
- throw new errors.UnauthenticatedError();
398
- case 403:
399
- throw new errors.UnauthorizedError();
400
- default:
401
- throw new Error("Failed to toggle onboarding step.");
402
- }
403
- }
404
- async toggleOnboarding() {
405
- const repositoryName = await this.project.getRepositoryName();
406
- const url = new URL("/onboarding/toggle", API_ENDPOINTS.API_ENDPOINTS.RepositoryService);
407
- url.searchParams.set("repository", repositoryName);
408
- const res = await this._fetch({ url, method: "PATCH" });
409
- if (res.ok) {
410
- const json = await res.json();
411
- const { value, error } = decode.decode(index.default.object({ isDismissed: index.default.boolean() }), json);
412
- if (error) {
413
- throw new errors.UnexpectedDataError(`Failed to decode onboarding toggle: ${error.errors.join(", ")}`);
414
- }
415
- if (value) {
416
- return value;
417
- }
418
- }
419
- switch (res.status) {
420
- case 400:
421
- case 401:
422
- throw new errors.UnauthenticatedError();
423
- case 403:
424
- throw new errors.UnauthorizedError();
425
- default:
426
- throw new Error("Failed to toggle onboarding guide.");
427
- }
428
- }
429
353
  _decodeLimitOrThrow(potentialLimit, statusCode, limitType) {
430
354
  return Either.fold(() => {
431
355
  const error = {
@@ -1 +1 @@
1
- {"version":3,"file":"PrismicRepositoryManager.cjs","sources":["../../../../src/managers/prismicRepository/PrismicRepositoryManager.ts"],"sourcesContent":["import * as t from \"io-ts\";\nimport { z } from \"zod\";\nimport fetch, { Response } from \"../../lib/fetch\";\nimport { fold } from \"fp-ts/Either\";\n\nimport { assertPluginsInitialized } from \"../../lib/assertPluginsInitialized\";\nimport { decode } from \"../../lib/decode\";\nimport { serializeCookies } from \"../../lib/serializeCookies\";\n\nimport { SLICE_MACHINE_USER_AGENT } from \"../../constants/SLICE_MACHINE_USER_AGENT\";\nimport { API_ENDPOINTS } from \"../../constants/API_ENDPOINTS\";\nimport { REPOSITORY_NAME_VALIDATION } from \"../../constants/REPOSITORY_NAME_VALIDATION\";\n\nimport {\n\tUnauthenticatedError,\n\tUnauthorizedError,\n\tUnexpectedDataError,\n} from \"../../errors\";\n\nimport { BaseManager } from \"../BaseManager\";\n\nimport {\n\tAllChangeTypes,\n\tBulkBody,\n\tChangeTypes,\n\tClientError,\n\tPushChangesLimit,\n\tPushChangesLimitType,\n\tPrismicRepository,\n\tPrismicRepositoryRole,\n\tPrismicRepositoryUserAgent,\n\tPrismicRepositoryUserAgents,\n\tPushChangesRawLimit,\n\tTransactionalMergeArgs,\n\tTransactionalMergeReturnType,\n\tFrameworkWroomTelemetryID,\n\tStarterId,\n\tEnvironment,\n\tOnboardingState,\n} from \"./types\";\nimport { sortEnvironments } from \"./sortEnvironments\";\n\nconst DEFAULT_REPOSITORY_SETTINGS = {\n\tplan: \"personal\",\n\tisAnnual: \"false\",\n\trole: \"developer\",\n};\n\ntype PrismicRepositoryManagerCheckExistsArgs = {\n\tdomain: string;\n};\n\ntype PrismicRepositoryManagerCreateArgs = {\n\tdomain: string;\n\tframework: FrameworkWroomTelemetryID;\n\tstarterId?: StarterId;\n};\n\ntype PrismicRepositoryManagerDeleteArgs = {\n\tdomain: string;\n\tpassword: string;\n};\n\ntype PrismicRepositoryManagerPushDocumentsArgs = {\n\tdomain: string;\n\tsignature: string;\n\tdocuments: Record<string, unknown>; // TODO: Type unknown if possible(?)\n};\n\ntype PrismicRepositoryManagerFetchEnvironmentsArgs = {\n\t/**\n\t * If set to `true`, all environments are returned regardless of the user's\n\t * permission level.\n\t *\n\t * If set to `false`, only environments the user can access are returned.\n\t *\n\t * @defaultValue `false`\n\t */\n\tincludeAll?: boolean;\n};\n\ntype PrismicRepositoryManagerFetchEnvironmentsReturnType = {\n\tenvironments?: Environment[];\n};\n\nexport class PrismicRepositoryManager extends BaseManager {\n\t// TODO: Add methods for repository-specific actions. E.g. creating a\n\t// new repository.\n\n\tasync readAll(): Promise<PrismicRepository[]> {\n\t\tconst url = new URL(\"./repositories\", API_ENDPOINTS.PrismicUser);\n\t\tconst res = await this._fetch({ url });\n\n\t\tif (res.ok) {\n\t\t\tconst json = await res.json();\n\t\t\tconst { value: repositories, error } = decode(\n\t\t\t\tt.array(PrismicRepository),\n\t\t\t\tjson,\n\t\t\t);\n\n\t\t\tif (error) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t`Failed to decode repositories: ${error.errors.join(\", \")}`,\n\t\t\t\t);\n\t\t\t}\n\n\t\t\treturn repositories;\n\t\t} else {\n\t\t\tconst text = await res.text();\n\t\t\tthrow new Error(`Failed to read repositories`, { cause: text });\n\t\t}\n\t}\n\n\t// Should this be in manager? It's one of the few sync method\n\t//\n\t// Reply from Angelo 2022-12-22: I think it should be in manager\n\t// because we shouldn't be exporting root-level utilities from this\n\t// package. If we want to make it more inline with the other methods,\n\t// we could simplify the API by changing its signature to the\n\t// following:\n\t//\n\t// ```ts\n\t// (repositoryName: string) => Promise<boolean>\n\t// ```\n\t//\n\t// This method would:\n\t//\n\t// 1. Fetch the list of repositories for the user using `readAll()`.\n\t// The list would be cached.\n\t// 2. Determine if the user has write access to the given repository.\n\t//\n\t// This version has the following benefits:\n\t//\n\t// - Does not expect the consumer to supply a repository object; it\n\t// only requires a repository name, which could be sourced from\n\t// anything (incl. the project's `slicemachine.config.json`).\n\t//\n\t// - Similarly, it does not expect the consumer to call `readAll()`\n\t// before calling this method.\n\t//\n\t// - Works for repositories that the user does not have access to. For\n\t// example, I could use it to check if I have access to \"qwerty\",\n\t// even if I am not added as a user. The purpose of the method is\n\t// still valid: do I have write access to a given repository?\n\thasWriteAccess(repository: PrismicRepository): boolean {\n\t\tswitch (repository.role) {\n\t\t\tcase PrismicRepositoryRole.SuperUser:\n\t\t\tcase PrismicRepositoryRole.Owner:\n\t\t\tcase PrismicRepositoryRole.Administrator:\n\t\t\t\treturn true;\n\n\t\t\tdefault:\n\t\t\t\treturn false;\n\t\t}\n\t}\n\n\tasync checkExists(\n\t\targs: PrismicRepositoryManagerCheckExistsArgs,\n\t): Promise<boolean> {\n\t\tconst url = new URL(\n\t\t\t`./app/dashboard/repositories/${args.domain}/exists`,\n\t\t\tAPI_ENDPOINTS.PrismicWroom,\n\t\t);\n\t\tconst res = await this._fetch({\n\t\t\turl,\n\t\t\tskipAuthentication: true,\n\t\t});\n\n\t\tconst text = await res.text();\n\n\t\tif (res.ok) {\n\t\t\treturn text === \"false\"; // Endpoint returns `false` when repository exists\n\t\t} else {\n\t\t\tthrow new Error(\n\t\t\t\t`Failed to check repository existence for domain \\`${args.domain}\\``,\n\t\t\t\t{ cause: text },\n\t\t\t);\n\t\t}\n\t}\n\n\tasync create(args: PrismicRepositoryManagerCreateArgs): Promise<void> {\n\t\tconst url = new URL(\n\t\t\t\"./authentication/newrepository?app=slicemachine\",\n\t\t\tAPI_ENDPOINTS.PrismicWroom,\n\t\t);\n\n\t\tconst body = {\n\t\t\t...DEFAULT_REPOSITORY_SETTINGS,\n\t\t\tdomain: args.domain,\n\t\t\t// These properties are optional in the API but needed for tracking\n\t\t\tframework: args.framework,\n\t\t\tstarterId: args.starterId,\n\t\t};\n\n\t\tconst res = await this._fetch({\n\t\t\turl,\n\t\t\tmethod: \"POST\",\n\t\t\tbody,\n\t\t\tuserAgent: PrismicRepositoryUserAgent.SliceMachine, // Custom User Agent is required\n\t\t});\n\t\tconst text = await res.text();\n\n\t\t// Endpoint returns repository name on success, that should be within the validation range\n\t\t// Even when there is an error, we get a 200 success and so we have to check the name thanks to that\n\t\tif (\n\t\t\t!res.ok ||\n\t\t\ttext.length < REPOSITORY_NAME_VALIDATION.Min ||\n\t\t\ttext.length > REPOSITORY_NAME_VALIDATION.Max\n\t\t) {\n\t\t\tthrow new Error(`Failed to create repository \\`${args.domain}\\``, {\n\t\t\t\tcause: text,\n\t\t\t});\n\t\t}\n\t}\n\n\t// TODO: Delete this endpoint? It doesn't seem to be used (I might be wrong). - Angelo\n\tasync delete(args: PrismicRepositoryManagerDeleteArgs): Promise<void> {\n\t\tconst cookies = await this.user.getAuthenticationCookies();\n\n\t\tconst url = new URL(\n\t\t\t`./app/settings/delete?_=${cookies[\"X_XSRF\"]}`, // TODO: Maybe we want to throw early if the token is no available, or get the token another way\n\t\t\tAPI_ENDPOINTS.PrismicWroom,\n\t\t);\n\t\t// Update hostname to include repository domain\n\t\turl.hostname = `${args.domain}.${url.hostname}`;\n\n\t\tconst body = {\n\t\t\tconfirm: args.domain,\n\t\t\tpassword: args.password,\n\t\t};\n\n\t\tconst res = await this._fetch({\n\t\t\turl,\n\t\t\tmethod: \"POST\",\n\t\t\tbody,\n\t\t\tuserAgent: PrismicRepositoryUserAgent.LegacyZero, // Custom User Agent is required\n\t\t});\n\n\t\tif (!res.ok) {\n\t\t\tthrow new Error(`Failed to delete repository \\`${args.domain}\\``, {\n\t\t\t\tcause: res,\n\t\t\t});\n\t\t}\n\t}\n\n\tasync pushDocuments(\n\t\targs: PrismicRepositoryManagerPushDocumentsArgs,\n\t): Promise<void> {\n\t\tconst url = new URL(\"./starter/documents\", API_ENDPOINTS.PrismicWroom);\n\t\t// Update hostname to include repository domain\n\t\turl.hostname = `${args.domain}.${url.hostname}`;\n\n\t\tconst body = {\n\t\t\tsignature: args.signature,\n\t\t\tdocuments: JSON.stringify(args.documents),\n\t\t};\n\n\t\tconst res = await this._fetch({\n\t\t\turl,\n\t\t\tmethod: \"POST\",\n\t\t\tbody,\n\t\t\tuserAgent: PrismicRepositoryUserAgent.LegacyZero, // Custom User Agent is required\n\t\t});\n\n\t\tif (!res.ok) {\n\t\t\tlet reason: string | null = null;\n\t\t\ttry {\n\t\t\t\treason = await res.text();\n\t\t\t} catch {\n\t\t\t\t// Noop\n\t\t\t}\n\n\t\t\t// Ideally the API should throw a 409 or something like that...\n\t\t\tif (reason === \"Repository should not contain documents\") {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t`Failed to push documents to repository \\`${args.domain}\\`, repository is not empty`,\n\t\t\t\t\t{\n\t\t\t\t\t\tcause: reason,\n\t\t\t\t\t},\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tthrow new Error(\n\t\t\t\t`Failed to push documents to repository \\`${args.domain}\\`, ${res.status} ${res.statusText}`,\n\t\t\t\t{\n\t\t\t\t\tcause: reason,\n\t\t\t\t},\n\t\t\t);\n\t\t}\n\t}\n\n\tasync pushChanges(\n\t\targs: TransactionalMergeArgs,\n\t): Promise<TransactionalMergeReturnType> {\n\t\tassertPluginsInitialized(this.sliceMachinePluginRunner);\n\n\t\tif (!(await this.user.checkIsLoggedIn())) {\n\t\t\tthrow new UnauthenticatedError();\n\t\t}\n\n\t\ttry {\n\t\t\t// Update the AWS ACL before uploading screenshots as it might have expired\n\t\t\tawait this.screenshots.initS3ACL();\n\n\t\t\tconst allChanges: AllChangeTypes[] = await Promise.all(\n\t\t\t\targs.changes.map(async (change) => {\n\t\t\t\t\tif (change.type === \"Slice\") {\n\t\t\t\t\t\tswitch (change.status) {\n\t\t\t\t\t\t\tcase \"NEW\": {\n\t\t\t\t\t\t\t\tconst { model } = await this.slices.readSlice({\n\t\t\t\t\t\t\t\t\tlibraryID: change.libraryID,\n\t\t\t\t\t\t\t\t\tsliceID: change.id,\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\tthrow Error(`Could not find model ${change.id}`);\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\tconst modelWithScreenshots =\n\t\t\t\t\t\t\t\t\tawait this.slices.updateSliceModelScreenshotsInPlace({\n\t\t\t\t\t\t\t\t\t\tlibraryID: change.libraryID,\n\t\t\t\t\t\t\t\t\t\tmodel,\n\t\t\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\t\tid: change.id,\n\t\t\t\t\t\t\t\t\tpayload: modelWithScreenshots,\n\t\t\t\t\t\t\t\t\ttype: ChangeTypes.SLICE_INSERT,\n\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tcase \"MODIFIED\": {\n\t\t\t\t\t\t\t\tconst { model } = await this.slices.readSlice({\n\t\t\t\t\t\t\t\t\tlibraryID: change.libraryID,\n\t\t\t\t\t\t\t\t\tsliceID: change.id,\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\tthrow Error(`Could not find model ${change.id}`);\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\tconst modelWithScreenshots =\n\t\t\t\t\t\t\t\t\tawait this.slices.updateSliceModelScreenshotsInPlace({\n\t\t\t\t\t\t\t\t\t\tlibraryID: change.libraryID,\n\t\t\t\t\t\t\t\t\t\tmodel,\n\t\t\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\t\tid: change.id,\n\t\t\t\t\t\t\t\t\tpayload: modelWithScreenshots,\n\t\t\t\t\t\t\t\t\ttype: ChangeTypes.SLICE_UPDATE,\n\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tcase \"DELETED\":\n\t\t\t\t\t\t\t\tawait this.screenshots.deleteScreenshotFolder({\n\t\t\t\t\t\t\t\t\tsliceID: change.id,\n\t\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\t\tid: change.id,\n\t\t\t\t\t\t\t\t\tpayload: { id: change.id },\n\t\t\t\t\t\t\t\t\ttype: ChangeTypes.SLICE_DELETE,\n\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tswitch (change.status) {\n\t\t\t\t\t\t\tcase \"NEW\": {\n\t\t\t\t\t\t\t\tconst { model } = await this.customTypes.readCustomType({\n\t\t\t\t\t\t\t\t\tid: change.id,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\tif (!model) {\n\t\t\t\t\t\t\t\t\tthrow Error(`Could not find model ${change.id}`);\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\t\ttype: ChangeTypes.CUSTOM_TYPE_INSERT,\n\t\t\t\t\t\t\t\t\tid: change.id,\n\t\t\t\t\t\t\t\t\tpayload: model,\n\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tcase \"MODIFIED\": {\n\t\t\t\t\t\t\t\tconst { model } = await this.customTypes.readCustomType({\n\t\t\t\t\t\t\t\t\tid: change.id,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\tif (!model) {\n\t\t\t\t\t\t\t\t\tthrow Error(`Could not find model ${change.id}`);\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\t\ttype: ChangeTypes.CUSTOM_TYPE_UPDATE,\n\t\t\t\t\t\t\t\t\tid: change.id,\n\t\t\t\t\t\t\t\t\tpayload: model,\n\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tcase \"DELETED\":\n\t\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\t\tid: change.id,\n\t\t\t\t\t\t\t\t\tpayload: { id: change.id },\n\t\t\t\t\t\t\t\t\ttype: ChangeTypes.CUSTOM_TYPE_DELETE,\n\t\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\n\t\t\t// Compute the POST body\n\t\t\tconst requestBody: BulkBody = {\n\t\t\t\tconfirmDeleteDocuments: args.confirmDeleteDocuments,\n\t\t\t\tchanges: allChanges,\n\t\t\t};\n\n\t\t\tconst repositoryName = await this.project.getResolvedRepositoryName();\n\n\t\t\t// TODO: move to customtypes client\n\t\t\tconst response = await this._fetch({\n\t\t\t\turl: new URL(\"./bulk\", API_ENDPOINTS.PrismicModels),\n\t\t\t\tmethod: \"POST\",\n\t\t\t\tbody: requestBody,\n\t\t\t\trepository: repositoryName,\n\t\t\t});\n\n\t\t\tswitch (response.status) {\n\t\t\t\tcase 202:\n\t\t\t\t\treturn this._decodeLimitOrThrow(\n\t\t\t\t\t\tawait response.json(),\n\t\t\t\t\t\tresponse.status,\n\t\t\t\t\t\tPushChangesLimitType.SOFT,\n\t\t\t\t\t);\n\t\t\t\tcase 204:\n\t\t\t\t\treturn null;\n\t\t\t\tcase 401:\n\t\t\t\t\tthrow new UnauthenticatedError();\n\t\t\t\tcase 403:\n\t\t\t\t\treturn this._decodeLimitOrThrow(\n\t\t\t\t\t\tawait response.json(),\n\t\t\t\t\t\tresponse.status,\n\t\t\t\t\t\tPushChangesLimitType.HARD,\n\t\t\t\t\t);\n\t\t\t\tcase 400:\n\t\t\t\t\tconst text = await response.text();\n\t\t\t\t\tthrow new Error(text);\n\t\t\t\tdefault:\n\t\t\t\t\tthrow new Error(`Unexpected status code ${response.status}`, {\n\t\t\t\t\t\tcause: await response.text(),\n\t\t\t\t\t});\n\t\t\t}\n\t\t} catch (err) {\n\t\t\tconsole.error(\"An error happened while pushing your changes\");\n\t\t\tconsole.error(err);\n\n\t\t\tthrow err;\n\t\t}\n\t}\n\n\tasync fetchEnvironments(\n\t\targs?: PrismicRepositoryManagerFetchEnvironmentsArgs,\n\t): Promise<PrismicRepositoryManagerFetchEnvironmentsReturnType> {\n\t\tconst repositoryName = await this.project.getRepositoryName();\n\n\t\tconst url = new URL(`./environments`, API_ENDPOINTS.SliceMachineV1);\n\t\turl.searchParams.set(\"repository\", repositoryName);\n\n\t\tconst res = await this._fetch({ url });\n\n\t\tif (res.ok) {\n\t\t\tconst json = await res.json();\n\n\t\t\tconst { value, error } = decode(\n\t\t\t\tt.union([\n\t\t\t\t\tt.type({\n\t\t\t\t\t\tresults: t.array(Environment),\n\t\t\t\t\t}),\n\t\t\t\t\tt.type({\n\t\t\t\t\t\terror: t.literal(\"invalid_token\"),\n\t\t\t\t\t}),\n\t\t\t\t]),\n\t\t\t\tjson,\n\t\t\t);\n\n\t\t\tif (error) {\n\t\t\t\tthrow new UnexpectedDataError(\n\t\t\t\t\t`Failed to decode environments: ${error.errors.join(\", \")}`,\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tif (\"results\" in value) {\n\t\t\t\tlet environments = value.results;\n\n\t\t\t\tif (!args?.includeAll) {\n\t\t\t\t\tconst profile = await this.user.getProfile();\n\n\t\t\t\t\tenvironments = environments.filter((environment) =>\n\t\t\t\t\t\tenvironment.users.some((user) => user.id === profile.shortId),\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\treturn { environments: sortEnvironments(environments) };\n\t\t\t}\n\t\t}\n\n\t\tswitch (res.status) {\n\t\t\tcase 400:\n\t\t\tcase 401:\n\t\t\t\tthrow new UnauthenticatedError();\n\t\t\tcase 403:\n\t\t\t\tthrow new UnauthorizedError();\n\t\t\tdefault:\n\t\t\t\tthrow new Error(\"Failed to fetch environments.\");\n\t\t}\n\t}\n\n\tasync fetchOnboarding(): Promise<OnboardingState> {\n\t\tconst repositoryName = await this.project.getRepositoryName();\n\n\t\tconst url = new URL(\"/onboarding\", API_ENDPOINTS.RepositoryService);\n\t\turl.searchParams.set(\"repository\", repositoryName);\n\t\tconst res = await this._fetch({ url });\n\n\t\tif (res.ok) {\n\t\t\tconst json = await res.json();\n\t\t\tconst { value, error } = decode(OnboardingState, json);\n\n\t\t\tif (error) {\n\t\t\t\tthrow new UnexpectedDataError(\n\t\t\t\t\t`Failed to decode onboarding: ${error.errors.join(\", \")}`,\n\t\t\t\t);\n\t\t\t}\n\t\t\tif (value) {\n\t\t\t\treturn value;\n\t\t\t}\n\t\t}\n\n\t\tswitch (res.status) {\n\t\t\tcase 400:\n\t\t\tcase 401:\n\t\t\t\tthrow new UnauthenticatedError();\n\t\t\tcase 403:\n\t\t\t\tthrow new UnauthorizedError();\n\t\t\tdefault:\n\t\t\t\tthrow new Error(\"Failed to fetch onboarding.\");\n\t\t}\n\t}\n\n\tasync toggleOnboardingStep(\n\t\tstepId: string,\n\t): Promise<{ completedSteps: string[] }> {\n\t\tconst repositoryName = await this.project.getRepositoryName();\n\n\t\tconst url = new URL(\n\t\t\t`/onboarding/${stepId}/toggle`,\n\t\t\tAPI_ENDPOINTS.RepositoryService,\n\t\t);\n\t\turl.searchParams.set(\"repository\", repositoryName);\n\t\tconst res = await this._fetch({ url, method: \"PATCH\" });\n\n\t\tif (res.ok) {\n\t\t\tconst json = await res.json();\n\t\t\tconst { value, error } = decode(\n\t\t\t\tz.object({ completedSteps: z.array(z.string()) }),\n\t\t\t\tjson,\n\t\t\t);\n\n\t\t\tif (error) {\n\t\t\t\tthrow new UnexpectedDataError(\n\t\t\t\t\t`Failed to decode onboarding step toggle: ${error.errors.join(\", \")}`,\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tif (value) {\n\t\t\t\treturn value;\n\t\t\t}\n\t\t}\n\n\t\tswitch (res.status) {\n\t\t\tcase 400:\n\t\t\tcase 401:\n\t\t\t\tthrow new UnauthenticatedError();\n\t\t\tcase 403:\n\t\t\t\tthrow new UnauthorizedError();\n\t\t\tdefault:\n\t\t\t\tthrow new Error(\"Failed to toggle onboarding step.\");\n\t\t}\n\t}\n\n\tasync toggleOnboarding(): Promise<{ isDismissed: boolean }> {\n\t\tconst repositoryName = await this.project.getRepositoryName();\n\n\t\tconst url = new URL(\"/onboarding/toggle\", API_ENDPOINTS.RepositoryService);\n\t\turl.searchParams.set(\"repository\", repositoryName);\n\t\tconst res = await this._fetch({ url, method: \"PATCH\" });\n\n\t\tif (res.ok) {\n\t\t\tconst json = await res.json();\n\t\t\tconst { value, error } = decode(\n\t\t\t\tz.object({ isDismissed: z.boolean() }),\n\t\t\t\tjson,\n\t\t\t);\n\n\t\t\tif (error) {\n\t\t\t\tthrow new UnexpectedDataError(\n\t\t\t\t\t`Failed to decode onboarding toggle: ${error.errors.join(\", \")}`,\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tif (value) {\n\t\t\t\treturn value;\n\t\t\t}\n\t\t}\n\n\t\tswitch (res.status) {\n\t\t\tcase 400:\n\t\t\tcase 401:\n\t\t\t\tthrow new UnauthenticatedError();\n\t\t\tcase 403:\n\t\t\t\tthrow new UnauthorizedError();\n\t\t\tdefault:\n\t\t\t\tthrow new Error(\"Failed to toggle onboarding guide.\");\n\t\t}\n\t}\n\n\tprivate _decodeLimitOrThrow(\n\t\tpotentialLimit: unknown,\n\t\tstatusCode: number,\n\t\tlimitType: PushChangesLimitType,\n\t): PushChangesLimit | null {\n\t\treturn fold<t.Errors, PushChangesRawLimit, PushChangesLimit | null>(\n\t\t\t() => {\n\t\t\t\tconst error: ClientError = {\n\t\t\t\t\tstatus: statusCode,\n\t\t\t\t\tmessage: `Unable to parse raw limit from ${JSON.stringify(\n\t\t\t\t\t\tpotentialLimit,\n\t\t\t\t\t)}`,\n\t\t\t\t};\n\t\t\t\tthrow error;\n\t\t\t},\n\t\t\t(rawLimit: PushChangesRawLimit) => {\n\t\t\t\tconst limit = { ...rawLimit, type: limitType };\n\n\t\t\t\treturn limit;\n\t\t\t},\n\t\t)(PushChangesRawLimit.decode(potentialLimit));\n\t}\n\n\tprivate async _fetch(args: {\n\t\turl: URL;\n\t\tmethod?: \"GET\" | \"POST\" | \"PATCH\";\n\t\tbody?: unknown;\n\t\tuserAgent?: PrismicRepositoryUserAgents;\n\t\trepository?: string;\n\t\tskipAuthentication?: boolean;\n\t}): Promise<Response> {\n\t\tlet cookies;\n\t\ttry {\n\t\t\tcookies = await this.user.getAuthenticationCookies();\n\t\t} catch (e) {\n\t\t\tif (!args.skipAuthentication) {\n\t\t\t\tthrow e;\n\t\t\t}\n\t\t}\n\n\t\tconst extraHeaders: Record<string, string> = {};\n\n\t\tif (args.body) {\n\t\t\textraHeaders[\"Content-Type\"] = \"application/json\";\n\t\t}\n\n\t\tif (args.repository) {\n\t\t\textraHeaders.repository = args.repository;\n\t\t}\n\n\t\treturn await fetch(args.url.toString(), {\n\t\t\tmethod: args.method,\n\t\t\tbody: args.body ? JSON.stringify(args.body) : undefined,\n\t\t\theaders: {\n\t\t\t\t// Some endpoints rely on the authorization header...\n\n\t\t\t\t...(cookies !== undefined\n\t\t\t\t\t? {\n\t\t\t\t\t\t\tAuthorization: `Bearer ${cookies[\"prismic-auth\"]}`,\n\t\t\t\t\t\t\tCookie: serializeCookies(cookies),\n\t\t\t\t\t }\n\t\t\t\t\t: {}),\n\t\t\t\t\"User-Agent\": args.userAgent || SLICE_MACHINE_USER_AGENT,\n\t\t\t\t...extraHeaders,\n\t\t\t},\n\t\t});\n\t}\n}\n"],"names":["BaseManager","API_ENDPOINTS","decode","t","PrismicRepository","PrismicRepositoryRole","PrismicRepositoryUserAgent","REPOSITORY_NAME_VALIDATION","assertPluginsInitialized","UnauthenticatedError","ChangeTypes","PushChangesLimitType","Environment","UnexpectedDataError","sortEnvironments","UnauthorizedError","OnboardingState","z","fold","PushChangesRawLimit","fetch","serializeCookies","SLICE_MACHINE_USER_AGENT"],"mappings":"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"}
1
+ {"version":3,"file":"PrismicRepositoryManager.cjs","sources":["../../../../src/managers/prismicRepository/PrismicRepositoryManager.ts"],"sourcesContent":["import * as t from \"io-ts\";\nimport fetch, { Response } from \"../../lib/fetch\";\nimport { fold } from \"fp-ts/Either\";\n\nimport { assertPluginsInitialized } from \"../../lib/assertPluginsInitialized\";\nimport { decode } from \"../../lib/decode\";\nimport { serializeCookies } from \"../../lib/serializeCookies\";\n\nimport { SLICE_MACHINE_USER_AGENT } from \"../../constants/SLICE_MACHINE_USER_AGENT\";\nimport { API_ENDPOINTS } from \"../../constants/API_ENDPOINTS\";\nimport { REPOSITORY_NAME_VALIDATION } from \"../../constants/REPOSITORY_NAME_VALIDATION\";\n\nimport {\n\tUnauthenticatedError,\n\tUnauthorizedError,\n\tUnexpectedDataError,\n} from \"../../errors\";\n\nimport { BaseManager } from \"../BaseManager\";\n\nimport {\n\tAllChangeTypes,\n\tBulkBody,\n\tChangeTypes,\n\tClientError,\n\tPushChangesLimit,\n\tPushChangesLimitType,\n\tPrismicRepository,\n\tPrismicRepositoryRole,\n\tPrismicRepositoryUserAgent,\n\tPrismicRepositoryUserAgents,\n\tPushChangesRawLimit,\n\tTransactionalMergeArgs,\n\tTransactionalMergeReturnType,\n\tFrameworkWroomTelemetryID,\n\tStarterId,\n\tEnvironment,\n} from \"./types\";\nimport { sortEnvironments } from \"./sortEnvironments\";\n\nconst DEFAULT_REPOSITORY_SETTINGS = {\n\tplan: \"personal\",\n\tisAnnual: \"false\",\n\trole: \"developer\",\n};\n\ntype PrismicRepositoryManagerCheckExistsArgs = {\n\tdomain: string;\n};\n\ntype PrismicRepositoryManagerCreateArgs = {\n\tdomain: string;\n\tframework: FrameworkWroomTelemetryID;\n\tstarterId?: StarterId;\n};\n\ntype PrismicRepositoryManagerDeleteArgs = {\n\tdomain: string;\n\tpassword: string;\n};\n\ntype PrismicRepositoryManagerPushDocumentsArgs = {\n\tdomain: string;\n\tsignature: string;\n\tdocuments: Record<string, unknown>; // TODO: Type unknown if possible(?)\n};\n\ntype PrismicRepositoryManagerFetchEnvironmentsArgs = {\n\t/**\n\t * If set to `true`, all environments are returned regardless of the user's\n\t * permission level.\n\t *\n\t * If set to `false`, only environments the user can access are returned.\n\t *\n\t * @defaultValue `false`\n\t */\n\tincludeAll?: boolean;\n};\n\ntype PrismicRepositoryManagerFetchEnvironmentsReturnType = {\n\tenvironments?: Environment[];\n};\n\nexport class PrismicRepositoryManager extends BaseManager {\n\t// TODO: Add methods for repository-specific actions. E.g. creating a\n\t// new repository.\n\n\tasync readAll(): Promise<PrismicRepository[]> {\n\t\tconst url = new URL(\"./repositories\", API_ENDPOINTS.PrismicUser);\n\t\tconst res = await this._fetch({ url });\n\n\t\tif (res.ok) {\n\t\t\tconst json = await res.json();\n\t\t\tconst { value: repositories, error } = decode(\n\t\t\t\tt.array(PrismicRepository),\n\t\t\t\tjson,\n\t\t\t);\n\n\t\t\tif (error) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t`Failed to decode repositories: ${error.errors.join(\", \")}`,\n\t\t\t\t);\n\t\t\t}\n\n\t\t\treturn repositories;\n\t\t} else {\n\t\t\tconst text = await res.text();\n\t\t\tthrow new Error(`Failed to read repositories`, { cause: text });\n\t\t}\n\t}\n\n\t// Should this be in manager? It's one of the few sync method\n\t//\n\t// Reply from Angelo 2022-12-22: I think it should be in manager\n\t// because we shouldn't be exporting root-level utilities from this\n\t// package. If we want to make it more inline with the other methods,\n\t// we could simplify the API by changing its signature to the\n\t// following:\n\t//\n\t// ```ts\n\t// (repositoryName: string) => Promise<boolean>\n\t// ```\n\t//\n\t// This method would:\n\t//\n\t// 1. Fetch the list of repositories for the user using `readAll()`.\n\t// The list would be cached.\n\t// 2. Determine if the user has write access to the given repository.\n\t//\n\t// This version has the following benefits:\n\t//\n\t// - Does not expect the consumer to supply a repository object; it\n\t// only requires a repository name, which could be sourced from\n\t// anything (incl. the project's `slicemachine.config.json`).\n\t//\n\t// - Similarly, it does not expect the consumer to call `readAll()`\n\t// before calling this method.\n\t//\n\t// - Works for repositories that the user does not have access to. For\n\t// example, I could use it to check if I have access to \"qwerty\",\n\t// even if I am not added as a user. The purpose of the method is\n\t// still valid: do I have write access to a given repository?\n\thasWriteAccess(repository: PrismicRepository): boolean {\n\t\tswitch (repository.role) {\n\t\t\tcase PrismicRepositoryRole.SuperUser:\n\t\t\tcase PrismicRepositoryRole.Owner:\n\t\t\tcase PrismicRepositoryRole.Administrator:\n\t\t\t\treturn true;\n\n\t\t\tdefault:\n\t\t\t\treturn false;\n\t\t}\n\t}\n\n\tasync checkExists(\n\t\targs: PrismicRepositoryManagerCheckExistsArgs,\n\t): Promise<boolean> {\n\t\tconst url = new URL(\n\t\t\t`./app/dashboard/repositories/${args.domain}/exists`,\n\t\t\tAPI_ENDPOINTS.PrismicWroom,\n\t\t);\n\t\tconst res = await this._fetch({\n\t\t\turl,\n\t\t\tskipAuthentication: true,\n\t\t});\n\n\t\tconst text = await res.text();\n\n\t\tif (res.ok) {\n\t\t\treturn text === \"false\"; // Endpoint returns `false` when repository exists\n\t\t} else {\n\t\t\tthrow new Error(\n\t\t\t\t`Failed to check repository existence for domain \\`${args.domain}\\``,\n\t\t\t\t{ cause: text },\n\t\t\t);\n\t\t}\n\t}\n\n\tasync create(args: PrismicRepositoryManagerCreateArgs): Promise<void> {\n\t\tconst url = new URL(\n\t\t\t\"./authentication/newrepository?app=slicemachine\",\n\t\t\tAPI_ENDPOINTS.PrismicWroom,\n\t\t);\n\n\t\tconst body = {\n\t\t\t...DEFAULT_REPOSITORY_SETTINGS,\n\t\t\tdomain: args.domain,\n\t\t\t// These properties are optional in the API but needed for tracking\n\t\t\tframework: args.framework,\n\t\t\tstarterId: args.starterId,\n\t\t};\n\n\t\tconst res = await this._fetch({\n\t\t\turl,\n\t\t\tmethod: \"POST\",\n\t\t\tbody,\n\t\t\tuserAgent: PrismicRepositoryUserAgent.SliceMachine, // Custom User Agent is required\n\t\t});\n\t\tconst text = await res.text();\n\n\t\t// Endpoint returns repository name on success, that should be within the validation range\n\t\t// Even when there is an error, we get a 200 success and so we have to check the name thanks to that\n\t\tif (\n\t\t\t!res.ok ||\n\t\t\ttext.length < REPOSITORY_NAME_VALIDATION.Min ||\n\t\t\ttext.length > REPOSITORY_NAME_VALIDATION.Max\n\t\t) {\n\t\t\tthrow new Error(`Failed to create repository \\`${args.domain}\\``, {\n\t\t\t\tcause: text,\n\t\t\t});\n\t\t}\n\t}\n\n\t// TODO: Delete this endpoint? It doesn't seem to be used (I might be wrong). - Angelo\n\tasync delete(args: PrismicRepositoryManagerDeleteArgs): Promise<void> {\n\t\tconst cookies = await this.user.getAuthenticationCookies();\n\n\t\tconst url = new URL(\n\t\t\t`./app/settings/delete?_=${cookies[\"X_XSRF\"]}`, // TODO: Maybe we want to throw early if the token is no available, or get the token another way\n\t\t\tAPI_ENDPOINTS.PrismicWroom,\n\t\t);\n\t\t// Update hostname to include repository domain\n\t\turl.hostname = `${args.domain}.${url.hostname}`;\n\n\t\tconst body = {\n\t\t\tconfirm: args.domain,\n\t\t\tpassword: args.password,\n\t\t};\n\n\t\tconst res = await this._fetch({\n\t\t\turl,\n\t\t\tmethod: \"POST\",\n\t\t\tbody,\n\t\t\tuserAgent: PrismicRepositoryUserAgent.LegacyZero, // Custom User Agent is required\n\t\t});\n\n\t\tif (!res.ok) {\n\t\t\tthrow new Error(`Failed to delete repository \\`${args.domain}\\``, {\n\t\t\t\tcause: res,\n\t\t\t});\n\t\t}\n\t}\n\n\tasync pushDocuments(\n\t\targs: PrismicRepositoryManagerPushDocumentsArgs,\n\t): Promise<void> {\n\t\tconst url = new URL(\"./starter/documents\", API_ENDPOINTS.PrismicWroom);\n\t\t// Update hostname to include repository domain\n\t\turl.hostname = `${args.domain}.${url.hostname}`;\n\n\t\tconst body = {\n\t\t\tsignature: args.signature,\n\t\t\tdocuments: JSON.stringify(args.documents),\n\t\t};\n\n\t\tconst res = await this._fetch({\n\t\t\turl,\n\t\t\tmethod: \"POST\",\n\t\t\tbody,\n\t\t\tuserAgent: PrismicRepositoryUserAgent.LegacyZero, // Custom User Agent is required\n\t\t});\n\n\t\tif (!res.ok) {\n\t\t\tlet reason: string | null = null;\n\t\t\ttry {\n\t\t\t\treason = await res.text();\n\t\t\t} catch {\n\t\t\t\t// Noop\n\t\t\t}\n\n\t\t\t// Ideally the API should throw a 409 or something like that...\n\t\t\tif (reason === \"Repository should not contain documents\") {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t`Failed to push documents to repository \\`${args.domain}\\`, repository is not empty`,\n\t\t\t\t\t{\n\t\t\t\t\t\tcause: reason,\n\t\t\t\t\t},\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tthrow new Error(\n\t\t\t\t`Failed to push documents to repository \\`${args.domain}\\`, ${res.status} ${res.statusText}`,\n\t\t\t\t{\n\t\t\t\t\tcause: reason,\n\t\t\t\t},\n\t\t\t);\n\t\t}\n\t}\n\n\tasync pushChanges(\n\t\targs: TransactionalMergeArgs,\n\t): Promise<TransactionalMergeReturnType> {\n\t\tassertPluginsInitialized(this.sliceMachinePluginRunner);\n\n\t\tif (!(await this.user.checkIsLoggedIn())) {\n\t\t\tthrow new UnauthenticatedError();\n\t\t}\n\n\t\ttry {\n\t\t\t// Update the AWS ACL before uploading screenshots as it might have expired\n\t\t\tawait this.screenshots.initS3ACL();\n\n\t\t\tconst allChanges: AllChangeTypes[] = await Promise.all(\n\t\t\t\targs.changes.map(async (change) => {\n\t\t\t\t\tif (change.type === \"Slice\") {\n\t\t\t\t\t\tswitch (change.status) {\n\t\t\t\t\t\t\tcase \"NEW\": {\n\t\t\t\t\t\t\t\tconst { model } = await this.slices.readSlice({\n\t\t\t\t\t\t\t\t\tlibraryID: change.libraryID,\n\t\t\t\t\t\t\t\t\tsliceID: change.id,\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\tthrow Error(`Could not find model ${change.id}`);\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\tconst modelWithScreenshots =\n\t\t\t\t\t\t\t\t\tawait this.slices.updateSliceModelScreenshotsInPlace({\n\t\t\t\t\t\t\t\t\t\tlibraryID: change.libraryID,\n\t\t\t\t\t\t\t\t\t\tmodel,\n\t\t\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\t\tid: change.id,\n\t\t\t\t\t\t\t\t\tpayload: modelWithScreenshots,\n\t\t\t\t\t\t\t\t\ttype: ChangeTypes.SLICE_INSERT,\n\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tcase \"MODIFIED\": {\n\t\t\t\t\t\t\t\tconst { model } = await this.slices.readSlice({\n\t\t\t\t\t\t\t\t\tlibraryID: change.libraryID,\n\t\t\t\t\t\t\t\t\tsliceID: change.id,\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\tthrow Error(`Could not find model ${change.id}`);\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\tconst modelWithScreenshots =\n\t\t\t\t\t\t\t\t\tawait this.slices.updateSliceModelScreenshotsInPlace({\n\t\t\t\t\t\t\t\t\t\tlibraryID: change.libraryID,\n\t\t\t\t\t\t\t\t\t\tmodel,\n\t\t\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\t\tid: change.id,\n\t\t\t\t\t\t\t\t\tpayload: modelWithScreenshots,\n\t\t\t\t\t\t\t\t\ttype: ChangeTypes.SLICE_UPDATE,\n\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tcase \"DELETED\":\n\t\t\t\t\t\t\t\tawait this.screenshots.deleteScreenshotFolder({\n\t\t\t\t\t\t\t\t\tsliceID: change.id,\n\t\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\t\tid: change.id,\n\t\t\t\t\t\t\t\t\tpayload: { id: change.id },\n\t\t\t\t\t\t\t\t\ttype: ChangeTypes.SLICE_DELETE,\n\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tswitch (change.status) {\n\t\t\t\t\t\t\tcase \"NEW\": {\n\t\t\t\t\t\t\t\tconst { model } = await this.customTypes.readCustomType({\n\t\t\t\t\t\t\t\t\tid: change.id,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\tif (!model) {\n\t\t\t\t\t\t\t\t\tthrow Error(`Could not find model ${change.id}`);\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\t\ttype: ChangeTypes.CUSTOM_TYPE_INSERT,\n\t\t\t\t\t\t\t\t\tid: change.id,\n\t\t\t\t\t\t\t\t\tpayload: model,\n\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tcase \"MODIFIED\": {\n\t\t\t\t\t\t\t\tconst { model } = await this.customTypes.readCustomType({\n\t\t\t\t\t\t\t\t\tid: change.id,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\tif (!model) {\n\t\t\t\t\t\t\t\t\tthrow Error(`Could not find model ${change.id}`);\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\t\ttype: ChangeTypes.CUSTOM_TYPE_UPDATE,\n\t\t\t\t\t\t\t\t\tid: change.id,\n\t\t\t\t\t\t\t\t\tpayload: model,\n\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tcase \"DELETED\":\n\t\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\t\tid: change.id,\n\t\t\t\t\t\t\t\t\tpayload: { id: change.id },\n\t\t\t\t\t\t\t\t\ttype: ChangeTypes.CUSTOM_TYPE_DELETE,\n\t\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\n\t\t\t// Compute the POST body\n\t\t\tconst requestBody: BulkBody = {\n\t\t\t\tconfirmDeleteDocuments: args.confirmDeleteDocuments,\n\t\t\t\tchanges: allChanges,\n\t\t\t};\n\n\t\t\tconst repositoryName = await this.project.getResolvedRepositoryName();\n\n\t\t\t// TODO: move to customtypes client\n\t\t\tconst response = await this._fetch({\n\t\t\t\turl: new URL(\"./bulk\", API_ENDPOINTS.PrismicModels),\n\t\t\t\tmethod: \"POST\",\n\t\t\t\tbody: requestBody,\n\t\t\t\trepository: repositoryName,\n\t\t\t});\n\n\t\t\tswitch (response.status) {\n\t\t\t\tcase 202:\n\t\t\t\t\treturn this._decodeLimitOrThrow(\n\t\t\t\t\t\tawait response.json(),\n\t\t\t\t\t\tresponse.status,\n\t\t\t\t\t\tPushChangesLimitType.SOFT,\n\t\t\t\t\t);\n\t\t\t\tcase 204:\n\t\t\t\t\treturn null;\n\t\t\t\tcase 401:\n\t\t\t\t\tthrow new UnauthenticatedError();\n\t\t\t\tcase 403:\n\t\t\t\t\treturn this._decodeLimitOrThrow(\n\t\t\t\t\t\tawait response.json(),\n\t\t\t\t\t\tresponse.status,\n\t\t\t\t\t\tPushChangesLimitType.HARD,\n\t\t\t\t\t);\n\t\t\t\tcase 400:\n\t\t\t\t\tconst text = await response.text();\n\t\t\t\t\tthrow new Error(text);\n\t\t\t\tdefault:\n\t\t\t\t\tthrow new Error(`Unexpected status code ${response.status}`, {\n\t\t\t\t\t\tcause: await response.text(),\n\t\t\t\t\t});\n\t\t\t}\n\t\t} catch (err) {\n\t\t\tconsole.error(\"An error happened while pushing your changes\");\n\t\t\tconsole.error(err);\n\n\t\t\tthrow err;\n\t\t}\n\t}\n\n\tasync fetchEnvironments(\n\t\targs?: PrismicRepositoryManagerFetchEnvironmentsArgs,\n\t): Promise<PrismicRepositoryManagerFetchEnvironmentsReturnType> {\n\t\tconst repositoryName = await this.project.getRepositoryName();\n\n\t\tconst url = new URL(`./environments`, API_ENDPOINTS.SliceMachineV1);\n\t\turl.searchParams.set(\"repository\", repositoryName);\n\n\t\tconst res = await this._fetch({ url });\n\n\t\tif (res.ok) {\n\t\t\tconst json = await res.json();\n\n\t\t\tconst { value, error } = decode(\n\t\t\t\tt.union([\n\t\t\t\t\tt.type({\n\t\t\t\t\t\tresults: t.array(Environment),\n\t\t\t\t\t}),\n\t\t\t\t\tt.type({\n\t\t\t\t\t\terror: t.literal(\"invalid_token\"),\n\t\t\t\t\t}),\n\t\t\t\t]),\n\t\t\t\tjson,\n\t\t\t);\n\n\t\t\tif (error) {\n\t\t\t\tthrow new UnexpectedDataError(\n\t\t\t\t\t`Failed to decode environments: ${error.errors.join(\", \")}`,\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tif (\"results\" in value) {\n\t\t\t\tlet environments = value.results;\n\n\t\t\t\tif (!args?.includeAll) {\n\t\t\t\t\tconst profile = await this.user.getProfile();\n\n\t\t\t\t\tenvironments = environments.filter((environment) =>\n\t\t\t\t\t\tenvironment.users.some((user) => user.id === profile.shortId),\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\treturn { environments: sortEnvironments(environments) };\n\t\t\t}\n\t\t}\n\n\t\tswitch (res.status) {\n\t\t\tcase 400:\n\t\t\tcase 401:\n\t\t\t\tthrow new UnauthenticatedError();\n\t\t\tcase 403:\n\t\t\t\tthrow new UnauthorizedError();\n\t\t\tdefault:\n\t\t\t\tthrow new Error(\"Failed to fetch environments.\");\n\t\t}\n\t}\n\n\tprivate _decodeLimitOrThrow(\n\t\tpotentialLimit: unknown,\n\t\tstatusCode: number,\n\t\tlimitType: PushChangesLimitType,\n\t): PushChangesLimit | null {\n\t\treturn fold<t.Errors, PushChangesRawLimit, PushChangesLimit | null>(\n\t\t\t() => {\n\t\t\t\tconst error: ClientError = {\n\t\t\t\t\tstatus: statusCode,\n\t\t\t\t\tmessage: `Unable to parse raw limit from ${JSON.stringify(\n\t\t\t\t\t\tpotentialLimit,\n\t\t\t\t\t)}`,\n\t\t\t\t};\n\t\t\t\tthrow error;\n\t\t\t},\n\t\t\t(rawLimit: PushChangesRawLimit) => {\n\t\t\t\tconst limit = { ...rawLimit, type: limitType };\n\n\t\t\t\treturn limit;\n\t\t\t},\n\t\t)(PushChangesRawLimit.decode(potentialLimit));\n\t}\n\n\tprivate async _fetch(args: {\n\t\turl: URL;\n\t\tmethod?: \"GET\" | \"POST\";\n\t\tbody?: unknown;\n\t\tuserAgent?: PrismicRepositoryUserAgents;\n\t\trepository?: string;\n\t\tskipAuthentication?: boolean;\n\t}): Promise<Response> {\n\t\tlet cookies;\n\t\ttry {\n\t\t\tcookies = await this.user.getAuthenticationCookies();\n\t\t} catch (e) {\n\t\t\tif (!args.skipAuthentication) {\n\t\t\t\tthrow e;\n\t\t\t}\n\t\t}\n\n\t\tconst extraHeaders: Record<string, string> = {};\n\n\t\tif (args.body) {\n\t\t\textraHeaders[\"Content-Type\"] = \"application/json\";\n\t\t}\n\n\t\tif (args.repository) {\n\t\t\textraHeaders.repository = args.repository;\n\t\t}\n\n\t\treturn await fetch(args.url.toString(), {\n\t\t\tmethod: args.method,\n\t\t\tbody: args.body ? JSON.stringify(args.body) : undefined,\n\t\t\theaders: {\n\t\t\t\t// Some endpoints rely on the authorization header...\n\n\t\t\t\t...(cookies !== undefined\n\t\t\t\t\t? {\n\t\t\t\t\t\t\tAuthorization: `Bearer ${cookies[\"prismic-auth\"]}`,\n\t\t\t\t\t\t\tCookie: serializeCookies(cookies),\n\t\t\t\t\t }\n\t\t\t\t\t: {}),\n\t\t\t\t\"User-Agent\": args.userAgent || SLICE_MACHINE_USER_AGENT,\n\t\t\t\t...extraHeaders,\n\t\t\t},\n\t\t});\n\t}\n}\n"],"names":["BaseManager","API_ENDPOINTS","decode","t","PrismicRepository","PrismicRepositoryRole","PrismicRepositoryUserAgent","REPOSITORY_NAME_VALIDATION","assertPluginsInitialized","UnauthenticatedError","ChangeTypes","PushChangesLimitType","Environment","UnexpectedDataError","sortEnvironments","UnauthorizedError","fold","PushChangesRawLimit","fetch","serializeCookies","SLICE_MACHINE_USER_AGENT"],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { BaseManager } from "../BaseManager";
2
- import { PrismicRepository, TransactionalMergeArgs, TransactionalMergeReturnType, FrameworkWroomTelemetryID, StarterId, Environment, OnboardingState } from "./types";
2
+ import { PrismicRepository, TransactionalMergeArgs, TransactionalMergeReturnType, FrameworkWroomTelemetryID, StarterId, Environment } from "./types";
3
3
  type PrismicRepositoryManagerCheckExistsArgs = {
4
4
  domain: string;
5
5
  };
@@ -40,13 +40,6 @@ export declare class PrismicRepositoryManager extends BaseManager {
40
40
  pushDocuments(args: PrismicRepositoryManagerPushDocumentsArgs): Promise<void>;
41
41
  pushChanges(args: TransactionalMergeArgs): Promise<TransactionalMergeReturnType>;
42
42
  fetchEnvironments(args?: PrismicRepositoryManagerFetchEnvironmentsArgs): Promise<PrismicRepositoryManagerFetchEnvironmentsReturnType>;
43
- fetchOnboarding(): Promise<OnboardingState>;
44
- toggleOnboardingStep(stepId: string): Promise<{
45
- completedSteps: string[];
46
- }>;
47
- toggleOnboarding(): Promise<{
48
- isDismissed: boolean;
49
- }>;
50
43
  private _decodeLimitOrThrow;
51
44
  private _fetch;
52
45
  }