@slicemachine/init 2.9.10-alpha.dev-new-release-process.1 → 2.9.10-alpha.dev-new-release-process.3

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 (116) hide show
  1. package/dist/SliceMachineInitProcess.cjs +4 -1
  2. package/dist/SliceMachineInitProcess.cjs.map +1 -1
  3. package/dist/SliceMachineInitProcess.js +4 -1
  4. package/dist/SliceMachineInitProcess.js.map +1 -1
  5. package/dist/_node_modules/@babel/code-frame/lib/index.cjs +2 -2
  6. package/dist/_node_modules/@babel/code-frame/lib/index.js +2 -2
  7. package/dist/_node_modules/@babel/helper-validator-identifier/lib/index.cjs +1 -1
  8. package/dist/_node_modules/@babel/helper-validator-identifier/lib/index.js +1 -1
  9. package/dist/_node_modules/@babel/highlight/lib/index.cjs +3 -3
  10. package/dist/_node_modules/@babel/highlight/lib/index.js +3 -3
  11. package/dist/_node_modules/@nodelib/fs.scandir/out/providers/async.cjs +1 -1
  12. package/dist/_node_modules/@nodelib/fs.scandir/out/providers/async.js +1 -1
  13. package/dist/_node_modules/@nodelib/fs.scandir/out/providers/sync.cjs +1 -1
  14. package/dist/_node_modules/@nodelib/fs.scandir/out/providers/sync.js +1 -1
  15. package/dist/_node_modules/@nodelib/fs.scandir/out/settings.cjs +1 -1
  16. package/dist/_node_modules/@nodelib/fs.scandir/out/settings.js +1 -1
  17. package/dist/_node_modules/@nodelib/fs.stat/out/index.cjs +1 -1
  18. package/dist/_node_modules/@nodelib/fs.stat/out/index.js +1 -1
  19. package/dist/_node_modules/@nodelib/fs.walk/out/index.cjs +1 -1
  20. package/dist/_node_modules/@nodelib/fs.walk/out/index.js +1 -1
  21. package/dist/_node_modules/cross-spawn/index.cjs +1 -1
  22. package/dist/_node_modules/cross-spawn/index.js +1 -1
  23. package/dist/_node_modules/dir-glob/index.cjs +2 -2
  24. package/dist/_node_modules/dir-glob/index.js +2 -2
  25. package/dist/_node_modules/execa/_node_modules/get-stream/index.cjs +1 -1
  26. package/dist/_node_modules/execa/_node_modules/get-stream/index.js +1 -1
  27. package/dist/_node_modules/fast-glob/out/index.cjs +1 -1
  28. package/dist/_node_modules/fast-glob/out/index.js +1 -1
  29. package/dist/_node_modules/fast-glob/out/managers/tasks.cjs +1 -1
  30. package/dist/_node_modules/fast-glob/out/managers/tasks.js +1 -1
  31. package/dist/_node_modules/fast-glob/out/providers/filters/deep.cjs +1 -1
  32. package/dist/_node_modules/fast-glob/out/providers/filters/deep.js +1 -1
  33. package/dist/_node_modules/fast-glob/out/providers/filters/entry.cjs +1 -1
  34. package/dist/_node_modules/fast-glob/out/providers/filters/entry.js +1 -1
  35. package/dist/_node_modules/fast-glob/out/providers/filters/error.cjs +1 -1
  36. package/dist/_node_modules/fast-glob/out/providers/filters/error.js +1 -1
  37. package/dist/_node_modules/fast-glob/out/providers/matchers/matcher.cjs +1 -1
  38. package/dist/_node_modules/fast-glob/out/providers/matchers/matcher.js +1 -1
  39. package/dist/_node_modules/fast-glob/out/providers/transformers/entry.cjs +1 -1
  40. package/dist/_node_modules/fast-glob/out/providers/transformers/entry.js +1 -1
  41. package/dist/_node_modules/fast-glob/out/readers/async.cjs +1 -1
  42. package/dist/_node_modules/fast-glob/out/readers/async.js +1 -1
  43. package/dist/_node_modules/fast-glob/out/readers/reader.cjs +2 -2
  44. package/dist/_node_modules/fast-glob/out/readers/reader.js +2 -2
  45. package/dist/_node_modules/fast-glob/out/readers/stream.cjs +2 -2
  46. package/dist/_node_modules/fast-glob/out/readers/stream.js +2 -2
  47. package/dist/_node_modules/fast-glob/out/readers/sync.cjs +2 -2
  48. package/dist/_node_modules/fast-glob/out/readers/sync.js +2 -2
  49. package/dist/_node_modules/fast-glob/out/utils/index.cjs +1 -1
  50. package/dist/_node_modules/fast-glob/out/utils/index.js +1 -1
  51. package/dist/_node_modules/js-tokens/index.cjs +1 -1
  52. package/dist/_node_modules/js-tokens/index.js +1 -1
  53. package/dist/_node_modules/lines-and-columns/build/index.cjs +1 -1
  54. package/dist/_node_modules/lines-and-columns/build/index.js +1 -1
  55. package/dist/_node_modules/map-obj/index.cjs +1 -1
  56. package/dist/_node_modules/map-obj/index.js +1 -1
  57. package/dist/_node_modules/meow/_node_modules/hosted-git-info/lib/index.cjs +1 -1
  58. package/dist/_node_modules/meow/_node_modules/hosted-git-info/lib/index.js +1 -1
  59. package/dist/_node_modules/meow/_node_modules/read-pkg/_node_modules/hosted-git-info/index.cjs +1 -1
  60. package/dist/_node_modules/meow/_node_modules/read-pkg/_node_modules/hosted-git-info/index.js +1 -1
  61. package/dist/_node_modules/parse-json/index.cjs +2 -2
  62. package/dist/_node_modules/parse-json/index.js +2 -2
  63. package/dist/_node_modules/path-key/index.cjs +1 -1
  64. package/dist/_node_modules/path-key/index.js +1 -1
  65. package/dist/_node_modules/path-type/index.cjs +1 -1
  66. package/dist/_node_modules/path-type/index.js +1 -1
  67. package/dist/_node_modules/signal-exit/index.cjs +1 -1
  68. package/dist/_node_modules/signal-exit/index.js +1 -1
  69. package/dist/_virtual/index10.cjs +2 -2
  70. package/dist/_virtual/index10.js +2 -2
  71. package/dist/_virtual/index11.cjs +2 -2
  72. package/dist/_virtual/index11.js +2 -2
  73. package/dist/_virtual/index12.cjs +2 -2
  74. package/dist/_virtual/index12.js +2 -2
  75. package/dist/_virtual/index13.cjs +2 -2
  76. package/dist/_virtual/index13.js +2 -2
  77. package/dist/_virtual/index14.cjs +2 -2
  78. package/dist/_virtual/index14.js +2 -2
  79. package/dist/_virtual/index15.cjs +2 -2
  80. package/dist/_virtual/index15.js +2 -2
  81. package/dist/_virtual/index16.cjs +2 -2
  82. package/dist/_virtual/index16.js +2 -2
  83. package/dist/_virtual/index17.cjs +2 -2
  84. package/dist/_virtual/index17.js +2 -2
  85. package/dist/_virtual/index18.cjs +2 -2
  86. package/dist/_virtual/index18.js +2 -2
  87. package/dist/_virtual/index19.cjs +2 -2
  88. package/dist/_virtual/index19.js +2 -2
  89. package/dist/_virtual/index3.cjs +2 -2
  90. package/dist/_virtual/index3.js +2 -2
  91. package/dist/_virtual/index4.cjs +2 -2
  92. package/dist/_virtual/index4.js +2 -2
  93. package/dist/_virtual/index5.cjs +2 -2
  94. package/dist/_virtual/index5.js +2 -2
  95. package/dist/_virtual/index6.cjs +2 -2
  96. package/dist/_virtual/index6.js +2 -2
  97. package/dist/_virtual/index7.cjs +2 -2
  98. package/dist/_virtual/index7.js +2 -2
  99. package/dist/_virtual/index8.cjs +2 -2
  100. package/dist/_virtual/index8.js +2 -2
  101. package/dist/_virtual/index9.cjs +2 -2
  102. package/dist/_virtual/index9.js +2 -2
  103. package/dist/lib/framework.cjs +15 -8
  104. package/dist/lib/framework.cjs.map +1 -1
  105. package/dist/lib/framework.js +15 -8
  106. package/dist/lib/framework.js.map +1 -1
  107. package/dist/lib/setupSentry.cjs +4 -4
  108. package/dist/lib/setupSentry.cjs.map +1 -1
  109. package/dist/lib/setupSentry.js +5 -5
  110. package/dist/lib/setupSentry.js.map +1 -1
  111. package/dist/packages/init/package.json.cjs +1 -1
  112. package/dist/packages/init/package.json.js +1 -1
  113. package/package.json +3 -3
  114. package/src/SliceMachineInitProcess.ts +7 -1
  115. package/src/lib/framework.ts +19 -9
  116. package/src/lib/setupSentry.ts +5 -8
@@ -1,5 +1,5 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- var lib = {};
4
- exports.__exports = lib;
3
+ var pathType = {};
4
+ exports.__exports = pathType;
5
5
  //# sourceMappingURL=index6.cjs.map
@@ -1,5 +1,5 @@
1
- var lib = {};
1
+ var pathType = {};
2
2
  export {
3
- lib as __exports
3
+ pathType as __exports
4
4
  };
5
5
  //# sourceMappingURL=index6.js.map
@@ -1,5 +1,5 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- var lib = {};
4
- exports.__exports = lib;
3
+ var mapObj = { exports: {} };
4
+ exports.__module = mapObj;
5
5
  //# sourceMappingURL=index7.cjs.map
@@ -1,5 +1,5 @@
1
- var lib = {};
1
+ var mapObj = { exports: {} };
2
2
  export {
3
- lib as __exports
3
+ mapObj as __module
4
4
  };
5
5
  //# sourceMappingURL=index7.js.map
@@ -1,5 +1,5 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- var crossSpawn = { exports: {} };
4
- exports.__module = crossSpawn;
3
+ var signalExit = { exports: {} };
4
+ exports.__module = signalExit;
5
5
  //# sourceMappingURL=index8.cjs.map
@@ -1,5 +1,5 @@
1
- var crossSpawn = { exports: {} };
1
+ var signalExit = { exports: {} };
2
2
  export {
3
- crossSpawn as __module
3
+ signalExit as __module
4
4
  };
5
5
  //# sourceMappingURL=index8.js.map
@@ -1,5 +1,5 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- var utils = {};
4
- exports.__exports = utils;
3
+ var getStream = { exports: {} };
4
+ exports.__module = getStream;
5
5
  //# sourceMappingURL=index9.cjs.map
@@ -1,5 +1,5 @@
1
- var utils = {};
1
+ var getStream = { exports: {} };
2
2
  export {
3
- utils as __exports
3
+ getStream as __module
4
4
  };
5
5
  //# sourceMappingURL=index9.js.map
@@ -4,9 +4,16 @@ const fs = require("node:fs/promises");
4
4
  const path = require("node:path");
5
5
  const semver = require("semver");
6
6
  const _package = require("../packages/init/package.json.cjs");
7
- const isPrerelease = semver.prerelease(_package.version) !== null && process.env.NODE_ENV !== "test";
7
+ const prereleaseComponents = semver.prerelease(_package.version);
8
+ let npmDistributionTag;
9
+ if (prereleaseComponents !== null && prereleaseComponents.length >= 2 && process.env.NODE_ENV !== "test") {
10
+ const prereleaseIdentifier = prereleaseComponents.slice(0, -1).join(".");
11
+ npmDistributionTag = prereleaseIdentifier;
12
+ } else {
13
+ npmDistributionTag = "latest";
14
+ }
8
15
  const DEFAULT_DEV_DEPENDENCIES = {
9
- "slice-machine-ui": isPrerelease ? "alpha" : "latest"
16
+ "slice-machine-ui": npmDistributionTag
10
17
  };
11
18
  const FRAMEWORKS = {
12
19
  "nuxt-2": {
@@ -20,7 +27,7 @@ const FRAMEWORKS = {
20
27
  },
21
28
  devDependencies: {
22
29
  ...DEFAULT_DEV_DEPENDENCIES,
23
- "@slicemachine/adapter-nuxt2": isPrerelease ? "alpha" : "latest"
30
+ "@slicemachine/adapter-nuxt2": npmDistributionTag
24
31
  }
25
32
  },
26
33
  "nuxt-3": {
@@ -34,7 +41,7 @@ const FRAMEWORKS = {
34
41
  },
35
42
  devDependencies: {
36
43
  ...DEFAULT_DEV_DEPENDENCIES,
37
- "@slicemachine/adapter-nuxt": isPrerelease ? "alpha" : "latest"
44
+ "@slicemachine/adapter-nuxt": npmDistributionTag
38
45
  }
39
46
  },
40
47
  next: {
@@ -48,7 +55,7 @@ const FRAMEWORKS = {
48
55
  },
49
56
  devDependencies: {
50
57
  ...DEFAULT_DEV_DEPENDENCIES,
51
- "@slicemachine/adapter-next": isPrerelease ? "alpha" : "latest"
58
+ "@slicemachine/adapter-next": npmDistributionTag
52
59
  }
53
60
  },
54
61
  "sveltekit-1": {
@@ -62,7 +69,7 @@ const FRAMEWORKS = {
62
69
  },
63
70
  devDependencies: {
64
71
  ...DEFAULT_DEV_DEPENDENCIES,
65
- "@slicemachine/adapter-sveltekit": isPrerelease ? "alpha" : "latest"
72
+ "@slicemachine/adapter-sveltekit": npmDistributionTag
66
73
  }
67
74
  },
68
75
  "sveltekit-2": {
@@ -76,7 +83,7 @@ const FRAMEWORKS = {
76
83
  },
77
84
  devDependencies: {
78
85
  ...DEFAULT_DEV_DEPENDENCIES,
79
- "@slicemachine/adapter-sveltekit": isPrerelease ? "alpha" : "latest"
86
+ "@slicemachine/adapter-sveltekit": npmDistributionTag
80
87
  }
81
88
  }
82
89
  };
@@ -89,7 +96,7 @@ const UNIVERSAL = {
89
96
  compatibility: {},
90
97
  devDependencies: {
91
98
  ...DEFAULT_DEV_DEPENDENCIES,
92
- "@slicemachine/adapter-universal": isPrerelease ? "alpha" : "latest"
99
+ "@slicemachine/adapter-universal": npmDistributionTag
93
100
  }
94
101
  };
95
102
  const detectFramework = async (cwd) => {
@@ -1 +1 @@
1
- {"version":3,"file":"framework.cjs","sources":["../../../src/lib/framework.ts"],"sourcesContent":["import { readFile } from \"node:fs/promises\";\nimport { join } from \"node:path\";\nimport semver from \"semver\";\n\nimport { FrameworkWroomTelemetryID } from \"@slicemachine/manager\";\n\nimport { version as pkgVersion } from \"../../package.json\";\n\nexport type Framework = {\n\t/**\n\t * Framework's human readable name.\n\t */\n\tname: string;\n\n\t/**\n\t * Framework 's id sent to Segment from Slice Machine\n\t */\n\tsliceMachineTelemetryID:\n\t\t| \"next\"\n\t\t| \"nuxt-2\"\n\t\t| \"nuxt-3\"\n\t\t| \"sveltekit-1\"\n\t\t| \"sveltekit-2\"\n\t\t| \"universal\";\n\n\t/**\n\t * Framework's id sent to Segment from wroom.\n\t */\n\twroomTelemetryID: FrameworkWroomTelemetryID;\n\n\t/**\n\t * A link to the Prismic documentation for the framework\n\t */\n\tprismicDocumentation: string;\n\n\t/**\n\t * Package name of the adapter responsible for this framework\n\t */\n\tadapterName: string;\n\n\t/**\n\t * A package name/semver range map defining framework compatibility\n\t * requirements.\n\t *\n\t * Project should match all entries to be considered compatible.\n\t */\n\tcompatibility: Record<string, string>;\n\n\t/**\n\t * A package name/semver range map defining development dependencies to be\n\t * installed. Typically Slice Machine and the framework's adapter.\n\t *\n\t * @remarks\n\t * Dependencies required to work with the framework (e.g. `@prismicio/next`\n\t * for Next.js) should not be defined here. Those are to be defined by the\n\t * adapter.\n\t */\n\tdevDependencies: Record<string, string>;\n};\n\nconst isPrerelease =\n\tsemver.prerelease(pkgVersion) !== null && process.env.NODE_ENV !== \"test\";\n\nconst DEFAULT_DEV_DEPENDENCIES: Record<string, string> = {\n\t\"slice-machine-ui\": isPrerelease ? \"alpha\" : \"latest\",\n};\n\n/**\n * Frameworks we support, orders shouldn't matter much but is respected (the\n * higher it is the more priority it has in case multiple matches)\n */\nexport const FRAMEWORKS: Record<string, Framework> = {\n\t\"nuxt-2\": {\n\t\tname: \"Nuxt 2\",\n\t\tsliceMachineTelemetryID: \"nuxt-2\",\n\t\twroomTelemetryID: \"nuxt\",\n\t\tprismicDocumentation: \"https://prismic.dev/init/nuxt-2\",\n\t\tadapterName: \"@slicemachine/adapter-nuxt2\",\n\t\tcompatibility: {\n\t\t\tnuxt: \"^2.0.0\",\n\t\t},\n\t\tdevDependencies: {\n\t\t\t...DEFAULT_DEV_DEPENDENCIES,\n\t\t\t\"@slicemachine/adapter-nuxt2\": isPrerelease ? \"alpha\" : \"latest\",\n\t\t},\n\t},\n\t\"nuxt-3\": {\n\t\tname: \"Nuxt 3\",\n\t\tsliceMachineTelemetryID: \"nuxt-3\",\n\t\twroomTelemetryID: \"nuxt\",\n\t\tprismicDocumentation: \"https://prismic.dev/init/nuxt-3\",\n\t\tadapterName: \"@slicemachine/adapter-nuxt\",\n\t\tcompatibility: {\n\t\t\tnuxt: \"^3.0.0\",\n\t\t},\n\t\tdevDependencies: {\n\t\t\t...DEFAULT_DEV_DEPENDENCIES,\n\t\t\t\"@slicemachine/adapter-nuxt\": isPrerelease ? \"alpha\" : \"latest\",\n\t\t},\n\t},\n\tnext: {\n\t\tname: \"Next.js\",\n\t\tsliceMachineTelemetryID: \"next\",\n\t\twroomTelemetryID: \"next\",\n\t\tprismicDocumentation: \"https://prismic.dev/init/next\",\n\t\tadapterName: \"@slicemachine/adapter-next\",\n\t\tcompatibility: {\n\t\t\tnext: \">=11.0.0\",\n\t\t},\n\t\tdevDependencies: {\n\t\t\t...DEFAULT_DEV_DEPENDENCIES,\n\t\t\t\"@slicemachine/adapter-next\": isPrerelease ? \"alpha\" : \"latest\",\n\t\t},\n\t},\n\t\"sveltekit-1\": {\n\t\tname: \"SvelteKit\",\n\t\tsliceMachineTelemetryID: \"sveltekit-1\",\n\t\twroomTelemetryID: \"sveltekit\",\n\t\tprismicDocumentation: \"https://prismic.dev/init/sveltekit-1\",\n\t\tadapterName: \"@slicemachine/adapter-sveltekit\",\n\t\tcompatibility: {\n\t\t\t\"@sveltejs/kit\": \"^1.0.0\",\n\t\t},\n\t\tdevDependencies: {\n\t\t\t...DEFAULT_DEV_DEPENDENCIES,\n\t\t\t\"@slicemachine/adapter-sveltekit\": isPrerelease ? \"alpha\" : \"latest\",\n\t\t},\n\t},\n\t\"sveltekit-2\": {\n\t\tname: \"SvelteKit\",\n\t\tsliceMachineTelemetryID: \"sveltekit-2\",\n\t\twroomTelemetryID: \"sveltekit\",\n\t\tprismicDocumentation: \"https://prismic.dev/init/sveltekit-2\",\n\t\tadapterName: \"@slicemachine/adapter-sveltekit\",\n\t\tcompatibility: {\n\t\t\t\"@sveltejs/kit\": \"^2.0.0\",\n\t\t},\n\t\tdevDependencies: {\n\t\t\t...DEFAULT_DEV_DEPENDENCIES,\n\t\t\t\"@slicemachine/adapter-sveltekit\": isPrerelease ? \"alpha\" : \"latest\",\n\t\t},\n\t},\n} as const;\n\n/**\n * Universal package used when framework is not supported.\n */\nexport const UNIVERSAL: Framework = {\n\tname: \"universal (no framework)\",\n\tsliceMachineTelemetryID: \"universal\",\n\twroomTelemetryID: \"other\",\n\tprismicDocumentation: \"https://prismic.dev/init/universal\",\n\tadapterName: \"@slicemachine/adapter-universal\",\n\tcompatibility: {},\n\tdevDependencies: {\n\t\t...DEFAULT_DEV_DEPENDENCIES,\n\t\t\"@slicemachine/adapter-universal\": isPrerelease ? \"alpha\" : \"latest\",\n\t},\n};\n\nexport const detectFramework = async (cwd: string): Promise<Framework> => {\n\tconst path = join(cwd, \"package.json\");\n\n\tlet allDependencies: Record<string, string>;\n\ttry {\n\t\tconst pkg = JSON.parse(await readFile(path, \"utf-8\"));\n\n\t\tallDependencies = {\n\t\t\t...pkg.dependencies,\n\t\t\t...pkg.devDependencies,\n\t\t};\n\t} catch (error) {\n\t\tthrow new Error(\n\t\t\t`Failed to read project's \\`package.json\\` at \\`${path}\\``,\n\t\t\t{ cause: error },\n\t\t);\n\t}\n\n\treturn (\n\t\tObject.values(FRAMEWORKS).find((framework) => {\n\t\t\treturn Object.entries(framework.compatibility).every(([pkg, range]) => {\n\t\t\t\tif (pkg in allDependencies) {\n\t\t\t\t\ttry {\n\t\t\t\t\t\t// Determine lowest version possibly in use\n\t\t\t\t\t\tconst minimumVersion = semver.minVersion(allDependencies[pkg]);\n\n\t\t\t\t\t\t// eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n\t\t\t\t\t\treturn semver.satisfies(minimumVersion!, range);\n\t\t\t\t\t} catch (error) {\n\t\t\t\t\t\t// We assume unconventional tags, `latest`, `beta`, `dev` matches the framework\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn false;\n\t\t\t});\n\t\t}) || UNIVERSAL\n\t);\n};\n"],"names":["pkgVersion","path","join","readFile"],"mappings":"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"}
1
+ {"version":3,"file":"framework.cjs","sources":["../../../src/lib/framework.ts"],"sourcesContent":["import { readFile } from \"node:fs/promises\";\nimport { join } from \"node:path\";\nimport semver from \"semver\";\n\nimport { FrameworkWroomTelemetryID } from \"@slicemachine/manager\";\n\nimport { version as pkgVersion } from \"../../package.json\";\n\nexport type Framework = {\n\t/**\n\t * Framework's human readable name.\n\t */\n\tname: string;\n\n\t/**\n\t * Framework 's id sent to Segment from Slice Machine\n\t */\n\tsliceMachineTelemetryID:\n\t\t| \"next\"\n\t\t| \"nuxt-2\"\n\t\t| \"nuxt-3\"\n\t\t| \"sveltekit-1\"\n\t\t| \"sveltekit-2\"\n\t\t| \"universal\";\n\n\t/**\n\t * Framework's id sent to Segment from wroom.\n\t */\n\twroomTelemetryID: FrameworkWroomTelemetryID;\n\n\t/**\n\t * A link to the Prismic documentation for the framework\n\t */\n\tprismicDocumentation: string;\n\n\t/**\n\t * Package name of the adapter responsible for this framework\n\t */\n\tadapterName: string;\n\n\t/**\n\t * A package name/semver range map defining framework compatibility\n\t * requirements.\n\t *\n\t * Project should match all entries to be considered compatible.\n\t */\n\tcompatibility: Record<string, string>;\n\n\t/**\n\t * A package name/semver range map defining development dependencies to be\n\t * installed. Typically Slice Machine and the framework's adapter.\n\t *\n\t * @remarks\n\t * Dependencies required to work with the framework (e.g. `@prismicio/next`\n\t * for Next.js) should not be defined here. Those are to be defined by the\n\t * adapter.\n\t */\n\tdevDependencies: Record<string, string>;\n};\n\nconst prereleaseComponents = semver.prerelease(pkgVersion);\nlet npmDistributionTag;\nif (\n\tprereleaseComponents !== null &&\n\tprereleaseComponents.length >= 2 &&\n\tprocess.env.NODE_ENV !== \"test\"\n) {\n\tconst prereleaseIdentifier = prereleaseComponents.slice(0, -1).join(\".\");\n\tnpmDistributionTag = prereleaseIdentifier;\n} else {\n\tnpmDistributionTag = \"latest\";\n}\n\nconst DEFAULT_DEV_DEPENDENCIES: Record<string, string> = {\n\t\"slice-machine-ui\": npmDistributionTag,\n};\n\n/**\n * Frameworks we support, orders shouldn't matter much but is respected (the\n * higher it is the more priority it has in case multiple matches)\n */\nexport const FRAMEWORKS: Record<string, Framework> = {\n\t\"nuxt-2\": {\n\t\tname: \"Nuxt 2\",\n\t\tsliceMachineTelemetryID: \"nuxt-2\",\n\t\twroomTelemetryID: \"nuxt\",\n\t\tprismicDocumentation: \"https://prismic.dev/init/nuxt-2\",\n\t\tadapterName: \"@slicemachine/adapter-nuxt2\",\n\t\tcompatibility: {\n\t\t\tnuxt: \"^2.0.0\",\n\t\t},\n\t\tdevDependencies: {\n\t\t\t...DEFAULT_DEV_DEPENDENCIES,\n\t\t\t\"@slicemachine/adapter-nuxt2\": npmDistributionTag,\n\t\t},\n\t},\n\t\"nuxt-3\": {\n\t\tname: \"Nuxt 3\",\n\t\tsliceMachineTelemetryID: \"nuxt-3\",\n\t\twroomTelemetryID: \"nuxt\",\n\t\tprismicDocumentation: \"https://prismic.dev/init/nuxt-3\",\n\t\tadapterName: \"@slicemachine/adapter-nuxt\",\n\t\tcompatibility: {\n\t\t\tnuxt: \"^3.0.0\",\n\t\t},\n\t\tdevDependencies: {\n\t\t\t...DEFAULT_DEV_DEPENDENCIES,\n\t\t\t\"@slicemachine/adapter-nuxt\": npmDistributionTag,\n\t\t},\n\t},\n\tnext: {\n\t\tname: \"Next.js\",\n\t\tsliceMachineTelemetryID: \"next\",\n\t\twroomTelemetryID: \"next\",\n\t\tprismicDocumentation: \"https://prismic.dev/init/next\",\n\t\tadapterName: \"@slicemachine/adapter-next\",\n\t\tcompatibility: {\n\t\t\tnext: \">=11.0.0\",\n\t\t},\n\t\tdevDependencies: {\n\t\t\t...DEFAULT_DEV_DEPENDENCIES,\n\t\t\t\"@slicemachine/adapter-next\": npmDistributionTag,\n\t\t},\n\t},\n\t\"sveltekit-1\": {\n\t\tname: \"SvelteKit\",\n\t\tsliceMachineTelemetryID: \"sveltekit-1\",\n\t\twroomTelemetryID: \"sveltekit\",\n\t\tprismicDocumentation: \"https://prismic.dev/init/sveltekit-1\",\n\t\tadapterName: \"@slicemachine/adapter-sveltekit\",\n\t\tcompatibility: {\n\t\t\t\"@sveltejs/kit\": \"^1.0.0\",\n\t\t},\n\t\tdevDependencies: {\n\t\t\t...DEFAULT_DEV_DEPENDENCIES,\n\t\t\t\"@slicemachine/adapter-sveltekit\": npmDistributionTag,\n\t\t},\n\t},\n\t\"sveltekit-2\": {\n\t\tname: \"SvelteKit\",\n\t\tsliceMachineTelemetryID: \"sveltekit-2\",\n\t\twroomTelemetryID: \"sveltekit\",\n\t\tprismicDocumentation: \"https://prismic.dev/init/sveltekit-2\",\n\t\tadapterName: \"@slicemachine/adapter-sveltekit\",\n\t\tcompatibility: {\n\t\t\t\"@sveltejs/kit\": \"^2.0.0\",\n\t\t},\n\t\tdevDependencies: {\n\t\t\t...DEFAULT_DEV_DEPENDENCIES,\n\t\t\t\"@slicemachine/adapter-sveltekit\": npmDistributionTag,\n\t\t},\n\t},\n} as const;\n\n/**\n * Universal package used when framework is not supported.\n */\nexport const UNIVERSAL: Framework = {\n\tname: \"universal (no framework)\",\n\tsliceMachineTelemetryID: \"universal\",\n\twroomTelemetryID: \"other\",\n\tprismicDocumentation: \"https://prismic.dev/init/universal\",\n\tadapterName: \"@slicemachine/adapter-universal\",\n\tcompatibility: {},\n\tdevDependencies: {\n\t\t...DEFAULT_DEV_DEPENDENCIES,\n\t\t\"@slicemachine/adapter-universal\": npmDistributionTag,\n\t},\n};\n\nexport const detectFramework = async (cwd: string): Promise<Framework> => {\n\tconst path = join(cwd, \"package.json\");\n\n\tlet allDependencies: Record<string, string>;\n\ttry {\n\t\tconst pkg = JSON.parse(await readFile(path, \"utf-8\"));\n\n\t\tallDependencies = {\n\t\t\t...pkg.dependencies,\n\t\t\t...pkg.devDependencies,\n\t\t};\n\t} catch (error) {\n\t\tthrow new Error(\n\t\t\t`Failed to read project's \\`package.json\\` at \\`${path}\\``,\n\t\t\t{ cause: error },\n\t\t);\n\t}\n\n\treturn (\n\t\tObject.values(FRAMEWORKS).find((framework) => {\n\t\t\treturn Object.entries(framework.compatibility).every(([pkg, range]) => {\n\t\t\t\tif (pkg in allDependencies) {\n\t\t\t\t\ttry {\n\t\t\t\t\t\t// Determine lowest version possibly in use\n\t\t\t\t\t\tconst minimumVersion = semver.minVersion(allDependencies[pkg]);\n\n\t\t\t\t\t\t// eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n\t\t\t\t\t\treturn semver.satisfies(minimumVersion!, range);\n\t\t\t\t\t} catch (error) {\n\t\t\t\t\t\t// We assume unconventional tags, `latest`, `beta`, `dev` matches the framework\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn false;\n\t\t\t});\n\t\t}) || UNIVERSAL\n\t);\n};\n"],"names":["pkgVersion","path","join","readFile"],"mappings":"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"}
@@ -2,9 +2,16 @@ import { readFile } from "node:fs/promises";
2
2
  import { join } from "node:path";
3
3
  import semver from "semver";
4
4
  import { version } from "../packages/init/package.json.js";
5
- const isPrerelease = semver.prerelease(version) !== null && process.env.NODE_ENV !== "test";
5
+ const prereleaseComponents = semver.prerelease(version);
6
+ let npmDistributionTag;
7
+ if (prereleaseComponents !== null && prereleaseComponents.length >= 2 && process.env.NODE_ENV !== "test") {
8
+ const prereleaseIdentifier = prereleaseComponents.slice(0, -1).join(".");
9
+ npmDistributionTag = prereleaseIdentifier;
10
+ } else {
11
+ npmDistributionTag = "latest";
12
+ }
6
13
  const DEFAULT_DEV_DEPENDENCIES = {
7
- "slice-machine-ui": isPrerelease ? "alpha" : "latest"
14
+ "slice-machine-ui": npmDistributionTag
8
15
  };
9
16
  const FRAMEWORKS = {
10
17
  "nuxt-2": {
@@ -18,7 +25,7 @@ const FRAMEWORKS = {
18
25
  },
19
26
  devDependencies: {
20
27
  ...DEFAULT_DEV_DEPENDENCIES,
21
- "@slicemachine/adapter-nuxt2": isPrerelease ? "alpha" : "latest"
28
+ "@slicemachine/adapter-nuxt2": npmDistributionTag
22
29
  }
23
30
  },
24
31
  "nuxt-3": {
@@ -32,7 +39,7 @@ const FRAMEWORKS = {
32
39
  },
33
40
  devDependencies: {
34
41
  ...DEFAULT_DEV_DEPENDENCIES,
35
- "@slicemachine/adapter-nuxt": isPrerelease ? "alpha" : "latest"
42
+ "@slicemachine/adapter-nuxt": npmDistributionTag
36
43
  }
37
44
  },
38
45
  next: {
@@ -46,7 +53,7 @@ const FRAMEWORKS = {
46
53
  },
47
54
  devDependencies: {
48
55
  ...DEFAULT_DEV_DEPENDENCIES,
49
- "@slicemachine/adapter-next": isPrerelease ? "alpha" : "latest"
56
+ "@slicemachine/adapter-next": npmDistributionTag
50
57
  }
51
58
  },
52
59
  "sveltekit-1": {
@@ -60,7 +67,7 @@ const FRAMEWORKS = {
60
67
  },
61
68
  devDependencies: {
62
69
  ...DEFAULT_DEV_DEPENDENCIES,
63
- "@slicemachine/adapter-sveltekit": isPrerelease ? "alpha" : "latest"
70
+ "@slicemachine/adapter-sveltekit": npmDistributionTag
64
71
  }
65
72
  },
66
73
  "sveltekit-2": {
@@ -74,7 +81,7 @@ const FRAMEWORKS = {
74
81
  },
75
82
  devDependencies: {
76
83
  ...DEFAULT_DEV_DEPENDENCIES,
77
- "@slicemachine/adapter-sveltekit": isPrerelease ? "alpha" : "latest"
84
+ "@slicemachine/adapter-sveltekit": npmDistributionTag
78
85
  }
79
86
  }
80
87
  };
@@ -87,7 +94,7 @@ const UNIVERSAL = {
87
94
  compatibility: {},
88
95
  devDependencies: {
89
96
  ...DEFAULT_DEV_DEPENDENCIES,
90
- "@slicemachine/adapter-universal": isPrerelease ? "alpha" : "latest"
97
+ "@slicemachine/adapter-universal": npmDistributionTag
91
98
  }
92
99
  };
93
100
  const detectFramework = async (cwd) => {
@@ -1 +1 @@
1
- {"version":3,"file":"framework.js","sources":["../../../src/lib/framework.ts"],"sourcesContent":["import { readFile } from \"node:fs/promises\";\nimport { join } from \"node:path\";\nimport semver from \"semver\";\n\nimport { FrameworkWroomTelemetryID } from \"@slicemachine/manager\";\n\nimport { version as pkgVersion } from \"../../package.json\";\n\nexport type Framework = {\n\t/**\n\t * Framework's human readable name.\n\t */\n\tname: string;\n\n\t/**\n\t * Framework 's id sent to Segment from Slice Machine\n\t */\n\tsliceMachineTelemetryID:\n\t\t| \"next\"\n\t\t| \"nuxt-2\"\n\t\t| \"nuxt-3\"\n\t\t| \"sveltekit-1\"\n\t\t| \"sveltekit-2\"\n\t\t| \"universal\";\n\n\t/**\n\t * Framework's id sent to Segment from wroom.\n\t */\n\twroomTelemetryID: FrameworkWroomTelemetryID;\n\n\t/**\n\t * A link to the Prismic documentation for the framework\n\t */\n\tprismicDocumentation: string;\n\n\t/**\n\t * Package name of the adapter responsible for this framework\n\t */\n\tadapterName: string;\n\n\t/**\n\t * A package name/semver range map defining framework compatibility\n\t * requirements.\n\t *\n\t * Project should match all entries to be considered compatible.\n\t */\n\tcompatibility: Record<string, string>;\n\n\t/**\n\t * A package name/semver range map defining development dependencies to be\n\t * installed. Typically Slice Machine and the framework's adapter.\n\t *\n\t * @remarks\n\t * Dependencies required to work with the framework (e.g. `@prismicio/next`\n\t * for Next.js) should not be defined here. Those are to be defined by the\n\t * adapter.\n\t */\n\tdevDependencies: Record<string, string>;\n};\n\nconst isPrerelease =\n\tsemver.prerelease(pkgVersion) !== null && process.env.NODE_ENV !== \"test\";\n\nconst DEFAULT_DEV_DEPENDENCIES: Record<string, string> = {\n\t\"slice-machine-ui\": isPrerelease ? \"alpha\" : \"latest\",\n};\n\n/**\n * Frameworks we support, orders shouldn't matter much but is respected (the\n * higher it is the more priority it has in case multiple matches)\n */\nexport const FRAMEWORKS: Record<string, Framework> = {\n\t\"nuxt-2\": {\n\t\tname: \"Nuxt 2\",\n\t\tsliceMachineTelemetryID: \"nuxt-2\",\n\t\twroomTelemetryID: \"nuxt\",\n\t\tprismicDocumentation: \"https://prismic.dev/init/nuxt-2\",\n\t\tadapterName: \"@slicemachine/adapter-nuxt2\",\n\t\tcompatibility: {\n\t\t\tnuxt: \"^2.0.0\",\n\t\t},\n\t\tdevDependencies: {\n\t\t\t...DEFAULT_DEV_DEPENDENCIES,\n\t\t\t\"@slicemachine/adapter-nuxt2\": isPrerelease ? \"alpha\" : \"latest\",\n\t\t},\n\t},\n\t\"nuxt-3\": {\n\t\tname: \"Nuxt 3\",\n\t\tsliceMachineTelemetryID: \"nuxt-3\",\n\t\twroomTelemetryID: \"nuxt\",\n\t\tprismicDocumentation: \"https://prismic.dev/init/nuxt-3\",\n\t\tadapterName: \"@slicemachine/adapter-nuxt\",\n\t\tcompatibility: {\n\t\t\tnuxt: \"^3.0.0\",\n\t\t},\n\t\tdevDependencies: {\n\t\t\t...DEFAULT_DEV_DEPENDENCIES,\n\t\t\t\"@slicemachine/adapter-nuxt\": isPrerelease ? \"alpha\" : \"latest\",\n\t\t},\n\t},\n\tnext: {\n\t\tname: \"Next.js\",\n\t\tsliceMachineTelemetryID: \"next\",\n\t\twroomTelemetryID: \"next\",\n\t\tprismicDocumentation: \"https://prismic.dev/init/next\",\n\t\tadapterName: \"@slicemachine/adapter-next\",\n\t\tcompatibility: {\n\t\t\tnext: \">=11.0.0\",\n\t\t},\n\t\tdevDependencies: {\n\t\t\t...DEFAULT_DEV_DEPENDENCIES,\n\t\t\t\"@slicemachine/adapter-next\": isPrerelease ? \"alpha\" : \"latest\",\n\t\t},\n\t},\n\t\"sveltekit-1\": {\n\t\tname: \"SvelteKit\",\n\t\tsliceMachineTelemetryID: \"sveltekit-1\",\n\t\twroomTelemetryID: \"sveltekit\",\n\t\tprismicDocumentation: \"https://prismic.dev/init/sveltekit-1\",\n\t\tadapterName: \"@slicemachine/adapter-sveltekit\",\n\t\tcompatibility: {\n\t\t\t\"@sveltejs/kit\": \"^1.0.0\",\n\t\t},\n\t\tdevDependencies: {\n\t\t\t...DEFAULT_DEV_DEPENDENCIES,\n\t\t\t\"@slicemachine/adapter-sveltekit\": isPrerelease ? \"alpha\" : \"latest\",\n\t\t},\n\t},\n\t\"sveltekit-2\": {\n\t\tname: \"SvelteKit\",\n\t\tsliceMachineTelemetryID: \"sveltekit-2\",\n\t\twroomTelemetryID: \"sveltekit\",\n\t\tprismicDocumentation: \"https://prismic.dev/init/sveltekit-2\",\n\t\tadapterName: \"@slicemachine/adapter-sveltekit\",\n\t\tcompatibility: {\n\t\t\t\"@sveltejs/kit\": \"^2.0.0\",\n\t\t},\n\t\tdevDependencies: {\n\t\t\t...DEFAULT_DEV_DEPENDENCIES,\n\t\t\t\"@slicemachine/adapter-sveltekit\": isPrerelease ? \"alpha\" : \"latest\",\n\t\t},\n\t},\n} as const;\n\n/**\n * Universal package used when framework is not supported.\n */\nexport const UNIVERSAL: Framework = {\n\tname: \"universal (no framework)\",\n\tsliceMachineTelemetryID: \"universal\",\n\twroomTelemetryID: \"other\",\n\tprismicDocumentation: \"https://prismic.dev/init/universal\",\n\tadapterName: \"@slicemachine/adapter-universal\",\n\tcompatibility: {},\n\tdevDependencies: {\n\t\t...DEFAULT_DEV_DEPENDENCIES,\n\t\t\"@slicemachine/adapter-universal\": isPrerelease ? \"alpha\" : \"latest\",\n\t},\n};\n\nexport const detectFramework = async (cwd: string): Promise<Framework> => {\n\tconst path = join(cwd, \"package.json\");\n\n\tlet allDependencies: Record<string, string>;\n\ttry {\n\t\tconst pkg = JSON.parse(await readFile(path, \"utf-8\"));\n\n\t\tallDependencies = {\n\t\t\t...pkg.dependencies,\n\t\t\t...pkg.devDependencies,\n\t\t};\n\t} catch (error) {\n\t\tthrow new Error(\n\t\t\t`Failed to read project's \\`package.json\\` at \\`${path}\\``,\n\t\t\t{ cause: error },\n\t\t);\n\t}\n\n\treturn (\n\t\tObject.values(FRAMEWORKS).find((framework) => {\n\t\t\treturn Object.entries(framework.compatibility).every(([pkg, range]) => {\n\t\t\t\tif (pkg in allDependencies) {\n\t\t\t\t\ttry {\n\t\t\t\t\t\t// Determine lowest version possibly in use\n\t\t\t\t\t\tconst minimumVersion = semver.minVersion(allDependencies[pkg]);\n\n\t\t\t\t\t\t// eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n\t\t\t\t\t\treturn semver.satisfies(minimumVersion!, range);\n\t\t\t\t\t} catch (error) {\n\t\t\t\t\t\t// We assume unconventional tags, `latest`, `beta`, `dev` matches the framework\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn false;\n\t\t\t});\n\t\t}) || UNIVERSAL\n\t);\n};\n"],"names":["pkgVersion"],"mappings":"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"}
1
+ {"version":3,"file":"framework.js","sources":["../../../src/lib/framework.ts"],"sourcesContent":["import { readFile } from \"node:fs/promises\";\nimport { join } from \"node:path\";\nimport semver from \"semver\";\n\nimport { FrameworkWroomTelemetryID } from \"@slicemachine/manager\";\n\nimport { version as pkgVersion } from \"../../package.json\";\n\nexport type Framework = {\n\t/**\n\t * Framework's human readable name.\n\t */\n\tname: string;\n\n\t/**\n\t * Framework 's id sent to Segment from Slice Machine\n\t */\n\tsliceMachineTelemetryID:\n\t\t| \"next\"\n\t\t| \"nuxt-2\"\n\t\t| \"nuxt-3\"\n\t\t| \"sveltekit-1\"\n\t\t| \"sveltekit-2\"\n\t\t| \"universal\";\n\n\t/**\n\t * Framework's id sent to Segment from wroom.\n\t */\n\twroomTelemetryID: FrameworkWroomTelemetryID;\n\n\t/**\n\t * A link to the Prismic documentation for the framework\n\t */\n\tprismicDocumentation: string;\n\n\t/**\n\t * Package name of the adapter responsible for this framework\n\t */\n\tadapterName: string;\n\n\t/**\n\t * A package name/semver range map defining framework compatibility\n\t * requirements.\n\t *\n\t * Project should match all entries to be considered compatible.\n\t */\n\tcompatibility: Record<string, string>;\n\n\t/**\n\t * A package name/semver range map defining development dependencies to be\n\t * installed. Typically Slice Machine and the framework's adapter.\n\t *\n\t * @remarks\n\t * Dependencies required to work with the framework (e.g. `@prismicio/next`\n\t * for Next.js) should not be defined here. Those are to be defined by the\n\t * adapter.\n\t */\n\tdevDependencies: Record<string, string>;\n};\n\nconst prereleaseComponents = semver.prerelease(pkgVersion);\nlet npmDistributionTag;\nif (\n\tprereleaseComponents !== null &&\n\tprereleaseComponents.length >= 2 &&\n\tprocess.env.NODE_ENV !== \"test\"\n) {\n\tconst prereleaseIdentifier = prereleaseComponents.slice(0, -1).join(\".\");\n\tnpmDistributionTag = prereleaseIdentifier;\n} else {\n\tnpmDistributionTag = \"latest\";\n}\n\nconst DEFAULT_DEV_DEPENDENCIES: Record<string, string> = {\n\t\"slice-machine-ui\": npmDistributionTag,\n};\n\n/**\n * Frameworks we support, orders shouldn't matter much but is respected (the\n * higher it is the more priority it has in case multiple matches)\n */\nexport const FRAMEWORKS: Record<string, Framework> = {\n\t\"nuxt-2\": {\n\t\tname: \"Nuxt 2\",\n\t\tsliceMachineTelemetryID: \"nuxt-2\",\n\t\twroomTelemetryID: \"nuxt\",\n\t\tprismicDocumentation: \"https://prismic.dev/init/nuxt-2\",\n\t\tadapterName: \"@slicemachine/adapter-nuxt2\",\n\t\tcompatibility: {\n\t\t\tnuxt: \"^2.0.0\",\n\t\t},\n\t\tdevDependencies: {\n\t\t\t...DEFAULT_DEV_DEPENDENCIES,\n\t\t\t\"@slicemachine/adapter-nuxt2\": npmDistributionTag,\n\t\t},\n\t},\n\t\"nuxt-3\": {\n\t\tname: \"Nuxt 3\",\n\t\tsliceMachineTelemetryID: \"nuxt-3\",\n\t\twroomTelemetryID: \"nuxt\",\n\t\tprismicDocumentation: \"https://prismic.dev/init/nuxt-3\",\n\t\tadapterName: \"@slicemachine/adapter-nuxt\",\n\t\tcompatibility: {\n\t\t\tnuxt: \"^3.0.0\",\n\t\t},\n\t\tdevDependencies: {\n\t\t\t...DEFAULT_DEV_DEPENDENCIES,\n\t\t\t\"@slicemachine/adapter-nuxt\": npmDistributionTag,\n\t\t},\n\t},\n\tnext: {\n\t\tname: \"Next.js\",\n\t\tsliceMachineTelemetryID: \"next\",\n\t\twroomTelemetryID: \"next\",\n\t\tprismicDocumentation: \"https://prismic.dev/init/next\",\n\t\tadapterName: \"@slicemachine/adapter-next\",\n\t\tcompatibility: {\n\t\t\tnext: \">=11.0.0\",\n\t\t},\n\t\tdevDependencies: {\n\t\t\t...DEFAULT_DEV_DEPENDENCIES,\n\t\t\t\"@slicemachine/adapter-next\": npmDistributionTag,\n\t\t},\n\t},\n\t\"sveltekit-1\": {\n\t\tname: \"SvelteKit\",\n\t\tsliceMachineTelemetryID: \"sveltekit-1\",\n\t\twroomTelemetryID: \"sveltekit\",\n\t\tprismicDocumentation: \"https://prismic.dev/init/sveltekit-1\",\n\t\tadapterName: \"@slicemachine/adapter-sveltekit\",\n\t\tcompatibility: {\n\t\t\t\"@sveltejs/kit\": \"^1.0.0\",\n\t\t},\n\t\tdevDependencies: {\n\t\t\t...DEFAULT_DEV_DEPENDENCIES,\n\t\t\t\"@slicemachine/adapter-sveltekit\": npmDistributionTag,\n\t\t},\n\t},\n\t\"sveltekit-2\": {\n\t\tname: \"SvelteKit\",\n\t\tsliceMachineTelemetryID: \"sveltekit-2\",\n\t\twroomTelemetryID: \"sveltekit\",\n\t\tprismicDocumentation: \"https://prismic.dev/init/sveltekit-2\",\n\t\tadapterName: \"@slicemachine/adapter-sveltekit\",\n\t\tcompatibility: {\n\t\t\t\"@sveltejs/kit\": \"^2.0.0\",\n\t\t},\n\t\tdevDependencies: {\n\t\t\t...DEFAULT_DEV_DEPENDENCIES,\n\t\t\t\"@slicemachine/adapter-sveltekit\": npmDistributionTag,\n\t\t},\n\t},\n} as const;\n\n/**\n * Universal package used when framework is not supported.\n */\nexport const UNIVERSAL: Framework = {\n\tname: \"universal (no framework)\",\n\tsliceMachineTelemetryID: \"universal\",\n\twroomTelemetryID: \"other\",\n\tprismicDocumentation: \"https://prismic.dev/init/universal\",\n\tadapterName: \"@slicemachine/adapter-universal\",\n\tcompatibility: {},\n\tdevDependencies: {\n\t\t...DEFAULT_DEV_DEPENDENCIES,\n\t\t\"@slicemachine/adapter-universal\": npmDistributionTag,\n\t},\n};\n\nexport const detectFramework = async (cwd: string): Promise<Framework> => {\n\tconst path = join(cwd, \"package.json\");\n\n\tlet allDependencies: Record<string, string>;\n\ttry {\n\t\tconst pkg = JSON.parse(await readFile(path, \"utf-8\"));\n\n\t\tallDependencies = {\n\t\t\t...pkg.dependencies,\n\t\t\t...pkg.devDependencies,\n\t\t};\n\t} catch (error) {\n\t\tthrow new Error(\n\t\t\t`Failed to read project's \\`package.json\\` at \\`${path}\\``,\n\t\t\t{ cause: error },\n\t\t);\n\t}\n\n\treturn (\n\t\tObject.values(FRAMEWORKS).find((framework) => {\n\t\t\treturn Object.entries(framework.compatibility).every(([pkg, range]) => {\n\t\t\t\tif (pkg in allDependencies) {\n\t\t\t\t\ttry {\n\t\t\t\t\t\t// Determine lowest version possibly in use\n\t\t\t\t\t\tconst minimumVersion = semver.minVersion(allDependencies[pkg]);\n\n\t\t\t\t\t\t// eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n\t\t\t\t\t\treturn semver.satisfies(minimumVersion!, range);\n\t\t\t\t\t} catch (error) {\n\t\t\t\t\t\t// We assume unconventional tags, `latest`, `beta`, `dev` matches the framework\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn false;\n\t\t\t});\n\t\t}) || UNIVERSAL\n\t);\n};\n"],"names":["pkgVersion"],"mappings":";;;;AA4DA,MAAM,uBAAuB,OAAO,WAAWA,OAAU;AACzD,IAAI;AACJ,IACC,yBAAyB,QACzB,qBAAqB,UAAU,KAC/B,QAAQ,IAAI,aAAa,QACxB;AACD,QAAM,uBAAuB,qBAAqB,MAAM,GAAG,EAAE,EAAE,KAAK,GAAG;AAClD,uBAAA;AACrB,OAAM;AACe,uBAAA;AACrB;AAED,MAAM,2BAAmD;AAAA,EACxD,oBAAoB;;AAOd,MAAM,aAAwC;AAAA,EACpD,UAAU;AAAA,IACT,MAAM;AAAA,IACN,yBAAyB;AAAA,IACzB,kBAAkB;AAAA,IAClB,sBAAsB;AAAA,IACtB,aAAa;AAAA,IACb,eAAe;AAAA,MACd,MAAM;AAAA,IACN;AAAA,IACD,iBAAiB;AAAA,MAChB,GAAG;AAAA,MACH,+BAA+B;AAAA,IAC/B;AAAA,EACD;AAAA,EACD,UAAU;AAAA,IACT,MAAM;AAAA,IACN,yBAAyB;AAAA,IACzB,kBAAkB;AAAA,IAClB,sBAAsB;AAAA,IACtB,aAAa;AAAA,IACb,eAAe;AAAA,MACd,MAAM;AAAA,IACN;AAAA,IACD,iBAAiB;AAAA,MAChB,GAAG;AAAA,MACH,8BAA8B;AAAA,IAC9B;AAAA,EACD;AAAA,EACD,MAAM;AAAA,IACL,MAAM;AAAA,IACN,yBAAyB;AAAA,IACzB,kBAAkB;AAAA,IAClB,sBAAsB;AAAA,IACtB,aAAa;AAAA,IACb,eAAe;AAAA,MACd,MAAM;AAAA,IACN;AAAA,IACD,iBAAiB;AAAA,MAChB,GAAG;AAAA,MACH,8BAA8B;AAAA,IAC9B;AAAA,EACD;AAAA,EACD,eAAe;AAAA,IACd,MAAM;AAAA,IACN,yBAAyB;AAAA,IACzB,kBAAkB;AAAA,IAClB,sBAAsB;AAAA,IACtB,aAAa;AAAA,IACb,eAAe;AAAA,MACd,iBAAiB;AAAA,IACjB;AAAA,IACD,iBAAiB;AAAA,MAChB,GAAG;AAAA,MACH,mCAAmC;AAAA,IACnC;AAAA,EACD;AAAA,EACD,eAAe;AAAA,IACd,MAAM;AAAA,IACN,yBAAyB;AAAA,IACzB,kBAAkB;AAAA,IAClB,sBAAsB;AAAA,IACtB,aAAa;AAAA,IACb,eAAe;AAAA,MACd,iBAAiB;AAAA,IACjB;AAAA,IACD,iBAAiB;AAAA,MAChB,GAAG;AAAA,MACH,mCAAmC;AAAA,IACnC;AAAA,EACD;;AAMK,MAAM,YAAuB;AAAA,EACnC,MAAM;AAAA,EACN,yBAAyB;AAAA,EACzB,kBAAkB;AAAA,EAClB,sBAAsB;AAAA,EACtB,aAAa;AAAA,EACb,eAAe,CAAE;AAAA,EACjB,iBAAiB;AAAA,IAChB,GAAG;AAAA,IACH,mCAAmC;AAAA,EACnC;;AAGW,MAAA,kBAAkB,OAAO,QAAmC;AAClE,QAAA,OAAO,KAAK,KAAK,cAAc;AAEjC,MAAA;AACA,MAAA;AACH,UAAM,MAAM,KAAK,MAAM,MAAM,SAAS,MAAM,OAAO,CAAC;AAElC,sBAAA;AAAA,MACjB,GAAG,IAAI;AAAA,MACP,GAAG,IAAI;AAAA,IAAA;AAAA,WAEA;AACR,UAAM,IAAI,MACT,kDAAkD,UAClD,EAAE,OAAO,OAAO;AAAA,EAEjB;AAED,SACC,OAAO,OAAO,UAAU,EAAE,KAAK,CAAC,cAAa;AACrC,WAAA,OAAO,QAAQ,UAAU,aAAa,EAAE,MAAM,CAAC,CAAC,KAAK,KAAK,MAAK;AACrE,UAAI,OAAO,iBAAiB;AACvB,YAAA;AAEH,gBAAM,iBAAiB,OAAO,WAAW,gBAAgB,GAAG,CAAC;AAGtD,iBAAA,OAAO,UAAU,gBAAiB,KAAK;AAAA,iBACtC;AAED,iBAAA;AAAA,QACP;AAAA,MACD;AAEM,aAAA;AAAA,IAAA,CACP;AAAA,EACD,CAAA,KAAK;AAER;"}
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
3
  const Sentry = require("@sentry/node");
4
- const semver = require("semver");
4
+ const manager = require("@slicemachine/manager");
5
5
  const constants = require("../constants.cjs");
6
6
  const checkIsSentryEnabled = require("./checkIsSentryEnabled.cjs");
7
7
  const _package = require("../packages/init/package.json.cjs");
@@ -26,11 +26,11 @@ function setupSentry() {
26
26
  if (!checkIsSentryEnabled.checkIsSentryEnabled()) {
27
27
  return;
28
28
  }
29
- const isStableVersion = semver.prerelease(_package.version) === null && semver.lte("0.1.0", _package.version);
29
+ const { environment, release } = manager.getEnvironmentInfo(_package);
30
30
  Sentry__namespace.init({
31
31
  dsn: constants.SENTRY_EXPRESS_DSN,
32
- release: _package.version,
33
- environment: isStableVersion ? "production" : "alpha",
32
+ release,
33
+ environment,
34
34
  // Increase the default truncation length of 250 to 2500 (x10)
35
35
  // to have enough details in Sentry
36
36
  maxValueLength: 2500
@@ -1 +1 @@
1
- {"version":3,"file":"setupSentry.cjs","sources":["../../../src/lib/setupSentry.ts"],"sourcesContent":["import * as Sentry from \"@sentry/node\";\nimport semver from \"semver\";\n\nimport { SENTRY_EXPRESS_DSN } from \"../constants\";\nimport { checkIsSentryEnabled } from \"./checkIsSentryEnabled\";\nimport { version } from \"../../package.json\";\n\nexport function setupSentry(): void {\n\tif (!checkIsSentryEnabled()) {\n\t\treturn;\n\t}\n\n\tconst isStableVersion =\n\t\tsemver.prerelease(version) === null && semver.lte(\"0.1.0\", version);\n\n\tSentry.init({\n\t\tdsn: SENTRY_EXPRESS_DSN,\n\t\trelease: version,\n\t\tenvironment: isStableVersion\n\t\t\t? import.meta.env.MODE || \"production\"\n\t\t\t: \"alpha\",\n\t\t// Increase the default truncation length of 250 to 2500 (x10)\n\t\t// to have enough details in Sentry\n\t\tmaxValueLength: 2_500,\n\t});\n}\n"],"names":["checkIsSentryEnabled","version","Sentry","SENTRY_EXPRESS_DSN"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;SAOgB,cAAW;AACtB,MAAA,CAACA,6CAAwB;AAC5B;AAAA,EACA;AAEK,QAAA,kBACL,OAAO,WAAWC,gBAAO,MAAM,QAAQ,OAAO,IAAI,SAASA,SAAAA,OAAO;AAEnEC,oBAAO,KAAK;AAAA,IACX,KAAKC,UAAA;AAAA,IACL,SAASF,SAAA;AAAA,IACT,aAAa,kBACV,eACA;AAAA;AAAA;AAAA,IAGH,gBAAgB;AAAA,EAAA,CAChB;AACF;;"}
1
+ {"version":3,"file":"setupSentry.cjs","sources":["../../../src/lib/setupSentry.ts"],"sourcesContent":["import * as Sentry from \"@sentry/node\";\nimport { getEnvironmentInfo } from \"@slicemachine/manager\";\n\nimport { SENTRY_EXPRESS_DSN } from \"../constants\";\nimport { checkIsSentryEnabled } from \"./checkIsSentryEnabled\";\nimport * as pkg from \"../../package.json\";\n\nexport function setupSentry(): void {\n\tif (!checkIsSentryEnabled()) {\n\t\treturn;\n\t}\n\n\tconst { environment, release } = getEnvironmentInfo(pkg);\n\n\tSentry.init({\n\t\tdsn: SENTRY_EXPRESS_DSN,\n\t\trelease,\n\t\tenvironment,\n\t\t// Increase the default truncation length of 250 to 2500 (x10)\n\t\t// to have enough details in Sentry\n\t\tmaxValueLength: 2_500,\n\t});\n}\n"],"names":["checkIsSentryEnabled","getEnvironmentInfo","pkg","Sentry","SENTRY_EXPRESS_DSN"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;SAOgB,cAAW;AACtB,MAAA,CAACA,6CAAwB;AAC5B;AAAA,EACA;AAED,QAAM,EAAE,aAAa,QAAO,IAAKC,2BAAmBC,QAAG;AAEvDC,oBAAO,KAAK;AAAA,IACX,KAAKC,UAAA;AAAA,IACL;AAAA,IACA;AAAA;AAAA;AAAA,IAGA,gBAAgB;AAAA,EAAA,CAChB;AACF;;"}
@@ -1,17 +1,17 @@
1
1
  import * as Sentry from "@sentry/node";
2
- import semver from "semver";
2
+ import { getEnvironmentInfo } from "@slicemachine/manager";
3
3
  import { SENTRY_EXPRESS_DSN } from "../constants.js";
4
4
  import { checkIsSentryEnabled } from "./checkIsSentryEnabled.js";
5
- import { version } from "../packages/init/package.json.js";
5
+ import * as _package from "../packages/init/package.json.js";
6
6
  function setupSentry() {
7
7
  if (!checkIsSentryEnabled()) {
8
8
  return;
9
9
  }
10
- const isStableVersion = semver.prerelease(version) === null && semver.lte("0.1.0", version);
10
+ const { environment, release } = getEnvironmentInfo(_package);
11
11
  Sentry.init({
12
12
  dsn: SENTRY_EXPRESS_DSN,
13
- release: version,
14
- environment: isStableVersion ? "production" : "alpha",
13
+ release,
14
+ environment,
15
15
  // Increase the default truncation length of 250 to 2500 (x10)
16
16
  // to have enough details in Sentry
17
17
  maxValueLength: 2500
@@ -1 +1 @@
1
- {"version":3,"file":"setupSentry.js","sources":["../../../src/lib/setupSentry.ts"],"sourcesContent":["import * as Sentry from \"@sentry/node\";\nimport semver from \"semver\";\n\nimport { SENTRY_EXPRESS_DSN } from \"../constants\";\nimport { checkIsSentryEnabled } from \"./checkIsSentryEnabled\";\nimport { version } from \"../../package.json\";\n\nexport function setupSentry(): void {\n\tif (!checkIsSentryEnabled()) {\n\t\treturn;\n\t}\n\n\tconst isStableVersion =\n\t\tsemver.prerelease(version) === null && semver.lte(\"0.1.0\", version);\n\n\tSentry.init({\n\t\tdsn: SENTRY_EXPRESS_DSN,\n\t\trelease: version,\n\t\tenvironment: isStableVersion\n\t\t\t? import.meta.env.MODE || \"production\"\n\t\t\t: \"alpha\",\n\t\t// Increase the default truncation length of 250 to 2500 (x10)\n\t\t// to have enough details in Sentry\n\t\tmaxValueLength: 2_500,\n\t});\n}\n"],"names":[],"mappings":";;;;;SAOgB,cAAW;AACtB,MAAA,CAAC,wBAAwB;AAC5B;AAAA,EACA;AAEK,QAAA,kBACL,OAAO,WAAW,OAAO,MAAM,QAAQ,OAAO,IAAI,SAAS,OAAO;AAEnE,SAAO,KAAK;AAAA,IACX,KAAK;AAAA,IACL,SAAS;AAAA,IACT,aAAa,kBACV,eACA;AAAA;AAAA;AAAA,IAGH,gBAAgB;AAAA,EAAA,CAChB;AACF;"}
1
+ {"version":3,"file":"setupSentry.js","sources":["../../../src/lib/setupSentry.ts"],"sourcesContent":["import * as Sentry from \"@sentry/node\";\nimport { getEnvironmentInfo } from \"@slicemachine/manager\";\n\nimport { SENTRY_EXPRESS_DSN } from \"../constants\";\nimport { checkIsSentryEnabled } from \"./checkIsSentryEnabled\";\nimport * as pkg from \"../../package.json\";\n\nexport function setupSentry(): void {\n\tif (!checkIsSentryEnabled()) {\n\t\treturn;\n\t}\n\n\tconst { environment, release } = getEnvironmentInfo(pkg);\n\n\tSentry.init({\n\t\tdsn: SENTRY_EXPRESS_DSN,\n\t\trelease,\n\t\tenvironment,\n\t\t// Increase the default truncation length of 250 to 2500 (x10)\n\t\t// to have enough details in Sentry\n\t\tmaxValueLength: 2_500,\n\t});\n}\n"],"names":["pkg"],"mappings":";;;;;SAOgB,cAAW;AACtB,MAAA,CAAC,wBAAwB;AAC5B;AAAA,EACA;AAED,QAAM,EAAE,aAAa,QAAO,IAAK,mBAAmBA,QAAG;AAEvD,SAAO,KAAK;AAAA,IACX,KAAK;AAAA,IACL;AAAA,IACA;AAAA;AAAA;AAAA,IAGA,gBAAgB;AAAA,EAAA,CAChB;AACF;"}
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
3
3
  const name = "@slicemachine/init";
4
- const version = "2.9.10-alpha.dev-new-release-process.1";
4
+ const version = "2.9.10-alpha.dev-new-release-process.3";
5
5
  const description = "Init Prismic Slice Machine in your project";
6
6
  const keywords = [
7
7
  "typescript",
@@ -1,5 +1,5 @@
1
1
  const name = "@slicemachine/init";
2
- const version = "2.9.10-alpha.dev-new-release-process.1";
2
+ const version = "2.9.10-alpha.dev-new-release-process.3";
3
3
  const description = "Init Prismic Slice Machine in your project";
4
4
  const keywords = [
5
5
  "typescript",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@slicemachine/init",
3
- "version": "2.9.10-alpha.dev-new-release-process.1",
3
+ "version": "2.9.10-alpha.dev-new-release-process.3",
4
4
  "description": "Init Prismic Slice Machine in your project",
5
5
  "keywords": [
6
6
  "typescript",
@@ -54,7 +54,7 @@
54
54
  "@antfu/ni": "^0.20.0",
55
55
  "@lihbr/listr-update-renderer": "^0.5.3",
56
56
  "@sentry/node": "^7.70.0",
57
- "@slicemachine/manager": "0.17.6-alpha.dev-new-release-process.1",
57
+ "@slicemachine/manager": "0.17.6-alpha.dev-new-release-process.3",
58
58
  "chalk": "^4.1.2",
59
59
  "giget": "^1.1.2",
60
60
  "globby": "^13.1.3",
@@ -68,7 +68,7 @@
68
68
  },
69
69
  "devDependencies": {
70
70
  "@size-limit/preset-small-lib": "8.2.4",
71
- "@slicemachine/plugin-kit": "0.4.32-alpha.dev-new-release-process.1",
71
+ "@slicemachine/plugin-kit": "0.4.32-alpha.dev-new-release-process.3",
72
72
  "@types/listr": "0.14.4",
73
73
  "@types/prompts": "2.4.3",
74
74
  "@types/semver": "7.3.13",
@@ -137,7 +137,13 @@ export class SliceMachineInitProcess {
137
137
  appName: pkg.name,
138
138
  appVersion: pkg.version,
139
139
  });
140
- await setupSentry();
140
+ try {
141
+ await setupSentry();
142
+ } catch (error) {
143
+ // noop - We don't want to stop the user from using Slice Machine
144
+ // because of failed tracking set up. We probably couldn't determine the
145
+ // Sentry environment.
146
+ }
141
147
  await this.manager.telemetry.track({
142
148
  event: "command:init:start",
143
149
  repository: this.options.repository,
@@ -58,11 +58,21 @@ export type Framework = {
58
58
  devDependencies: Record<string, string>;
59
59
  };
60
60
 
61
- const isPrerelease =
62
- semver.prerelease(pkgVersion) !== null && process.env.NODE_ENV !== "test";
61
+ const prereleaseComponents = semver.prerelease(pkgVersion);
62
+ let npmDistributionTag;
63
+ if (
64
+ prereleaseComponents !== null &&
65
+ prereleaseComponents.length >= 2 &&
66
+ process.env.NODE_ENV !== "test"
67
+ ) {
68
+ const prereleaseIdentifier = prereleaseComponents.slice(0, -1).join(".");
69
+ npmDistributionTag = prereleaseIdentifier;
70
+ } else {
71
+ npmDistributionTag = "latest";
72
+ }
63
73
 
64
74
  const DEFAULT_DEV_DEPENDENCIES: Record<string, string> = {
65
- "slice-machine-ui": isPrerelease ? "alpha" : "latest",
75
+ "slice-machine-ui": npmDistributionTag,
66
76
  };
67
77
 
68
78
  /**
@@ -81,7 +91,7 @@ export const FRAMEWORKS: Record<string, Framework> = {
81
91
  },
82
92
  devDependencies: {
83
93
  ...DEFAULT_DEV_DEPENDENCIES,
84
- "@slicemachine/adapter-nuxt2": isPrerelease ? "alpha" : "latest",
94
+ "@slicemachine/adapter-nuxt2": npmDistributionTag,
85
95
  },
86
96
  },
87
97
  "nuxt-3": {
@@ -95,7 +105,7 @@ export const FRAMEWORKS: Record<string, Framework> = {
95
105
  },
96
106
  devDependencies: {
97
107
  ...DEFAULT_DEV_DEPENDENCIES,
98
- "@slicemachine/adapter-nuxt": isPrerelease ? "alpha" : "latest",
108
+ "@slicemachine/adapter-nuxt": npmDistributionTag,
99
109
  },
100
110
  },
101
111
  next: {
@@ -109,7 +119,7 @@ export const FRAMEWORKS: Record<string, Framework> = {
109
119
  },
110
120
  devDependencies: {
111
121
  ...DEFAULT_DEV_DEPENDENCIES,
112
- "@slicemachine/adapter-next": isPrerelease ? "alpha" : "latest",
122
+ "@slicemachine/adapter-next": npmDistributionTag,
113
123
  },
114
124
  },
115
125
  "sveltekit-1": {
@@ -123,7 +133,7 @@ export const FRAMEWORKS: Record<string, Framework> = {
123
133
  },
124
134
  devDependencies: {
125
135
  ...DEFAULT_DEV_DEPENDENCIES,
126
- "@slicemachine/adapter-sveltekit": isPrerelease ? "alpha" : "latest",
136
+ "@slicemachine/adapter-sveltekit": npmDistributionTag,
127
137
  },
128
138
  },
129
139
  "sveltekit-2": {
@@ -137,7 +147,7 @@ export const FRAMEWORKS: Record<string, Framework> = {
137
147
  },
138
148
  devDependencies: {
139
149
  ...DEFAULT_DEV_DEPENDENCIES,
140
- "@slicemachine/adapter-sveltekit": isPrerelease ? "alpha" : "latest",
150
+ "@slicemachine/adapter-sveltekit": npmDistributionTag,
141
151
  },
142
152
  },
143
153
  } as const;
@@ -154,7 +164,7 @@ export const UNIVERSAL: Framework = {
154
164
  compatibility: {},
155
165
  devDependencies: {
156
166
  ...DEFAULT_DEV_DEPENDENCIES,
157
- "@slicemachine/adapter-universal": isPrerelease ? "alpha" : "latest",
167
+ "@slicemachine/adapter-universal": npmDistributionTag,
158
168
  },
159
169
  };
160
170
 
@@ -1,24 +1,21 @@
1
1
  import * as Sentry from "@sentry/node";
2
- import semver from "semver";
2
+ import { getEnvironmentInfo } from "@slicemachine/manager";
3
3
 
4
4
  import { SENTRY_EXPRESS_DSN } from "../constants";
5
5
  import { checkIsSentryEnabled } from "./checkIsSentryEnabled";
6
- import { version } from "../../package.json";
6
+ import * as pkg from "../../package.json";
7
7
 
8
8
  export function setupSentry(): void {
9
9
  if (!checkIsSentryEnabled()) {
10
10
  return;
11
11
  }
12
12
 
13
- const isStableVersion =
14
- semver.prerelease(version) === null && semver.lte("0.1.0", version);
13
+ const { environment, release } = getEnvironmentInfo(pkg);
15
14
 
16
15
  Sentry.init({
17
16
  dsn: SENTRY_EXPRESS_DSN,
18
- release: version,
19
- environment: isStableVersion
20
- ? import.meta.env.MODE || "production"
21
- : "alpha",
17
+ release,
18
+ environment,
22
19
  // Increase the default truncation length of 250 to 2500 (x10)
23
20
  // to have enough details in Sentry
24
21
  maxValueLength: 2_500,