@slicemachine/init 2.9.21-beta.9 → 2.10.1-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 (119) hide show
  1. package/dist/SliceMachineInitProcess.cjs.map +1 -1
  2. package/dist/SliceMachineInitProcess.js.map +1 -1
  3. package/dist/_node_modules/@babel/code-frame/lib/index.cjs +2 -2
  4. package/dist/_node_modules/@babel/code-frame/lib/index.js +2 -2
  5. package/dist/_node_modules/@babel/helper-validator-identifier/lib/index.cjs +1 -1
  6. package/dist/_node_modules/@babel/helper-validator-identifier/lib/index.js +1 -1
  7. package/dist/_node_modules/@babel/highlight/lib/index.cjs +3 -3
  8. package/dist/_node_modules/@babel/highlight/lib/index.js +3 -3
  9. package/dist/_node_modules/@nodelib/fs.scandir/out/providers/async.cjs +1 -1
  10. package/dist/_node_modules/@nodelib/fs.scandir/out/providers/async.js +1 -1
  11. package/dist/_node_modules/@nodelib/fs.scandir/out/providers/sync.cjs +1 -1
  12. package/dist/_node_modules/@nodelib/fs.scandir/out/providers/sync.js +1 -1
  13. package/dist/_node_modules/@nodelib/fs.scandir/out/settings.cjs +1 -1
  14. package/dist/_node_modules/@nodelib/fs.scandir/out/settings.js +1 -1
  15. package/dist/_node_modules/@nodelib/fs.stat/out/index.cjs +1 -1
  16. package/dist/_node_modules/@nodelib/fs.stat/out/index.js +1 -1
  17. package/dist/_node_modules/@nodelib/fs.walk/out/index.cjs +1 -1
  18. package/dist/_node_modules/@nodelib/fs.walk/out/index.js +1 -1
  19. package/dist/_node_modules/cross-spawn/index.cjs +1 -1
  20. package/dist/_node_modules/cross-spawn/index.js +1 -1
  21. package/dist/_node_modules/dir-glob/index.cjs +2 -2
  22. package/dist/_node_modules/dir-glob/index.js +2 -2
  23. package/dist/_node_modules/fast-glob/out/index.cjs +1 -1
  24. package/dist/_node_modules/fast-glob/out/index.js +1 -1
  25. package/dist/_node_modules/fast-glob/out/managers/tasks.cjs +1 -1
  26. package/dist/_node_modules/fast-glob/out/managers/tasks.js +1 -1
  27. package/dist/_node_modules/fast-glob/out/providers/filters/deep.cjs +1 -1
  28. package/dist/_node_modules/fast-glob/out/providers/filters/deep.js +1 -1
  29. package/dist/_node_modules/fast-glob/out/providers/filters/entry.cjs +1 -1
  30. package/dist/_node_modules/fast-glob/out/providers/filters/entry.js +1 -1
  31. package/dist/_node_modules/fast-glob/out/providers/filters/error.cjs +1 -1
  32. package/dist/_node_modules/fast-glob/out/providers/filters/error.js +1 -1
  33. package/dist/_node_modules/fast-glob/out/providers/matchers/matcher.cjs +1 -1
  34. package/dist/_node_modules/fast-glob/out/providers/matchers/matcher.js +1 -1
  35. package/dist/_node_modules/fast-glob/out/providers/transformers/entry.cjs +1 -1
  36. package/dist/_node_modules/fast-glob/out/providers/transformers/entry.js +1 -1
  37. package/dist/_node_modules/fast-glob/out/readers/async.cjs +1 -1
  38. package/dist/_node_modules/fast-glob/out/readers/async.js +1 -1
  39. package/dist/_node_modules/fast-glob/out/readers/reader.cjs +2 -2
  40. package/dist/_node_modules/fast-glob/out/readers/reader.js +2 -2
  41. package/dist/_node_modules/fast-glob/out/readers/stream.cjs +2 -2
  42. package/dist/_node_modules/fast-glob/out/readers/stream.js +2 -2
  43. package/dist/_node_modules/fast-glob/out/readers/sync.cjs +2 -2
  44. package/dist/_node_modules/fast-glob/out/readers/sync.js +2 -2
  45. package/dist/_node_modules/fast-glob/out/utils/index.cjs +1 -1
  46. package/dist/_node_modules/fast-glob/out/utils/index.js +1 -1
  47. package/dist/_node_modules/get-stream/index.cjs +1 -1
  48. package/dist/_node_modules/get-stream/index.js +1 -1
  49. package/dist/_node_modules/js-tokens/index.cjs +1 -1
  50. package/dist/_node_modules/js-tokens/index.js +1 -1
  51. package/dist/_node_modules/lines-and-columns/build/index.cjs +1 -1
  52. package/dist/_node_modules/lines-and-columns/build/index.js +1 -1
  53. package/dist/_node_modules/map-obj/index.cjs +1 -1
  54. package/dist/_node_modules/map-obj/index.js +1 -1
  55. package/dist/_node_modules/meow/_node_modules/hosted-git-info/lib/index.cjs +1 -1
  56. package/dist/_node_modules/meow/_node_modules/hosted-git-info/lib/index.js +1 -1
  57. package/dist/_node_modules/meow/_node_modules/read-pkg/_node_modules/hosted-git-info/index.cjs +1 -1
  58. package/dist/_node_modules/meow/_node_modules/read-pkg/_node_modules/hosted-git-info/index.js +1 -1
  59. package/dist/_node_modules/parse-json/index.cjs +2 -2
  60. package/dist/_node_modules/parse-json/index.js +2 -2
  61. package/dist/_node_modules/path-key/index.cjs +1 -1
  62. package/dist/_node_modules/path-key/index.js +1 -1
  63. package/dist/_node_modules/path-type/index.cjs +1 -1
  64. package/dist/_node_modules/path-type/index.js +1 -1
  65. package/dist/_node_modules/signal-exit/index.cjs +1 -1
  66. package/dist/_node_modules/signal-exit/index.js +1 -1
  67. package/dist/_virtual/index10.cjs +2 -2
  68. package/dist/_virtual/index10.js +2 -2
  69. package/dist/_virtual/index11.cjs +2 -2
  70. package/dist/_virtual/index11.js +2 -2
  71. package/dist/_virtual/index12.cjs +2 -2
  72. package/dist/_virtual/index12.js +2 -2
  73. package/dist/_virtual/index13.cjs +2 -2
  74. package/dist/_virtual/index13.js +2 -2
  75. package/dist/_virtual/index15.cjs +2 -2
  76. package/dist/_virtual/index15.js +2 -2
  77. package/dist/_virtual/index16.cjs +2 -2
  78. package/dist/_virtual/index16.js +2 -2
  79. package/dist/_virtual/index17.cjs +2 -2
  80. package/dist/_virtual/index17.js +2 -2
  81. package/dist/_virtual/index18.cjs +2 -2
  82. package/dist/_virtual/index18.js +2 -2
  83. package/dist/_virtual/index19.cjs +2 -2
  84. package/dist/_virtual/index19.js +2 -2
  85. package/dist/_virtual/index3.cjs +2 -2
  86. package/dist/_virtual/index3.js +2 -2
  87. package/dist/_virtual/index4.cjs +2 -2
  88. package/dist/_virtual/index4.js +2 -2
  89. package/dist/_virtual/index5.cjs +2 -2
  90. package/dist/_virtual/index5.js +2 -2
  91. package/dist/_virtual/index6.cjs +2 -2
  92. package/dist/_virtual/index6.js +2 -2
  93. package/dist/_virtual/index7.cjs +2 -2
  94. package/dist/_virtual/index7.js +2 -2
  95. package/dist/_virtual/index8.cjs +2 -2
  96. package/dist/_virtual/index8.js +2 -2
  97. package/dist/_virtual/index9.cjs +2 -2
  98. package/dist/_virtual/index9.js +2 -2
  99. package/dist/cli.cjs.map +1 -1
  100. package/dist/cli.js.map +1 -1
  101. package/dist/lib/assertExists.cjs.map +1 -1
  102. package/dist/lib/assertExists.js.map +1 -1
  103. package/dist/lib/framework.cjs.map +1 -1
  104. package/dist/lib/framework.js.map +1 -1
  105. package/dist/lib/prompt.cjs.map +1 -1
  106. package/dist/lib/prompt.js.map +1 -1
  107. package/dist/lib/repositoryDomain.cjs.map +1 -1
  108. package/dist/lib/repositoryDomain.js.map +1 -1
  109. package/dist/lib/sentryErrorHandlers.cjs.map +1 -1
  110. package/dist/lib/sentryErrorHandlers.js.map +1 -1
  111. package/dist/lib/setupSentry.cjs.map +1 -1
  112. package/dist/lib/setupSentry.js.map +1 -1
  113. package/dist/lib/starters.cjs.map +1 -1
  114. package/dist/lib/starters.js.map +1 -1
  115. package/dist/lib/updateSentryContext.cjs.map +1 -1
  116. package/dist/lib/updateSentryContext.js.map +1 -1
  117. package/dist/packages/init/package.json.cjs +2 -2
  118. package/dist/packages/init/package.json.js +2 -2
  119. package/package.json +4 -4
@@ -1,5 +1,5 @@
1
- var dirGlob = { exports: {} };
1
+ var pathType = {};
2
2
  export {
3
- dirGlob as __module
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 pathType = {};
4
- exports.__exports = pathType;
3
+ var mapObj = { exports: {} };
4
+ exports.__module = mapObj;
5
5
  //# sourceMappingURL=index7.cjs.map
@@ -1,5 +1,5 @@
1
- var pathType = {};
1
+ var mapObj = { exports: {} };
2
2
  export {
3
- pathType 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 build = {};
4
- exports.__exports = build;
3
+ var signalExit = { exports: {} };
4
+ exports.__module = signalExit;
5
5
  //# sourceMappingURL=index8.cjs.map
@@ -1,5 +1,5 @@
1
- var build = {};
1
+ var signalExit = { exports: {} };
2
2
  export {
3
- build as __exports
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 lib = {};
4
- exports.__exports = lib;
3
+ var getStream = { exports: {} };
4
+ exports.__module = getStream;
5
5
  //# sourceMappingURL=index9.cjs.map
@@ -1,5 +1,5 @@
1
- var lib = {};
1
+ var getStream = { exports: {} };
2
2
  export {
3
- lib as __exports
3
+ getStream as __module
4
4
  };
5
5
  //# sourceMappingURL=index9.js.map
package/dist/cli.cjs.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.cjs","sources":["../../src/cli.ts"],"sourcesContent":["import meow from \"meow\";\n\nimport { name as pkgName, version as pkgVersion } from \"../package.json\";\nimport { createSliceMachineInitProcess } from \"./SliceMachineInitProcess\";\n\nconst cli = meow(\n\t`\nSlice Machine init CLI help\n\nDOCUMENTATION\n https://prismic.io/docs\n\nVERSION\n ${pkgName}@${pkgVersion}\n\nUSAGE\n $ npx @slicemachine/init\n\nOPTIONS\n --repository, -r Specify a Prismic repository to use\n --starter, -s Specify a starter to use\n --directory-name, -d Name of a new directory for the starter\n\n --no-push Don't push anything to Prismic\n --no-push-slices Don't push slices to Prismic\n --no-push-custom-types Don't push types to Prismic\n --no-push-documents Don't push documents to Prismic\n --no-start-slicemachine Don't run Slice Machine\n\n --help, -h Display CLI help\n --version, -v Display CLI version\n`,\n\t{\n\t\timportMeta: import.meta,\n\t\tflags: {\n\t\t\trepository: {\n\t\t\t\ttype: \"string\",\n\t\t\t\talias: \"r\",\n\t\t\t},\n\t\t\tstarter: {\n\t\t\t\ttype: \"string\",\n\t\t\t\talias: \"s\",\n\t\t\t},\n\t\t\tdirectoryName: {\n\t\t\t\ttype: \"string\",\n\t\t\t\talias: \"d\",\n\t\t\t},\n\t\t\tpush: {\n\t\t\t\ttype: \"boolean\",\n\t\t\t\tdefault: true,\n\t\t\t},\n\t\t\tpushSlices: {\n\t\t\t\ttype: \"boolean\",\n\t\t\t\tdefault: true,\n\t\t\t},\n\t\t\tpushCustomTypes: {\n\t\t\t\ttype: \"boolean\",\n\t\t\t\tdefault: true,\n\t\t\t},\n\t\t\tpushDocuments: {\n\t\t\t\ttype: \"boolean\",\n\t\t\t\tdefault: true,\n\t\t\t},\n\t\t\tstartSlicemachine: {\n\t\t\t\ttype: \"boolean\",\n\t\t\t\tdefault: true,\n\t\t\t},\n\t\t\thelp: {\n\t\t\t\ttype: \"boolean\",\n\t\t\t\talias: \"h\",\n\t\t\t\tdefault: false,\n\t\t\t},\n\t\t\tversion: {\n\t\t\t\ttype: \"boolean\",\n\t\t\t\talias: \"v\",\n\t\t\t\tdefault: false,\n\t\t\t},\n\t\t},\n\t\tdescription: false,\n\t\tautoHelp: false,\n\t\tautoVersion: false,\n\t\tallowUnknownFlags: false,\n\t},\n);\n\nif (cli.flags.help) {\n\tcli.showHelp();\n} else if (cli.flags.version) {\n\t// eslint-disable-next-line no-console\n\tconsole.log(`${pkgName}@${pkgVersion}`);\n\tprocess.exit(0);\n} else {\n\tconst initProcess = createSliceMachineInitProcess({\n\t\t...cli.flags,\n\t\tinput: cli.input,\n\t});\n\n\tinitProcess.run();\n}\n"],"names":["meow","pkgName","pkgVersion","createSliceMachineInitProcess"],"mappings":";;;;AAKA,MAAM,MAAMA,MACX;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAOGC,SAAW,QAAAC;;;;;;;;;;;;;;;;;;GAmBd;AAAA,EACC,YAAY,EAAA,KAAA,OAAA,aAAA,cAAA,QAAA,KAAA,EAAA,cAAA,UAAA,EAAA,OAAA,SAAA,iBAAA,SAAA,cAAA,OAAA,IAAA,IAAA,WAAA,SAAA,OAAA,EAAA,KAAA;AAAA,EACZ,OAAO;AAAA,IACN,YAAY;AAAA,MACX,MAAM;AAAA,MACN,OAAO;AAAA,IACP;AAAA,IACD,SAAS;AAAA,MACR,MAAM;AAAA,MACN,OAAO;AAAA,IACP;AAAA,IACD,eAAe;AAAA,MACd,MAAM;AAAA,MACN,OAAO;AAAA,IACP;AAAA,IACD,MAAM;AAAA,MACL,MAAM;AAAA,MACN,SAAS;AAAA,IACT;AAAA,IACD,YAAY;AAAA,MACX,MAAM;AAAA,MACN,SAAS;AAAA,IACT;AAAA,IACD,iBAAiB;AAAA,MAChB,MAAM;AAAA,MACN,SAAS;AAAA,IACT;AAAA,IACD,eAAe;AAAA,MACd,MAAM;AAAA,MACN,SAAS;AAAA,IACT;AAAA,IACD,mBAAmB;AAAA,MAClB,MAAM;AAAA,MACN,SAAS;AAAA,IACT;AAAA,IACD,MAAM;AAAA,MACL,MAAM;AAAA,MACN,OAAO;AAAA,MACP,SAAS;AAAA,IACT;AAAA,IACD,SAAS;AAAA,MACR,MAAM;AAAA,MACN,OAAO;AAAA,MACP,SAAS;AAAA,IACT;AAAA,EACD;AAAA,EACD,aAAa;AAAA,EACb,UAAU;AAAA,EACV,aAAa;AAAA,EACb,mBAAmB;AACnB,CAAA;AAGF,IAAI,IAAI,MAAM,MAAM;AACnB,MAAI,SAAQ;AACZ,WAAU,IAAI,MAAM,SAAS;AAErB,UAAA,IAAI,GAAGD,SAAAA,QAAWC,SAAAA,SAAY;AACtC,UAAQ,KAAK,CAAC;AACd,OAAM;AACN,QAAM,cAAcC,wBAAAA,8BAA8B;AAAA,IACjD,GAAG,IAAI;AAAA,IACP,OAAO,IAAI;AAAA,EAAA,CACX;AAED,cAAY,IAAG;AACf;"}
1
+ {"version":3,"file":"cli.cjs","sources":["../../src/cli.ts"],"sourcesContent":["import meow from \"meow\";\n\nimport { name as pkgName, version as pkgVersion } from \"../package.json\";\nimport { createSliceMachineInitProcess } from \"./SliceMachineInitProcess\";\n\nconst cli = meow(\n\t`\nSlice Machine init CLI help\n\nDOCUMENTATION\n https://prismic.io/docs\n\nVERSION\n ${pkgName}@${pkgVersion}\n\nUSAGE\n $ npx @slicemachine/init\n\nOPTIONS\n --repository, -r Specify a Prismic repository to use\n --starter, -s Specify a starter to use\n --directory-name, -d Name of a new directory for the starter\n\n --no-push Don't push anything to Prismic\n --no-push-slices Don't push slices to Prismic\n --no-push-custom-types Don't push types to Prismic\n --no-push-documents Don't push documents to Prismic\n --no-start-slicemachine Don't run Slice Machine\n\n --help, -h Display CLI help\n --version, -v Display CLI version\n`,\n\t{\n\t\timportMeta: import.meta,\n\t\tflags: {\n\t\t\trepository: {\n\t\t\t\ttype: \"string\",\n\t\t\t\talias: \"r\",\n\t\t\t},\n\t\t\tstarter: {\n\t\t\t\ttype: \"string\",\n\t\t\t\talias: \"s\",\n\t\t\t},\n\t\t\tdirectoryName: {\n\t\t\t\ttype: \"string\",\n\t\t\t\talias: \"d\",\n\t\t\t},\n\t\t\tpush: {\n\t\t\t\ttype: \"boolean\",\n\t\t\t\tdefault: true,\n\t\t\t},\n\t\t\tpushSlices: {\n\t\t\t\ttype: \"boolean\",\n\t\t\t\tdefault: true,\n\t\t\t},\n\t\t\tpushCustomTypes: {\n\t\t\t\ttype: \"boolean\",\n\t\t\t\tdefault: true,\n\t\t\t},\n\t\t\tpushDocuments: {\n\t\t\t\ttype: \"boolean\",\n\t\t\t\tdefault: true,\n\t\t\t},\n\t\t\tstartSlicemachine: {\n\t\t\t\ttype: \"boolean\",\n\t\t\t\tdefault: true,\n\t\t\t},\n\t\t\thelp: {\n\t\t\t\ttype: \"boolean\",\n\t\t\t\talias: \"h\",\n\t\t\t\tdefault: false,\n\t\t\t},\n\t\t\tversion: {\n\t\t\t\ttype: \"boolean\",\n\t\t\t\talias: \"v\",\n\t\t\t\tdefault: false,\n\t\t\t},\n\t\t},\n\t\tdescription: false,\n\t\tautoHelp: false,\n\t\tautoVersion: false,\n\t\tallowUnknownFlags: false,\n\t},\n);\n\nif (cli.flags.help) {\n\tcli.showHelp();\n} else if (cli.flags.version) {\n\t// eslint-disable-next-line no-console\n\tconsole.log(`${pkgName}@${pkgVersion}`);\n\tprocess.exit(0);\n} else {\n\tconst initProcess = createSliceMachineInitProcess({\n\t\t...cli.flags,\n\t\tinput: cli.input,\n\t});\n\n\tinitProcess.run();\n}\n"],"names":["meow","pkgName","pkgVersion","createSliceMachineInitProcess"],"mappings":";;;;AAKA,MAAM,MAAMA,MACX;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAOGC,SAAW,QAAAC;;;;;;;;;;;;;;;;;;GAmBd;AAAA,EACC,YAAY,EAAA,KAAA,OAAA,aAAA,cAAA,QAAA,KAAA,EAAA,cAAA,UAAA,EAAA,OAAA,SAAA,iBAAA,SAAA,cAAA,OAAA,IAAA,IAAA,WAAA,SAAA,OAAA,EAAA,KAAA;AAAA,EACZ,OAAO;AAAA,IACN,YAAY;AAAA,MACX,MAAM;AAAA,MACN,OAAO;AAAA,IACP;AAAA,IACD,SAAS;AAAA,MACR,MAAM;AAAA,MACN,OAAO;AAAA,IACP;AAAA,IACD,eAAe;AAAA,MACd,MAAM;AAAA,MACN,OAAO;AAAA,IACP;AAAA,IACD,MAAM;AAAA,MACL,MAAM;AAAA,MACN,SAAS;AAAA,IACT;AAAA,IACD,YAAY;AAAA,MACX,MAAM;AAAA,MACN,SAAS;AAAA,IACT;AAAA,IACD,iBAAiB;AAAA,MAChB,MAAM;AAAA,MACN,SAAS;AAAA,IACT;AAAA,IACD,eAAe;AAAA,MACd,MAAM;AAAA,MACN,SAAS;AAAA,IACT;AAAA,IACD,mBAAmB;AAAA,MAClB,MAAM;AAAA,MACN,SAAS;AAAA,IACT;AAAA,IACD,MAAM;AAAA,MACL,MAAM;AAAA,MACN,OAAO;AAAA,MACP,SAAS;AAAA,IACT;AAAA,IACD,SAAS;AAAA,MACR,MAAM;AAAA,MACN,OAAO;AAAA,MACP,SAAS;AAAA,IACT;AAAA,EACD;AAAA,EACD,aAAa;AAAA,EACb,UAAU;AAAA,EACV,aAAa;AAAA,EACb,mBAAmB;AACnB,CAAA;AAGF,IAAI,IAAI,MAAM,MAAM;AACnB,MAAI,SAAQ;AACb,WAAW,IAAI,MAAM,SAAS;AAErB,UAAA,IAAI,GAAGD,SAAAA,QAAWC,SAAAA,SAAY;AACtC,UAAQ,KAAK,CAAC;AACf,OAAO;AACN,QAAM,cAAcC,wBAAAA,8BAA8B;AAAA,IACjD,GAAG,IAAI;AAAA,IACP,OAAO,IAAI;AAAA,EAAA,CACX;AAED,cAAY,IAAG;AAChB;"}
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sources":["../../src/cli.ts"],"sourcesContent":["import meow from \"meow\";\n\nimport { name as pkgName, version as pkgVersion } from \"../package.json\";\nimport { createSliceMachineInitProcess } from \"./SliceMachineInitProcess\";\n\nconst cli = meow(\n\t`\nSlice Machine init CLI help\n\nDOCUMENTATION\n https://prismic.io/docs\n\nVERSION\n ${pkgName}@${pkgVersion}\n\nUSAGE\n $ npx @slicemachine/init\n\nOPTIONS\n --repository, -r Specify a Prismic repository to use\n --starter, -s Specify a starter to use\n --directory-name, -d Name of a new directory for the starter\n\n --no-push Don't push anything to Prismic\n --no-push-slices Don't push slices to Prismic\n --no-push-custom-types Don't push types to Prismic\n --no-push-documents Don't push documents to Prismic\n --no-start-slicemachine Don't run Slice Machine\n\n --help, -h Display CLI help\n --version, -v Display CLI version\n`,\n\t{\n\t\timportMeta: import.meta,\n\t\tflags: {\n\t\t\trepository: {\n\t\t\t\ttype: \"string\",\n\t\t\t\talias: \"r\",\n\t\t\t},\n\t\t\tstarter: {\n\t\t\t\ttype: \"string\",\n\t\t\t\talias: \"s\",\n\t\t\t},\n\t\t\tdirectoryName: {\n\t\t\t\ttype: \"string\",\n\t\t\t\talias: \"d\",\n\t\t\t},\n\t\t\tpush: {\n\t\t\t\ttype: \"boolean\",\n\t\t\t\tdefault: true,\n\t\t\t},\n\t\t\tpushSlices: {\n\t\t\t\ttype: \"boolean\",\n\t\t\t\tdefault: true,\n\t\t\t},\n\t\t\tpushCustomTypes: {\n\t\t\t\ttype: \"boolean\",\n\t\t\t\tdefault: true,\n\t\t\t},\n\t\t\tpushDocuments: {\n\t\t\t\ttype: \"boolean\",\n\t\t\t\tdefault: true,\n\t\t\t},\n\t\t\tstartSlicemachine: {\n\t\t\t\ttype: \"boolean\",\n\t\t\t\tdefault: true,\n\t\t\t},\n\t\t\thelp: {\n\t\t\t\ttype: \"boolean\",\n\t\t\t\talias: \"h\",\n\t\t\t\tdefault: false,\n\t\t\t},\n\t\t\tversion: {\n\t\t\t\ttype: \"boolean\",\n\t\t\t\talias: \"v\",\n\t\t\t\tdefault: false,\n\t\t\t},\n\t\t},\n\t\tdescription: false,\n\t\tautoHelp: false,\n\t\tautoVersion: false,\n\t\tallowUnknownFlags: false,\n\t},\n);\n\nif (cli.flags.help) {\n\tcli.showHelp();\n} else if (cli.flags.version) {\n\t// eslint-disable-next-line no-console\n\tconsole.log(`${pkgName}@${pkgVersion}`);\n\tprocess.exit(0);\n} else {\n\tconst initProcess = createSliceMachineInitProcess({\n\t\t...cli.flags,\n\t\tinput: cli.input,\n\t});\n\n\tinitProcess.run();\n}\n"],"names":["pkgName","pkgVersion"],"mappings":";;;AAKA,MAAM,MAAM,KACX;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAOGA,QAAWC;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,GAmBd;AAAA,EACC,YAAY;AAAA,EACZ,OAAO;AAAA,IACN,YAAY;AAAA,MACX,MAAM;AAAA,MACN,OAAO;AAAA,IACP;AAAA,IACD,SAAS;AAAA,MACR,MAAM;AAAA,MACN,OAAO;AAAA,IACP;AAAA,IACD,eAAe;AAAA,MACd,MAAM;AAAA,MACN,OAAO;AAAA,IACP;AAAA,IACD,MAAM;AAAA,MACL,MAAM;AAAA,MACN,SAAS;AAAA,IACT;AAAA,IACD,YAAY;AAAA,MACX,MAAM;AAAA,MACN,SAAS;AAAA,IACT;AAAA,IACD,iBAAiB;AAAA,MAChB,MAAM;AAAA,MACN,SAAS;AAAA,IACT;AAAA,IACD,eAAe;AAAA,MACd,MAAM;AAAA,MACN,SAAS;AAAA,IACT;AAAA,IACD,mBAAmB;AAAA,MAClB,MAAM;AAAA,MACN,SAAS;AAAA,IACT;AAAA,IACD,MAAM;AAAA,MACL,MAAM;AAAA,MACN,OAAO;AAAA,MACP,SAAS;AAAA,IACT;AAAA,IACD,SAAS;AAAA,MACR,MAAM;AAAA,MACN,OAAO;AAAA,MACP,SAAS;AAAA,IACT;AAAA,EACD;AAAA,EACD,aAAa;AAAA,EACb,UAAU;AAAA,EACV,aAAa;AAAA,EACb,mBAAmB;AACnB,CAAA;AAGF,IAAI,IAAI,MAAM,MAAM;AACnB,MAAI,SAAQ;AACZ,WAAU,IAAI,MAAM,SAAS;AAErB,UAAA,IAAI,GAAGD,QAAWC,SAAY;AACtC,UAAQ,KAAK,CAAC;AACd,OAAM;AACN,QAAM,cAAc,8BAA8B;AAAA,IACjD,GAAG,IAAI;AAAA,IACP,OAAO,IAAI;AAAA,EAAA,CACX;AAED,cAAY,IAAG;AACf;"}
1
+ {"version":3,"file":"cli.js","sources":["../../src/cli.ts"],"sourcesContent":["import meow from \"meow\";\n\nimport { name as pkgName, version as pkgVersion } from \"../package.json\";\nimport { createSliceMachineInitProcess } from \"./SliceMachineInitProcess\";\n\nconst cli = meow(\n\t`\nSlice Machine init CLI help\n\nDOCUMENTATION\n https://prismic.io/docs\n\nVERSION\n ${pkgName}@${pkgVersion}\n\nUSAGE\n $ npx @slicemachine/init\n\nOPTIONS\n --repository, -r Specify a Prismic repository to use\n --starter, -s Specify a starter to use\n --directory-name, -d Name of a new directory for the starter\n\n --no-push Don't push anything to Prismic\n --no-push-slices Don't push slices to Prismic\n --no-push-custom-types Don't push types to Prismic\n --no-push-documents Don't push documents to Prismic\n --no-start-slicemachine Don't run Slice Machine\n\n --help, -h Display CLI help\n --version, -v Display CLI version\n`,\n\t{\n\t\timportMeta: import.meta,\n\t\tflags: {\n\t\t\trepository: {\n\t\t\t\ttype: \"string\",\n\t\t\t\talias: \"r\",\n\t\t\t},\n\t\t\tstarter: {\n\t\t\t\ttype: \"string\",\n\t\t\t\talias: \"s\",\n\t\t\t},\n\t\t\tdirectoryName: {\n\t\t\t\ttype: \"string\",\n\t\t\t\talias: \"d\",\n\t\t\t},\n\t\t\tpush: {\n\t\t\t\ttype: \"boolean\",\n\t\t\t\tdefault: true,\n\t\t\t},\n\t\t\tpushSlices: {\n\t\t\t\ttype: \"boolean\",\n\t\t\t\tdefault: true,\n\t\t\t},\n\t\t\tpushCustomTypes: {\n\t\t\t\ttype: \"boolean\",\n\t\t\t\tdefault: true,\n\t\t\t},\n\t\t\tpushDocuments: {\n\t\t\t\ttype: \"boolean\",\n\t\t\t\tdefault: true,\n\t\t\t},\n\t\t\tstartSlicemachine: {\n\t\t\t\ttype: \"boolean\",\n\t\t\t\tdefault: true,\n\t\t\t},\n\t\t\thelp: {\n\t\t\t\ttype: \"boolean\",\n\t\t\t\talias: \"h\",\n\t\t\t\tdefault: false,\n\t\t\t},\n\t\t\tversion: {\n\t\t\t\ttype: \"boolean\",\n\t\t\t\talias: \"v\",\n\t\t\t\tdefault: false,\n\t\t\t},\n\t\t},\n\t\tdescription: false,\n\t\tautoHelp: false,\n\t\tautoVersion: false,\n\t\tallowUnknownFlags: false,\n\t},\n);\n\nif (cli.flags.help) {\n\tcli.showHelp();\n} else if (cli.flags.version) {\n\t// eslint-disable-next-line no-console\n\tconsole.log(`${pkgName}@${pkgVersion}`);\n\tprocess.exit(0);\n} else {\n\tconst initProcess = createSliceMachineInitProcess({\n\t\t...cli.flags,\n\t\tinput: cli.input,\n\t});\n\n\tinitProcess.run();\n}\n"],"names":["pkgName","pkgVersion"],"mappings":";;;AAKA,MAAM,MAAM,KACX;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAOGA,QAAWC;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,GAmBd;AAAA,EACC,YAAY;AAAA,EACZ,OAAO;AAAA,IACN,YAAY;AAAA,MACX,MAAM;AAAA,MACN,OAAO;AAAA,IACP;AAAA,IACD,SAAS;AAAA,MACR,MAAM;AAAA,MACN,OAAO;AAAA,IACP;AAAA,IACD,eAAe;AAAA,MACd,MAAM;AAAA,MACN,OAAO;AAAA,IACP;AAAA,IACD,MAAM;AAAA,MACL,MAAM;AAAA,MACN,SAAS;AAAA,IACT;AAAA,IACD,YAAY;AAAA,MACX,MAAM;AAAA,MACN,SAAS;AAAA,IACT;AAAA,IACD,iBAAiB;AAAA,MAChB,MAAM;AAAA,MACN,SAAS;AAAA,IACT;AAAA,IACD,eAAe;AAAA,MACd,MAAM;AAAA,MACN,SAAS;AAAA,IACT;AAAA,IACD,mBAAmB;AAAA,MAClB,MAAM;AAAA,MACN,SAAS;AAAA,IACT;AAAA,IACD,MAAM;AAAA,MACL,MAAM;AAAA,MACN,OAAO;AAAA,MACP,SAAS;AAAA,IACT;AAAA,IACD,SAAS;AAAA,MACR,MAAM;AAAA,MACN,OAAO;AAAA,MACP,SAAS;AAAA,IACT;AAAA,EACD;AAAA,EACD,aAAa;AAAA,EACb,UAAU;AAAA,EACV,aAAa;AAAA,EACb,mBAAmB;AACnB,CAAA;AAGF,IAAI,IAAI,MAAM,MAAM;AACnB,MAAI,SAAQ;AACb,WAAW,IAAI,MAAM,SAAS;AAErB,UAAA,IAAI,GAAGD,QAAWC,SAAY;AACtC,UAAQ,KAAK,CAAC;AACf,OAAO;AACN,QAAM,cAAc,8BAA8B;AAAA,IACjD,GAAG,IAAI;AAAA,IACP,OAAO,IAAI;AAAA,EAAA,CACX;AAED,cAAY,IAAG;AAChB;"}
@@ -1 +1 @@
1
- {"version":3,"file":"assertExists.cjs","sources":["../../../src/lib/assertExists.ts"],"sourcesContent":["// TypeScript cannot use arrow functions for assertions\nexport function assertExists<T>(\n\tvalue: T,\n\tmessage: string,\n): asserts value is NonNullable<T> {\n\tif (value == undefined) {\n\t\tthrow new Error(message);\n\t}\n}\n"],"names":[],"mappings":";;AACgB,SAAA,aACf,OACA,SAAe;AAEf,MAAI,SAAS,QAAW;AACjB,UAAA,IAAI,MAAM,OAAO;AAAA,EACvB;AACF;;"}
1
+ {"version":3,"file":"assertExists.cjs","sources":["../../../src/lib/assertExists.ts"],"sourcesContent":["// TypeScript cannot use arrow functions for assertions\nexport function assertExists<T>(\n\tvalue: T,\n\tmessage: string,\n): asserts value is NonNullable<T> {\n\tif (value == undefined) {\n\t\tthrow new Error(message);\n\t}\n}\n"],"names":[],"mappings":";;AACgB,SAAA,aACf,OACA,SAAe;AAEf,MAAI,SAAS,QAAW;AACjB,UAAA,IAAI,MAAM,OAAO;AAAA,EACxB;AACD;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"assertExists.js","sources":["../../../src/lib/assertExists.ts"],"sourcesContent":["// TypeScript cannot use arrow functions for assertions\nexport function assertExists<T>(\n\tvalue: T,\n\tmessage: string,\n): asserts value is NonNullable<T> {\n\tif (value == undefined) {\n\t\tthrow new Error(message);\n\t}\n}\n"],"names":[],"mappings":"AACgB,SAAA,aACf,OACA,SAAe;AAEf,MAAI,SAAS,QAAW;AACjB,UAAA,IAAI,MAAM,OAAO;AAAA,EACvB;AACF;"}
1
+ {"version":3,"file":"assertExists.js","sources":["../../../src/lib/assertExists.ts"],"sourcesContent":["// TypeScript cannot use arrow functions for assertions\nexport function assertExists<T>(\n\tvalue: T,\n\tmessage: string,\n): asserts value is NonNullable<T> {\n\tif (value == undefined) {\n\t\tthrow new Error(message);\n\t}\n}\n"],"names":[],"mappings":"AACgB,SAAA,aACf,OACA,SAAe;AAEf,MAAI,SAAS,QAAW;AACjB,UAAA,IAAI,MAAM,OAAO;AAAA,EACxB;AACD;"}
@@ -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\"\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\tnuxt: {\n\t\tname: \"Nuxt\",\n\t\tsliceMachineTelemetryID: \"nuxt\",\n\t\twroomTelemetryID: \"nuxt\",\n\t\tprismicDocumentation: \"https://prismic.dev/init/nuxt\",\n\t\tadapterName: \"@slicemachine/adapter-nuxt\",\n\t\tcompatibility: {\n\t\t\tnuxt: \"^3.0.0 || ^4.0.0-rc.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 || ^12 || ^13 || ^14 || ^15.0.0-rc.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":";;;;;;AA4DA,MAAM,uBAAuB,OAAO,WAAWA,SAAAA,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,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,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,QAAAC,SAAOC,KAAAA,KAAK,KAAK,cAAc;AAEjC,MAAA;AACA,MAAA;AACH,UAAM,MAAM,KAAK,MAAM,MAAMC,GAAAA,SAASF,QAAM,OAAO,CAAC;AAElC,sBAAA;AAAA,MACjB,GAAG,IAAI;AAAA,MACP,GAAG,IAAI;AAAA,IAAA;AAAA,WAEA;AACR,UAAM,IAAI,MACT,kDAAkDA,YAClD,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
+ {"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\"\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\tnuxt: {\n\t\tname: \"Nuxt\",\n\t\tsliceMachineTelemetryID: \"nuxt\",\n\t\twroomTelemetryID: \"nuxt\",\n\t\tprismicDocumentation: \"https://prismic.dev/init/nuxt\",\n\t\tadapterName: \"@slicemachine/adapter-nuxt\",\n\t\tcompatibility: {\n\t\t\tnuxt: \"^3.0.0 || ^4.0.0-rc.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 || ^12 || ^13 || ^14 || ^15.0.0-rc.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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"}
@@ -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\"\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\tnuxt: {\n\t\tname: \"Nuxt\",\n\t\tsliceMachineTelemetryID: \"nuxt\",\n\t\twroomTelemetryID: \"nuxt\",\n\t\tprismicDocumentation: \"https://prismic.dev/init/nuxt\",\n\t\tadapterName: \"@slicemachine/adapter-nuxt\",\n\t\tcompatibility: {\n\t\t\tnuxt: \"^3.0.0 || ^4.0.0-rc.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 || ^12 || ^13 || ^14 || ^15.0.0-rc.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":"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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\"\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\tnuxt: {\n\t\tname: \"Nuxt\",\n\t\tsliceMachineTelemetryID: \"nuxt\",\n\t\twroomTelemetryID: \"nuxt\",\n\t\tprismicDocumentation: \"https://prismic.dev/init/nuxt\",\n\t\tadapterName: \"@slicemachine/adapter-nuxt\",\n\t\tcompatibility: {\n\t\t\tnuxt: \"^3.0.0 || ^4.0.0-rc.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 || ^12 || ^13 || ^14 || ^15.0.0-rc.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":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"prompt.cjs","sources":["../../../src/lib/prompt.ts"],"sourcesContent":["import prompts from \"prompts\";\n\ntype promptArgs<\n\tTValue = unknown,\n\tTProperty extends string = string,\n> = prompts.PromptObject<TProperty> & {\n\t// Method is available, cf. docs\n\tonRender?: (this: { msg: string; value?: TValue; initial?: TValue }) => void;\n};\n\nexport const prompt = async <TReturn, TProperty extends string = string>(\n\tquestion: promptArgs<TReturn, TProperty>,\n): Promise<Record<TProperty, TReturn>> => {\n\tconst answers: Record<TProperty, TReturn> =\n\t\tawait prompts<TProperty>(question);\n\n\tif (!Object.keys(answers).length) {\n\t\tprocess.exit(130);\n\t}\n\n\t// Clear prompt line, clean recap are done manually\n\tprocess.stdout.moveCursor?.(0, -1);\n\tprocess.stdout.clearLine?.(1);\n\n\treturn answers;\n};\n"],"names":[],"mappings":";;;AAUa,MAAA,SAAS,OACrB,aACwC;;AAClC,QAAA,UACL,MAAM,QAAmB,QAAQ;AAElC,MAAI,CAAC,OAAO,KAAK,OAAO,EAAE,QAAQ;AACjC,YAAQ,KAAK,GAAG;AAAA,EAChB;AAGO,sBAAA,QAAO,eAAP,4BAAoB,GAAG;AACvB,sBAAA,QAAO,cAAP,4BAAmB;AAEpB,SAAA;AACR;;"}
1
+ {"version":3,"file":"prompt.cjs","sources":["../../../src/lib/prompt.ts"],"sourcesContent":["import prompts from \"prompts\";\n\ntype promptArgs<\n\tTValue = unknown,\n\tTProperty extends string = string,\n> = prompts.PromptObject<TProperty> & {\n\t// Method is available, cf. docs\n\tonRender?: (this: { msg: string; value?: TValue; initial?: TValue }) => void;\n};\n\nexport const prompt = async <TReturn, TProperty extends string = string>(\n\tquestion: promptArgs<TReturn, TProperty>,\n): Promise<Record<TProperty, TReturn>> => {\n\tconst answers: Record<TProperty, TReturn> =\n\t\tawait prompts<TProperty>(question);\n\n\tif (!Object.keys(answers).length) {\n\t\tprocess.exit(130);\n\t}\n\n\t// Clear prompt line, clean recap are done manually\n\tprocess.stdout.moveCursor?.(0, -1);\n\tprocess.stdout.clearLine?.(1);\n\n\treturn answers;\n};\n"],"names":[],"mappings":";;;AAUa,MAAA,SAAS,OACrB,aACwC;;AAClC,QAAA,UACL,MAAM,QAAmB,QAAQ;AAElC,MAAI,CAAC,OAAO,KAAK,OAAO,EAAE,QAAQ;AACjC,YAAQ,KAAK,GAAG;AAAA,EACjB;AAGQ,sBAAA,QAAO,eAAP,4BAAoB,GAAG;AACvB,sBAAA,QAAO,cAAP,4BAAmB;AAEpB,SAAA;AACR;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"prompt.js","sources":["../../../src/lib/prompt.ts"],"sourcesContent":["import prompts from \"prompts\";\n\ntype promptArgs<\n\tTValue = unknown,\n\tTProperty extends string = string,\n> = prompts.PromptObject<TProperty> & {\n\t// Method is available, cf. docs\n\tonRender?: (this: { msg: string; value?: TValue; initial?: TValue }) => void;\n};\n\nexport const prompt = async <TReturn, TProperty extends string = string>(\n\tquestion: promptArgs<TReturn, TProperty>,\n): Promise<Record<TProperty, TReturn>> => {\n\tconst answers: Record<TProperty, TReturn> =\n\t\tawait prompts<TProperty>(question);\n\n\tif (!Object.keys(answers).length) {\n\t\tprocess.exit(130);\n\t}\n\n\t// Clear prompt line, clean recap are done manually\n\tprocess.stdout.moveCursor?.(0, -1);\n\tprocess.stdout.clearLine?.(1);\n\n\treturn answers;\n};\n"],"names":[],"mappings":";AAUa,MAAA,SAAS,OACrB,aACwC;;AAClC,QAAA,UACL,MAAM,QAAmB,QAAQ;AAElC,MAAI,CAAC,OAAO,KAAK,OAAO,EAAE,QAAQ;AACjC,YAAQ,KAAK,GAAG;AAAA,EAChB;AAGO,sBAAA,QAAO,eAAP,4BAAoB,GAAG;AACvB,sBAAA,QAAO,cAAP,4BAAmB;AAEpB,SAAA;AACR;"}
1
+ {"version":3,"file":"prompt.js","sources":["../../../src/lib/prompt.ts"],"sourcesContent":["import prompts from \"prompts\";\n\ntype promptArgs<\n\tTValue = unknown,\n\tTProperty extends string = string,\n> = prompts.PromptObject<TProperty> & {\n\t// Method is available, cf. docs\n\tonRender?: (this: { msg: string; value?: TValue; initial?: TValue }) => void;\n};\n\nexport const prompt = async <TReturn, TProperty extends string = string>(\n\tquestion: promptArgs<TReturn, TProperty>,\n): Promise<Record<TProperty, TReturn>> => {\n\tconst answers: Record<TProperty, TReturn> =\n\t\tawait prompts<TProperty>(question);\n\n\tif (!Object.keys(answers).length) {\n\t\tprocess.exit(130);\n\t}\n\n\t// Clear prompt line, clean recap are done manually\n\tprocess.stdout.moveCursor?.(0, -1);\n\tprocess.stdout.clearLine?.(1);\n\n\treturn answers;\n};\n"],"names":[],"mappings":";AAUa,MAAA,SAAS,OACrB,aACwC;;AAClC,QAAA,UACL,MAAM,QAAmB,QAAQ;AAElC,MAAI,CAAC,OAAO,KAAK,OAAO,EAAE,QAAQ;AACjC,YAAQ,KAAK,GAAG;AAAA,EACjB;AAGQ,sBAAA,QAAO,eAAP,4BAAoB,GAAG;AACvB,sBAAA,QAAO,cAAP,4BAAmB;AAEpB,SAAA;AACR;"}
@@ -1 +1 @@
1
- {"version":3,"file":"repositoryDomain.cjs","sources":["../../../src/lib/repositoryDomain.ts"],"sourcesContent":["import { REPOSITORY_NAME_VALIDATION } from \"@slicemachine/manager\";\n\nconst abc123 = `abcdefghijklmnopqrstuvwxyz0123456789`;\n\n// 11 characters long or less adjectives\nconst ADJECTIVES = [\n\t\"adorable\",\n\t\"beautiful\",\n\t\"charming\",\n\t\"cloudy\",\n\t\"delightful\",\n\t\"focused\",\n\t\"honest\",\n\t\"inspiring\",\n\t\"lovable\",\n\t\"melodious\",\n\t\"pleasant\",\n\t\"pretty\",\n\t\"shiny\",\n\t\"sugary\",\n\t\"tall\",\n\t\"valliant\",\n].filter((adjective) => adjective.length <= 11);\n\n// 11 characters long or less bakeries\nconst BAKERIES = [\n\t\"baguette\",\n\t\"briouat\",\n\t\"crepe\",\n\t\"croissant\",\n\t\"donut\",\n\t\"eclair\",\n\t\"flaons\",\n\t\"kolompeh\",\n\t\"macaron\",\n\t\"paste\",\n\t\"pretzel\",\n\t\"rustico\",\n\t\"semla\",\n\t\"strudel\",\n\t\"taiyaki\",\n\t\"toast\",\n].filter((bakery) => bakery.length <= 11);\n\nconst pickRandom = (arrOrString: string | string[]): string => {\n\treturn arrOrString[Math.floor(Math.random() * arrOrString.length)];\n};\n\nconst randomString = (length: number): string => {\n\tlet result = \"\";\n\n\tfor (let i = 0; i < length; i++) {\n\t\tresult += pickRandom(abc123);\n\t}\n\n\treturn result;\n};\n\nexport const getRandomRepositoryDomain = (): string => {\n\treturn formatRepositoryDomain(\n\t\t`${pickRandom(ADJECTIVES)}-${pickRandom(BAKERIES)}-${randomString(6)}`,\n\t);\n};\n\nexport const formatRepositoryDomain = (rawDomain: string): string => {\n\t// Lowercase anything\n\tlet domain = rawDomain.toLowerCase();\n\n\t/**\n\t * Replace whitespaces and underscores with hyphens\n\t */\n\tdomain = domain.replace(/\\s/g, \"-\").replace(/_/g, \"-\");\n\n\t/**\n\t * Replace not allowed characters\n\t *\n\t * @see https://regex101.com/r/f2Hr0k/1\n\t */\n\tdomain = domain.replace(/[^a-z0-9-]/g, \"\");\n\n\t/**\n\t * Trim leading and trailing hyphens\n\t *\n\t * @see https://regex101.com/r/ivngfc/1\n\t */\n\tdomain = domain.replace(/(^-+)|(-+$)/g, \"\");\n\n\t/**\n\t * Replace multi hyphens\n\t *\n\t * @see https://regex101.com/r/t9qxh0/1\n\t */\n\tdomain = domain.replace(/-{2,}/g, \"-\");\n\n\treturn domain;\n};\n\nconst isFormattedRepositoryDomain = (\n\tmaybeFormattedRepositoryDomain: string,\n): boolean => {\n\treturn (\n\t\tmaybeFormattedRepositoryDomain ===\n\t\tformatRepositoryDomain(maybeFormattedRepositoryDomain)\n\t);\n};\n\nconst assertFormattedRepositoryDomain = (\n\tmaybeFormattedRepositoryDomain: string,\n\tcaller: string,\n): void => {\n\tif (!isFormattedRepositoryDomain(maybeFormattedRepositoryDomain)) {\n\t\tthrow new TypeError(\n\t\t\t`\\`${caller}()\\` can only validate formatted repository domains, use the \\`formatRepositoryDomain()\\` first.`,\n\t\t);\n\t}\n};\n\nexport const ValidationErrors = {\n\tLessThanMin: \"LessThanMin\",\n\tMoreThanMax: \"MoreThanMax\",\n\tAlreadyExists: \"AlreadyExists\",\n} as const;\ntype ValidationErrors =\n\t(typeof ValidationErrors)[keyof typeof ValidationErrors];\n\ntype ValidateRepositoryDomainArgs = { domain: string };\ntype ValidateRepositoryDomainReturnType = Record<\n\tExclude<ValidationErrors, \"AlreadyExists\"> | \"hasErrors\",\n\tboolean\n>;\nexport const validateRepositoryDomain = (\n\targs: ValidateRepositoryDomainArgs,\n): ValidateRepositoryDomainReturnType => {\n\tassertFormattedRepositoryDomain(args.domain, \"validateRepositoryDomain\");\n\n\tconst errors: Record<Exclude<ValidationErrors, \"AlreadyExists\">, boolean> = {\n\t\t/**\n\t\t * Checks non [a-z] first character\n\t\t *\n\t\t * @see https://regex101.com/r/OBZ6UH/1\n\t\t */\n\t\t[ValidationErrors.LessThanMin]:\n\t\t\targs.domain.length < REPOSITORY_NAME_VALIDATION.Min,\n\t\t[ValidationErrors.MoreThanMax]:\n\t\t\targs.domain.length > REPOSITORY_NAME_VALIDATION.Max,\n\t};\n\n\treturn {\n\t\t...errors,\n\t\thasErrors: Object.values(errors).some(Boolean),\n\t};\n};\n\ntype ValidateRepositoryDomainAndAvailabilityArgs = {\n\tdomain: string;\n\texistsFn: (domain: string) => boolean | Promise<boolean>;\n};\ntype ValidateRepositoryDomainAndAvailabilityReturnType = Record<\n\tValidationErrors | \"hasErrors\",\n\tboolean\n>;\nexport const validateRepositoryDomainAndAvailability = async (\n\targs: ValidateRepositoryDomainAndAvailabilityArgs,\n): Promise<ValidateRepositoryDomainAndAvailabilityReturnType> => {\n\tassertFormattedRepositoryDomain(\n\t\targs.domain,\n\t\t\"validateRepositoryDomainAndAvailability\",\n\t);\n\n\tconst errors = validateRepositoryDomain(args);\n\n\tif (!errors.hasErrors && (await args.existsFn(args.domain))) {\n\t\treturn {\n\t\t\t...errors,\n\t\t\t[ValidationErrors.AlreadyExists]: true,\n\t\t\thasErrors: true,\n\t\t};\n\t}\n\n\treturn {\n\t\t...errors,\n\t\t[ValidationErrors.AlreadyExists]: false,\n\t};\n};\n\ntype GetErrorMessageForRepositoryDomainValidationArgs = {\n\tvalidation:\n\t\t| ValidateRepositoryDomainReturnType\n\t\t| ValidateRepositoryDomainAndAvailabilityReturnType;\n\tdisplayDomain?: string;\n};\nexport const getErrorMessageForRepositoryDomainValidation = (\n\targs: GetErrorMessageForRepositoryDomainValidationArgs,\n): string | null => {\n\tif (args.validation.hasErrors) {\n\t\tconst formattedErrors: string[] = [];\n\n\t\tif (args.validation.LessThanMin) {\n\t\t\tformattedErrors.push(\n\t\t\t\t`must be ${REPOSITORY_NAME_VALIDATION.Min} characters long or more`,\n\t\t\t);\n\t\t}\n\t\tif (args.validation.MoreThanMax) {\n\t\t\tformattedErrors.push(\n\t\t\t\t`must be ${REPOSITORY_NAME_VALIDATION.Max} characters long or less`,\n\t\t\t);\n\t\t}\n\t\tif (\n\t\t\tValidationErrors.AlreadyExists in args.validation &&\n\t\t\targs.validation.AlreadyExists\n\t\t) {\n\t\t\tformattedErrors.push(\"is already taken\");\n\t\t}\n\n\t\tif (!formattedErrors.length) {\n\t\t\tformattedErrors.push(\n\t\t\t\t`has unhandled errors ${JSON.stringify(args.validation)}`,\n\t\t\t);\n\t\t}\n\n\t\treturn `Repository name${\n\t\t\targs.displayDomain ? ` ${args.displayDomain}` : \"\"\n\t\t} ${formattedErrors.join(\" and \")}`;\n\t}\n\n\treturn null;\n};\n"],"names":["REPOSITORY_NAME_VALIDATION"],"mappings":"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"}
1
+ {"version":3,"file":"repositoryDomain.cjs","sources":["../../../src/lib/repositoryDomain.ts"],"sourcesContent":["import { REPOSITORY_NAME_VALIDATION } from \"@slicemachine/manager\";\n\nconst abc123 = `abcdefghijklmnopqrstuvwxyz0123456789`;\n\n// 11 characters long or less adjectives\nconst ADJECTIVES = [\n\t\"adorable\",\n\t\"beautiful\",\n\t\"charming\",\n\t\"cloudy\",\n\t\"delightful\",\n\t\"focused\",\n\t\"honest\",\n\t\"inspiring\",\n\t\"lovable\",\n\t\"melodious\",\n\t\"pleasant\",\n\t\"pretty\",\n\t\"shiny\",\n\t\"sugary\",\n\t\"tall\",\n\t\"valliant\",\n].filter((adjective) => adjective.length <= 11);\n\n// 11 characters long or less bakeries\nconst BAKERIES = [\n\t\"baguette\",\n\t\"briouat\",\n\t\"crepe\",\n\t\"croissant\",\n\t\"donut\",\n\t\"eclair\",\n\t\"flaons\",\n\t\"kolompeh\",\n\t\"macaron\",\n\t\"paste\",\n\t\"pretzel\",\n\t\"rustico\",\n\t\"semla\",\n\t\"strudel\",\n\t\"taiyaki\",\n\t\"toast\",\n].filter((bakery) => bakery.length <= 11);\n\nconst pickRandom = (arrOrString: string | string[]): string => {\n\treturn arrOrString[Math.floor(Math.random() * arrOrString.length)];\n};\n\nconst randomString = (length: number): string => {\n\tlet result = \"\";\n\n\tfor (let i = 0; i < length; i++) {\n\t\tresult += pickRandom(abc123);\n\t}\n\n\treturn result;\n};\n\nexport const getRandomRepositoryDomain = (): string => {\n\treturn formatRepositoryDomain(\n\t\t`${pickRandom(ADJECTIVES)}-${pickRandom(BAKERIES)}-${randomString(6)}`,\n\t);\n};\n\nexport const formatRepositoryDomain = (rawDomain: string): string => {\n\t// Lowercase anything\n\tlet domain = rawDomain.toLowerCase();\n\n\t/**\n\t * Replace whitespaces and underscores with hyphens\n\t */\n\tdomain = domain.replace(/\\s/g, \"-\").replace(/_/g, \"-\");\n\n\t/**\n\t * Replace not allowed characters\n\t *\n\t * @see https://regex101.com/r/f2Hr0k/1\n\t */\n\tdomain = domain.replace(/[^a-z0-9-]/g, \"\");\n\n\t/**\n\t * Trim leading and trailing hyphens\n\t *\n\t * @see https://regex101.com/r/ivngfc/1\n\t */\n\tdomain = domain.replace(/(^-+)|(-+$)/g, \"\");\n\n\t/**\n\t * Replace multi hyphens\n\t *\n\t * @see https://regex101.com/r/t9qxh0/1\n\t */\n\tdomain = domain.replace(/-{2,}/g, \"-\");\n\n\treturn domain;\n};\n\nconst isFormattedRepositoryDomain = (\n\tmaybeFormattedRepositoryDomain: string,\n): boolean => {\n\treturn (\n\t\tmaybeFormattedRepositoryDomain ===\n\t\tformatRepositoryDomain(maybeFormattedRepositoryDomain)\n\t);\n};\n\nconst assertFormattedRepositoryDomain = (\n\tmaybeFormattedRepositoryDomain: string,\n\tcaller: string,\n): void => {\n\tif (!isFormattedRepositoryDomain(maybeFormattedRepositoryDomain)) {\n\t\tthrow new TypeError(\n\t\t\t`\\`${caller}()\\` can only validate formatted repository domains, use the \\`formatRepositoryDomain()\\` first.`,\n\t\t);\n\t}\n};\n\nexport const ValidationErrors = {\n\tLessThanMin: \"LessThanMin\",\n\tMoreThanMax: \"MoreThanMax\",\n\tAlreadyExists: \"AlreadyExists\",\n} as const;\ntype ValidationErrors =\n\t(typeof ValidationErrors)[keyof typeof ValidationErrors];\n\ntype ValidateRepositoryDomainArgs = { domain: string };\ntype ValidateRepositoryDomainReturnType = Record<\n\tExclude<ValidationErrors, \"AlreadyExists\"> | \"hasErrors\",\n\tboolean\n>;\nexport const validateRepositoryDomain = (\n\targs: ValidateRepositoryDomainArgs,\n): ValidateRepositoryDomainReturnType => {\n\tassertFormattedRepositoryDomain(args.domain, \"validateRepositoryDomain\");\n\n\tconst errors: Record<Exclude<ValidationErrors, \"AlreadyExists\">, boolean> = {\n\t\t/**\n\t\t * Checks non [a-z] first character\n\t\t *\n\t\t * @see https://regex101.com/r/OBZ6UH/1\n\t\t */\n\t\t[ValidationErrors.LessThanMin]:\n\t\t\targs.domain.length < REPOSITORY_NAME_VALIDATION.Min,\n\t\t[ValidationErrors.MoreThanMax]:\n\t\t\targs.domain.length > REPOSITORY_NAME_VALIDATION.Max,\n\t};\n\n\treturn {\n\t\t...errors,\n\t\thasErrors: Object.values(errors).some(Boolean),\n\t};\n};\n\ntype ValidateRepositoryDomainAndAvailabilityArgs = {\n\tdomain: string;\n\texistsFn: (domain: string) => boolean | Promise<boolean>;\n};\ntype ValidateRepositoryDomainAndAvailabilityReturnType = Record<\n\tValidationErrors | \"hasErrors\",\n\tboolean\n>;\nexport const validateRepositoryDomainAndAvailability = async (\n\targs: ValidateRepositoryDomainAndAvailabilityArgs,\n): Promise<ValidateRepositoryDomainAndAvailabilityReturnType> => {\n\tassertFormattedRepositoryDomain(\n\t\targs.domain,\n\t\t\"validateRepositoryDomainAndAvailability\",\n\t);\n\n\tconst errors = validateRepositoryDomain(args);\n\n\tif (!errors.hasErrors && (await args.existsFn(args.domain))) {\n\t\treturn {\n\t\t\t...errors,\n\t\t\t[ValidationErrors.AlreadyExists]: true,\n\t\t\thasErrors: true,\n\t\t};\n\t}\n\n\treturn {\n\t\t...errors,\n\t\t[ValidationErrors.AlreadyExists]: false,\n\t};\n};\n\ntype GetErrorMessageForRepositoryDomainValidationArgs = {\n\tvalidation:\n\t\t| ValidateRepositoryDomainReturnType\n\t\t| ValidateRepositoryDomainAndAvailabilityReturnType;\n\tdisplayDomain?: string;\n};\nexport const getErrorMessageForRepositoryDomainValidation = (\n\targs: GetErrorMessageForRepositoryDomainValidationArgs,\n): string | null => {\n\tif (args.validation.hasErrors) {\n\t\tconst formattedErrors: string[] = [];\n\n\t\tif (args.validation.LessThanMin) {\n\t\t\tformattedErrors.push(\n\t\t\t\t`must be ${REPOSITORY_NAME_VALIDATION.Min} characters long or more`,\n\t\t\t);\n\t\t}\n\t\tif (args.validation.MoreThanMax) {\n\t\t\tformattedErrors.push(\n\t\t\t\t`must be ${REPOSITORY_NAME_VALIDATION.Max} characters long or less`,\n\t\t\t);\n\t\t}\n\t\tif (\n\t\t\tValidationErrors.AlreadyExists in args.validation &&\n\t\t\targs.validation.AlreadyExists\n\t\t) {\n\t\t\tformattedErrors.push(\"is already taken\");\n\t\t}\n\n\t\tif (!formattedErrors.length) {\n\t\t\tformattedErrors.push(\n\t\t\t\t`has unhandled errors ${JSON.stringify(args.validation)}`,\n\t\t\t);\n\t\t}\n\n\t\treturn `Repository name${\n\t\t\targs.displayDomain ? ` ${args.displayDomain}` : \"\"\n\t\t} ${formattedErrors.join(\" and \")}`;\n\t}\n\n\treturn null;\n};\n"],"names":["REPOSITORY_NAME_VALIDATION"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"repositoryDomain.js","sources":["../../../src/lib/repositoryDomain.ts"],"sourcesContent":["import { REPOSITORY_NAME_VALIDATION } from \"@slicemachine/manager\";\n\nconst abc123 = `abcdefghijklmnopqrstuvwxyz0123456789`;\n\n// 11 characters long or less adjectives\nconst ADJECTIVES = [\n\t\"adorable\",\n\t\"beautiful\",\n\t\"charming\",\n\t\"cloudy\",\n\t\"delightful\",\n\t\"focused\",\n\t\"honest\",\n\t\"inspiring\",\n\t\"lovable\",\n\t\"melodious\",\n\t\"pleasant\",\n\t\"pretty\",\n\t\"shiny\",\n\t\"sugary\",\n\t\"tall\",\n\t\"valliant\",\n].filter((adjective) => adjective.length <= 11);\n\n// 11 characters long or less bakeries\nconst BAKERIES = [\n\t\"baguette\",\n\t\"briouat\",\n\t\"crepe\",\n\t\"croissant\",\n\t\"donut\",\n\t\"eclair\",\n\t\"flaons\",\n\t\"kolompeh\",\n\t\"macaron\",\n\t\"paste\",\n\t\"pretzel\",\n\t\"rustico\",\n\t\"semla\",\n\t\"strudel\",\n\t\"taiyaki\",\n\t\"toast\",\n].filter((bakery) => bakery.length <= 11);\n\nconst pickRandom = (arrOrString: string | string[]): string => {\n\treturn arrOrString[Math.floor(Math.random() * arrOrString.length)];\n};\n\nconst randomString = (length: number): string => {\n\tlet result = \"\";\n\n\tfor (let i = 0; i < length; i++) {\n\t\tresult += pickRandom(abc123);\n\t}\n\n\treturn result;\n};\n\nexport const getRandomRepositoryDomain = (): string => {\n\treturn formatRepositoryDomain(\n\t\t`${pickRandom(ADJECTIVES)}-${pickRandom(BAKERIES)}-${randomString(6)}`,\n\t);\n};\n\nexport const formatRepositoryDomain = (rawDomain: string): string => {\n\t// Lowercase anything\n\tlet domain = rawDomain.toLowerCase();\n\n\t/**\n\t * Replace whitespaces and underscores with hyphens\n\t */\n\tdomain = domain.replace(/\\s/g, \"-\").replace(/_/g, \"-\");\n\n\t/**\n\t * Replace not allowed characters\n\t *\n\t * @see https://regex101.com/r/f2Hr0k/1\n\t */\n\tdomain = domain.replace(/[^a-z0-9-]/g, \"\");\n\n\t/**\n\t * Trim leading and trailing hyphens\n\t *\n\t * @see https://regex101.com/r/ivngfc/1\n\t */\n\tdomain = domain.replace(/(^-+)|(-+$)/g, \"\");\n\n\t/**\n\t * Replace multi hyphens\n\t *\n\t * @see https://regex101.com/r/t9qxh0/1\n\t */\n\tdomain = domain.replace(/-{2,}/g, \"-\");\n\n\treturn domain;\n};\n\nconst isFormattedRepositoryDomain = (\n\tmaybeFormattedRepositoryDomain: string,\n): boolean => {\n\treturn (\n\t\tmaybeFormattedRepositoryDomain ===\n\t\tformatRepositoryDomain(maybeFormattedRepositoryDomain)\n\t);\n};\n\nconst assertFormattedRepositoryDomain = (\n\tmaybeFormattedRepositoryDomain: string,\n\tcaller: string,\n): void => {\n\tif (!isFormattedRepositoryDomain(maybeFormattedRepositoryDomain)) {\n\t\tthrow new TypeError(\n\t\t\t`\\`${caller}()\\` can only validate formatted repository domains, use the \\`formatRepositoryDomain()\\` first.`,\n\t\t);\n\t}\n};\n\nexport const ValidationErrors = {\n\tLessThanMin: \"LessThanMin\",\n\tMoreThanMax: \"MoreThanMax\",\n\tAlreadyExists: \"AlreadyExists\",\n} as const;\ntype ValidationErrors =\n\t(typeof ValidationErrors)[keyof typeof ValidationErrors];\n\ntype ValidateRepositoryDomainArgs = { domain: string };\ntype ValidateRepositoryDomainReturnType = Record<\n\tExclude<ValidationErrors, \"AlreadyExists\"> | \"hasErrors\",\n\tboolean\n>;\nexport const validateRepositoryDomain = (\n\targs: ValidateRepositoryDomainArgs,\n): ValidateRepositoryDomainReturnType => {\n\tassertFormattedRepositoryDomain(args.domain, \"validateRepositoryDomain\");\n\n\tconst errors: Record<Exclude<ValidationErrors, \"AlreadyExists\">, boolean> = {\n\t\t/**\n\t\t * Checks non [a-z] first character\n\t\t *\n\t\t * @see https://regex101.com/r/OBZ6UH/1\n\t\t */\n\t\t[ValidationErrors.LessThanMin]:\n\t\t\targs.domain.length < REPOSITORY_NAME_VALIDATION.Min,\n\t\t[ValidationErrors.MoreThanMax]:\n\t\t\targs.domain.length > REPOSITORY_NAME_VALIDATION.Max,\n\t};\n\n\treturn {\n\t\t...errors,\n\t\thasErrors: Object.values(errors).some(Boolean),\n\t};\n};\n\ntype ValidateRepositoryDomainAndAvailabilityArgs = {\n\tdomain: string;\n\texistsFn: (domain: string) => boolean | Promise<boolean>;\n};\ntype ValidateRepositoryDomainAndAvailabilityReturnType = Record<\n\tValidationErrors | \"hasErrors\",\n\tboolean\n>;\nexport const validateRepositoryDomainAndAvailability = async (\n\targs: ValidateRepositoryDomainAndAvailabilityArgs,\n): Promise<ValidateRepositoryDomainAndAvailabilityReturnType> => {\n\tassertFormattedRepositoryDomain(\n\t\targs.domain,\n\t\t\"validateRepositoryDomainAndAvailability\",\n\t);\n\n\tconst errors = validateRepositoryDomain(args);\n\n\tif (!errors.hasErrors && (await args.existsFn(args.domain))) {\n\t\treturn {\n\t\t\t...errors,\n\t\t\t[ValidationErrors.AlreadyExists]: true,\n\t\t\thasErrors: true,\n\t\t};\n\t}\n\n\treturn {\n\t\t...errors,\n\t\t[ValidationErrors.AlreadyExists]: false,\n\t};\n};\n\ntype GetErrorMessageForRepositoryDomainValidationArgs = {\n\tvalidation:\n\t\t| ValidateRepositoryDomainReturnType\n\t\t| ValidateRepositoryDomainAndAvailabilityReturnType;\n\tdisplayDomain?: string;\n};\nexport const getErrorMessageForRepositoryDomainValidation = (\n\targs: GetErrorMessageForRepositoryDomainValidationArgs,\n): string | null => {\n\tif (args.validation.hasErrors) {\n\t\tconst formattedErrors: string[] = [];\n\n\t\tif (args.validation.LessThanMin) {\n\t\t\tformattedErrors.push(\n\t\t\t\t`must be ${REPOSITORY_NAME_VALIDATION.Min} characters long or more`,\n\t\t\t);\n\t\t}\n\t\tif (args.validation.MoreThanMax) {\n\t\t\tformattedErrors.push(\n\t\t\t\t`must be ${REPOSITORY_NAME_VALIDATION.Max} characters long or less`,\n\t\t\t);\n\t\t}\n\t\tif (\n\t\t\tValidationErrors.AlreadyExists in args.validation &&\n\t\t\targs.validation.AlreadyExists\n\t\t) {\n\t\t\tformattedErrors.push(\"is already taken\");\n\t\t}\n\n\t\tif (!formattedErrors.length) {\n\t\t\tformattedErrors.push(\n\t\t\t\t`has unhandled errors ${JSON.stringify(args.validation)}`,\n\t\t\t);\n\t\t}\n\n\t\treturn `Repository name${\n\t\t\targs.displayDomain ? ` ${args.displayDomain}` : \"\"\n\t\t} ${formattedErrors.join(\" and \")}`;\n\t}\n\n\treturn null;\n};\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"repositoryDomain.js","sources":["../../../src/lib/repositoryDomain.ts"],"sourcesContent":["import { REPOSITORY_NAME_VALIDATION } from \"@slicemachine/manager\";\n\nconst abc123 = `abcdefghijklmnopqrstuvwxyz0123456789`;\n\n// 11 characters long or less adjectives\nconst ADJECTIVES = [\n\t\"adorable\",\n\t\"beautiful\",\n\t\"charming\",\n\t\"cloudy\",\n\t\"delightful\",\n\t\"focused\",\n\t\"honest\",\n\t\"inspiring\",\n\t\"lovable\",\n\t\"melodious\",\n\t\"pleasant\",\n\t\"pretty\",\n\t\"shiny\",\n\t\"sugary\",\n\t\"tall\",\n\t\"valliant\",\n].filter((adjective) => adjective.length <= 11);\n\n// 11 characters long or less bakeries\nconst BAKERIES = [\n\t\"baguette\",\n\t\"briouat\",\n\t\"crepe\",\n\t\"croissant\",\n\t\"donut\",\n\t\"eclair\",\n\t\"flaons\",\n\t\"kolompeh\",\n\t\"macaron\",\n\t\"paste\",\n\t\"pretzel\",\n\t\"rustico\",\n\t\"semla\",\n\t\"strudel\",\n\t\"taiyaki\",\n\t\"toast\",\n].filter((bakery) => bakery.length <= 11);\n\nconst pickRandom = (arrOrString: string | string[]): string => {\n\treturn arrOrString[Math.floor(Math.random() * arrOrString.length)];\n};\n\nconst randomString = (length: number): string => {\n\tlet result = \"\";\n\n\tfor (let i = 0; i < length; i++) {\n\t\tresult += pickRandom(abc123);\n\t}\n\n\treturn result;\n};\n\nexport const getRandomRepositoryDomain = (): string => {\n\treturn formatRepositoryDomain(\n\t\t`${pickRandom(ADJECTIVES)}-${pickRandom(BAKERIES)}-${randomString(6)}`,\n\t);\n};\n\nexport const formatRepositoryDomain = (rawDomain: string): string => {\n\t// Lowercase anything\n\tlet domain = rawDomain.toLowerCase();\n\n\t/**\n\t * Replace whitespaces and underscores with hyphens\n\t */\n\tdomain = domain.replace(/\\s/g, \"-\").replace(/_/g, \"-\");\n\n\t/**\n\t * Replace not allowed characters\n\t *\n\t * @see https://regex101.com/r/f2Hr0k/1\n\t */\n\tdomain = domain.replace(/[^a-z0-9-]/g, \"\");\n\n\t/**\n\t * Trim leading and trailing hyphens\n\t *\n\t * @see https://regex101.com/r/ivngfc/1\n\t */\n\tdomain = domain.replace(/(^-+)|(-+$)/g, \"\");\n\n\t/**\n\t * Replace multi hyphens\n\t *\n\t * @see https://regex101.com/r/t9qxh0/1\n\t */\n\tdomain = domain.replace(/-{2,}/g, \"-\");\n\n\treturn domain;\n};\n\nconst isFormattedRepositoryDomain = (\n\tmaybeFormattedRepositoryDomain: string,\n): boolean => {\n\treturn (\n\t\tmaybeFormattedRepositoryDomain ===\n\t\tformatRepositoryDomain(maybeFormattedRepositoryDomain)\n\t);\n};\n\nconst assertFormattedRepositoryDomain = (\n\tmaybeFormattedRepositoryDomain: string,\n\tcaller: string,\n): void => {\n\tif (!isFormattedRepositoryDomain(maybeFormattedRepositoryDomain)) {\n\t\tthrow new TypeError(\n\t\t\t`\\`${caller}()\\` can only validate formatted repository domains, use the \\`formatRepositoryDomain()\\` first.`,\n\t\t);\n\t}\n};\n\nexport const ValidationErrors = {\n\tLessThanMin: \"LessThanMin\",\n\tMoreThanMax: \"MoreThanMax\",\n\tAlreadyExists: \"AlreadyExists\",\n} as const;\ntype ValidationErrors =\n\t(typeof ValidationErrors)[keyof typeof ValidationErrors];\n\ntype ValidateRepositoryDomainArgs = { domain: string };\ntype ValidateRepositoryDomainReturnType = Record<\n\tExclude<ValidationErrors, \"AlreadyExists\"> | \"hasErrors\",\n\tboolean\n>;\nexport const validateRepositoryDomain = (\n\targs: ValidateRepositoryDomainArgs,\n): ValidateRepositoryDomainReturnType => {\n\tassertFormattedRepositoryDomain(args.domain, \"validateRepositoryDomain\");\n\n\tconst errors: Record<Exclude<ValidationErrors, \"AlreadyExists\">, boolean> = {\n\t\t/**\n\t\t * Checks non [a-z] first character\n\t\t *\n\t\t * @see https://regex101.com/r/OBZ6UH/1\n\t\t */\n\t\t[ValidationErrors.LessThanMin]:\n\t\t\targs.domain.length < REPOSITORY_NAME_VALIDATION.Min,\n\t\t[ValidationErrors.MoreThanMax]:\n\t\t\targs.domain.length > REPOSITORY_NAME_VALIDATION.Max,\n\t};\n\n\treturn {\n\t\t...errors,\n\t\thasErrors: Object.values(errors).some(Boolean),\n\t};\n};\n\ntype ValidateRepositoryDomainAndAvailabilityArgs = {\n\tdomain: string;\n\texistsFn: (domain: string) => boolean | Promise<boolean>;\n};\ntype ValidateRepositoryDomainAndAvailabilityReturnType = Record<\n\tValidationErrors | \"hasErrors\",\n\tboolean\n>;\nexport const validateRepositoryDomainAndAvailability = async (\n\targs: ValidateRepositoryDomainAndAvailabilityArgs,\n): Promise<ValidateRepositoryDomainAndAvailabilityReturnType> => {\n\tassertFormattedRepositoryDomain(\n\t\targs.domain,\n\t\t\"validateRepositoryDomainAndAvailability\",\n\t);\n\n\tconst errors = validateRepositoryDomain(args);\n\n\tif (!errors.hasErrors && (await args.existsFn(args.domain))) {\n\t\treturn {\n\t\t\t...errors,\n\t\t\t[ValidationErrors.AlreadyExists]: true,\n\t\t\thasErrors: true,\n\t\t};\n\t}\n\n\treturn {\n\t\t...errors,\n\t\t[ValidationErrors.AlreadyExists]: false,\n\t};\n};\n\ntype GetErrorMessageForRepositoryDomainValidationArgs = {\n\tvalidation:\n\t\t| ValidateRepositoryDomainReturnType\n\t\t| ValidateRepositoryDomainAndAvailabilityReturnType;\n\tdisplayDomain?: string;\n};\nexport const getErrorMessageForRepositoryDomainValidation = (\n\targs: GetErrorMessageForRepositoryDomainValidationArgs,\n): string | null => {\n\tif (args.validation.hasErrors) {\n\t\tconst formattedErrors: string[] = [];\n\n\t\tif (args.validation.LessThanMin) {\n\t\t\tformattedErrors.push(\n\t\t\t\t`must be ${REPOSITORY_NAME_VALIDATION.Min} characters long or more`,\n\t\t\t);\n\t\t}\n\t\tif (args.validation.MoreThanMax) {\n\t\t\tformattedErrors.push(\n\t\t\t\t`must be ${REPOSITORY_NAME_VALIDATION.Max} characters long or less`,\n\t\t\t);\n\t\t}\n\t\tif (\n\t\t\tValidationErrors.AlreadyExists in args.validation &&\n\t\t\targs.validation.AlreadyExists\n\t\t) {\n\t\t\tformattedErrors.push(\"is already taken\");\n\t\t}\n\n\t\tif (!formattedErrors.length) {\n\t\t\tformattedErrors.push(\n\t\t\t\t`has unhandled errors ${JSON.stringify(args.validation)}`,\n\t\t\t);\n\t\t}\n\n\t\treturn `Repository name${\n\t\t\targs.displayDomain ? ` ${args.displayDomain}` : \"\"\n\t\t} ${formattedErrors.join(\" and \")}`;\n\t}\n\n\treturn null;\n};\n"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"sentryErrorHandlers.cjs","sources":["../../../src/lib/sentryErrorHandlers.ts"],"sourcesContent":["import * as Sentry from \"@sentry/node\";\n\nimport { checkIsSentryEnabled } from \"./checkIsSentryEnabled\";\n\nexport function trackSentryError(error: unknown): void {\n\tif (!checkIsSentryEnabled()) {\n\t\treturn;\n\t}\n\n\tSentry.captureException(error, {\n\t\t...(error instanceof Error ? { extra: { cause: error.cause } } : {}),\n\t});\n}\n"],"names":["checkIsSentryEnabled","Sentry"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAIM,SAAU,iBAAiB,OAAc;AAC1C,MAAA,CAACA,6CAAwB;AAC5B;AAAA,EACA;AAEDC,oBAAO,iBAAiB,OAAO;AAAA,IAC9B,GAAI,iBAAiB,QAAQ,EAAE,OAAO,EAAE,OAAO,MAAM,YAAY,CAAA;AAAA,EAAA,CACjE;AACF;;"}
1
+ {"version":3,"file":"sentryErrorHandlers.cjs","sources":["../../../src/lib/sentryErrorHandlers.ts"],"sourcesContent":["import * as Sentry from \"@sentry/node\";\n\nimport { checkIsSentryEnabled } from \"./checkIsSentryEnabled\";\n\nexport function trackSentryError(error: unknown): void {\n\tif (!checkIsSentryEnabled()) {\n\t\treturn;\n\t}\n\n\tSentry.captureException(error, {\n\t\t...(error instanceof Error ? { extra: { cause: error.cause } } : {}),\n\t});\n}\n"],"names":["checkIsSentryEnabled","Sentry"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAIM,SAAU,iBAAiB,OAAc;AAC1C,MAAA,CAACA,6CAAwB;AAC5B;AAAA,EACD;AAEAC,oBAAO,iBAAiB,OAAO;AAAA,IAC9B,GAAI,iBAAiB,QAAQ,EAAE,OAAO,EAAE,OAAO,MAAM,YAAY,CAAA;AAAA,EAAA,CACjE;AACF;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"sentryErrorHandlers.js","sources":["../../../src/lib/sentryErrorHandlers.ts"],"sourcesContent":["import * as Sentry from \"@sentry/node\";\n\nimport { checkIsSentryEnabled } from \"./checkIsSentryEnabled\";\n\nexport function trackSentryError(error: unknown): void {\n\tif (!checkIsSentryEnabled()) {\n\t\treturn;\n\t}\n\n\tSentry.captureException(error, {\n\t\t...(error instanceof Error ? { extra: { cause: error.cause } } : {}),\n\t});\n}\n"],"names":[],"mappings":";;AAIM,SAAU,iBAAiB,OAAc;AAC1C,MAAA,CAAC,wBAAwB;AAC5B;AAAA,EACA;AAED,SAAO,iBAAiB,OAAO;AAAA,IAC9B,GAAI,iBAAiB,QAAQ,EAAE,OAAO,EAAE,OAAO,MAAM,YAAY,CAAA;AAAA,EAAA,CACjE;AACF;"}
1
+ {"version":3,"file":"sentryErrorHandlers.js","sources":["../../../src/lib/sentryErrorHandlers.ts"],"sourcesContent":["import * as Sentry from \"@sentry/node\";\n\nimport { checkIsSentryEnabled } from \"./checkIsSentryEnabled\";\n\nexport function trackSentryError(error: unknown): void {\n\tif (!checkIsSentryEnabled()) {\n\t\treturn;\n\t}\n\n\tSentry.captureException(error, {\n\t\t...(error instanceof Error ? { extra: { cause: error.cause } } : {}),\n\t});\n}\n"],"names":[],"mappings":";;AAIM,SAAU,iBAAiB,OAAc;AAC1C,MAAA,CAAC,wBAAwB;AAC5B;AAAA,EACD;AAEA,SAAO,iBAAiB,OAAO;AAAA,IAC9B,GAAI,iBAAiB,QAAQ,EAAE,OAAO,EAAE,OAAO,MAAM,YAAY,CAAA;AAAA,EAAA,CACjE;AACF;"}
@@ -1 +1 @@
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
+ {"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,EACD;AAEA,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 +1 @@
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
+ {"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,EACD;AAEA,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 +1 @@
1
- {"version":3,"file":"starters.cjs","sources":["../../../src/lib/starters.ts"],"sourcesContent":["import { readFile } from \"node:fs/promises\";\nimport { join } from \"node:path\";\n\nimport { StarterId } from \"@slicemachine/manager\";\n\nconst STARTERS_REPOSITORY_NAME_TO_ID: Record<string, StarterId> = {\n\t\"nextjs-starter-prismic-multi-page\": \"next_multi_page\",\n\t\"nextjs-starter-prismic-blog\": \"next_blog\",\n\t\"nextjs-starter-prismic-multi-language\": \"next_multi_lang\",\n\t\"nuxt-starter-prismic-multi-page\": \"nuxt_multi_page\",\n\t\"nuxt-starter-prismic-blog\": \"nuxt_blog\",\n\t\"nuxt-starter-prismic-multi-language\": \"nuxt_multi_lang\",\n};\n\nexport const detectStarterId = async (\n\tcwd: string,\n): Promise<StarterId | undefined> => {\n\tconst path = join(cwd, \"package.json\");\n\n\ttry {\n\t\tconst pkg = JSON.parse(await readFile(path, \"utf-8\"));\n\n\t\treturn STARTERS_REPOSITORY_NAME_TO_ID[pkg.name];\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"],"names":["path","join","readFile"],"mappings":";;;;AAKA,MAAM,iCAA4D;AAAA,EACjE,qCAAqC;AAAA,EACrC,+BAA+B;AAAA,EAC/B,yCAAyC;AAAA,EACzC,mCAAmC;AAAA,EACnC,6BAA6B;AAAA,EAC7B,uCAAuC;;AAG3B,MAAA,kBAAkB,OAC9B,QACmC;AAC7B,QAAAA,SAAOC,KAAAA,KAAK,KAAK,cAAc;AAEjC,MAAA;AACH,UAAM,MAAM,KAAK,MAAM,MAAMC,GAAAA,SAASF,QAAM,OAAO,CAAC;AAE7C,WAAA,+BAA+B,IAAI,IAAI;AAAA,WACtC;AACR,UAAM,IAAI,MACT,kDAAkDA,YAClD,EAAE,OAAO,OAAO;AAAA,EAEjB;AACF;;"}
1
+ {"version":3,"file":"starters.cjs","sources":["../../../src/lib/starters.ts"],"sourcesContent":["import { readFile } from \"node:fs/promises\";\nimport { join } from \"node:path\";\n\nimport { StarterId } from \"@slicemachine/manager\";\n\nconst STARTERS_REPOSITORY_NAME_TO_ID: Record<string, StarterId> = {\n\t\"nextjs-starter-prismic-multi-page\": \"next_multi_page\",\n\t\"nextjs-starter-prismic-blog\": \"next_blog\",\n\t\"nextjs-starter-prismic-multi-language\": \"next_multi_lang\",\n\t\"nuxt-starter-prismic-multi-page\": \"nuxt_multi_page\",\n\t\"nuxt-starter-prismic-blog\": \"nuxt_blog\",\n\t\"nuxt-starter-prismic-multi-language\": \"nuxt_multi_lang\",\n};\n\nexport const detectStarterId = async (\n\tcwd: string,\n): Promise<StarterId | undefined> => {\n\tconst path = join(cwd, \"package.json\");\n\n\ttry {\n\t\tconst pkg = JSON.parse(await readFile(path, \"utf-8\"));\n\n\t\treturn STARTERS_REPOSITORY_NAME_TO_ID[pkg.name];\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"],"names":["path","join","readFile"],"mappings":";;;;AAKA,MAAM,iCAA4D;AAAA,EACjE,qCAAqC;AAAA,EACrC,+BAA+B;AAAA,EAC/B,yCAAyC;AAAA,EACzC,mCAAmC;AAAA,EACnC,6BAA6B;AAAA,EAC7B,uCAAuC;;AAG3B,MAAA,kBAAkB,OAC9B,QACmC;AAC7B,QAAAA,SAAOC,KAAAA,KAAK,KAAK,cAAc;AAEjC,MAAA;AACH,UAAM,MAAM,KAAK,MAAM,MAAMC,GAAAA,SAASF,QAAM,OAAO,CAAC;AAE7C,WAAA,+BAA+B,IAAI,IAAI;AAAA,WACtC;AACR,UAAM,IAAI,MACT,kDAAkDA,YAClD,EAAE,OAAO,OAAO;AAAA,EAElB;AACD;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"starters.js","sources":["../../../src/lib/starters.ts"],"sourcesContent":["import { readFile } from \"node:fs/promises\";\nimport { join } from \"node:path\";\n\nimport { StarterId } from \"@slicemachine/manager\";\n\nconst STARTERS_REPOSITORY_NAME_TO_ID: Record<string, StarterId> = {\n\t\"nextjs-starter-prismic-multi-page\": \"next_multi_page\",\n\t\"nextjs-starter-prismic-blog\": \"next_blog\",\n\t\"nextjs-starter-prismic-multi-language\": \"next_multi_lang\",\n\t\"nuxt-starter-prismic-multi-page\": \"nuxt_multi_page\",\n\t\"nuxt-starter-prismic-blog\": \"nuxt_blog\",\n\t\"nuxt-starter-prismic-multi-language\": \"nuxt_multi_lang\",\n};\n\nexport const detectStarterId = async (\n\tcwd: string,\n): Promise<StarterId | undefined> => {\n\tconst path = join(cwd, \"package.json\");\n\n\ttry {\n\t\tconst pkg = JSON.parse(await readFile(path, \"utf-8\"));\n\n\t\treturn STARTERS_REPOSITORY_NAME_TO_ID[pkg.name];\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"],"names":[],"mappings":";;AAKA,MAAM,iCAA4D;AAAA,EACjE,qCAAqC;AAAA,EACrC,+BAA+B;AAAA,EAC/B,yCAAyC;AAAA,EACzC,mCAAmC;AAAA,EACnC,6BAA6B;AAAA,EAC7B,uCAAuC;;AAG3B,MAAA,kBAAkB,OAC9B,QACmC;AAC7B,QAAA,OAAO,KAAK,KAAK,cAAc;AAEjC,MAAA;AACH,UAAM,MAAM,KAAK,MAAM,MAAM,SAAS,MAAM,OAAO,CAAC;AAE7C,WAAA,+BAA+B,IAAI,IAAI;AAAA,WACtC;AACR,UAAM,IAAI,MACT,kDAAkD,UAClD,EAAE,OAAO,OAAO;AAAA,EAEjB;AACF;"}
1
+ {"version":3,"file":"starters.js","sources":["../../../src/lib/starters.ts"],"sourcesContent":["import { readFile } from \"node:fs/promises\";\nimport { join } from \"node:path\";\n\nimport { StarterId } from \"@slicemachine/manager\";\n\nconst STARTERS_REPOSITORY_NAME_TO_ID: Record<string, StarterId> = {\n\t\"nextjs-starter-prismic-multi-page\": \"next_multi_page\",\n\t\"nextjs-starter-prismic-blog\": \"next_blog\",\n\t\"nextjs-starter-prismic-multi-language\": \"next_multi_lang\",\n\t\"nuxt-starter-prismic-multi-page\": \"nuxt_multi_page\",\n\t\"nuxt-starter-prismic-blog\": \"nuxt_blog\",\n\t\"nuxt-starter-prismic-multi-language\": \"nuxt_multi_lang\",\n};\n\nexport const detectStarterId = async (\n\tcwd: string,\n): Promise<StarterId | undefined> => {\n\tconst path = join(cwd, \"package.json\");\n\n\ttry {\n\t\tconst pkg = JSON.parse(await readFile(path, \"utf-8\"));\n\n\t\treturn STARTERS_REPOSITORY_NAME_TO_ID[pkg.name];\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"],"names":[],"mappings":";;AAKA,MAAM,iCAA4D;AAAA,EACjE,qCAAqC;AAAA,EACrC,+BAA+B;AAAA,EAC/B,yCAAyC;AAAA,EACzC,mCAAmC;AAAA,EACnC,6BAA6B;AAAA,EAC7B,uCAAuC;;AAG3B,MAAA,kBAAkB,OAC9B,QACmC;AAC7B,QAAA,OAAO,KAAK,KAAK,cAAc;AAEjC,MAAA;AACH,UAAM,MAAM,KAAK,MAAM,MAAM,SAAS,MAAM,OAAO,CAAC;AAE7C,WAAA,+BAA+B,IAAI,IAAI;AAAA,WACtC;AACR,UAAM,IAAI,MACT,kDAAkD,UAClD,EAAE,OAAO,OAAO;AAAA,EAElB;AACD;"}
@@ -1 +1 @@
1
- {"version":3,"file":"updateSentryContext.cjs","sources":["../../../src/lib/updateSentryContext.ts"],"sourcesContent":["import * as Sentry from \"@sentry/node\";\n\nimport { PrismicUserProfile, SliceMachineManager } from \"@slicemachine/manager\";\nimport { checkIsSentryEnabled } from \"./checkIsSentryEnabled\";\n\ntype UpdateSentryContextArgs = {\n\tmanager: SliceMachineManager;\n\trepositoryName: string;\n\tframework: string;\n};\n\nexport async function updateSentryContext({\n\tmanager,\n\trepositoryName,\n\tframework,\n}: UpdateSentryContextArgs): Promise<void> {\n\tif (!checkIsSentryEnabled()) {\n\t\treturn;\n\t}\n\n\tlet userProfile: PrismicUserProfile | undefined;\n\ttry {\n\t\tuserProfile = await manager.user.getProfile();\n\t} catch {\n\t\t// User is not logged in, it doesn't matter\n\t}\n\n\tif (userProfile) {\n\t\tSentry.setUser({ id: userProfile.shortId });\n\t}\n\n\tif (repositoryName) {\n\t\tSentry.setTag(\"repository\", repositoryName);\n\t\tSentry.setContext(\"Repository Data\", {\n\t\t\tname: repositoryName,\n\t\t});\n\t}\n\n\tif (framework) {\n\t\tSentry.setTag(\"framework\", framework);\n\t}\n\n\tSentry.setContext(\"Process\", {\n\t\t\"Command used\": process.argv.join(\" \"),\n\t\tcwd: process.cwd(),\n\t});\n}\n"],"names":["checkIsSentryEnabled","Sentry"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAWA,eAAsB,oBAAoB,EACzC,SACA,gBACA,aACyB;AACrB,MAAA,CAACA,6CAAwB;AAC5B;AAAA,EACA;AAEG,MAAA;AACA,MAAA;AACW,kBAAA,MAAM,QAAQ,KAAK;UAChC;AAAA,EAED;AAED,MAAI,aAAa;AAChBC,sBAAO,QAAQ,EAAE,IAAI,YAAY,QAAS,CAAA;AAAA,EAC1C;AAED,MAAI,gBAAgB;AACZA,sBAAA,OAAO,cAAc,cAAc;AAC1CA,sBAAO,WAAW,mBAAmB;AAAA,MACpC,MAAM;AAAA,IAAA,CACN;AAAA,EACD;AAED,MAAI,WAAW;AACPA,sBAAA,OAAO,aAAa,SAAS;AAAA,EACpC;AAEDA,oBAAO,WAAW,WAAW;AAAA,IAC5B,gBAAgB,QAAQ,KAAK,KAAK,GAAG;AAAA,IACrC,KAAK,QAAQ,IAAK;AAAA,EAAA,CAClB;AACF;;"}
1
+ {"version":3,"file":"updateSentryContext.cjs","sources":["../../../src/lib/updateSentryContext.ts"],"sourcesContent":["import * as Sentry from \"@sentry/node\";\n\nimport { PrismicUserProfile, SliceMachineManager } from \"@slicemachine/manager\";\nimport { checkIsSentryEnabled } from \"./checkIsSentryEnabled\";\n\ntype UpdateSentryContextArgs = {\n\tmanager: SliceMachineManager;\n\trepositoryName: string;\n\tframework: string;\n};\n\nexport async function updateSentryContext({\n\tmanager,\n\trepositoryName,\n\tframework,\n}: UpdateSentryContextArgs): Promise<void> {\n\tif (!checkIsSentryEnabled()) {\n\t\treturn;\n\t}\n\n\tlet userProfile: PrismicUserProfile | undefined;\n\ttry {\n\t\tuserProfile = await manager.user.getProfile();\n\t} catch {\n\t\t// User is not logged in, it doesn't matter\n\t}\n\n\tif (userProfile) {\n\t\tSentry.setUser({ id: userProfile.shortId });\n\t}\n\n\tif (repositoryName) {\n\t\tSentry.setTag(\"repository\", repositoryName);\n\t\tSentry.setContext(\"Repository Data\", {\n\t\t\tname: repositoryName,\n\t\t});\n\t}\n\n\tif (framework) {\n\t\tSentry.setTag(\"framework\", framework);\n\t}\n\n\tSentry.setContext(\"Process\", {\n\t\t\"Command used\": process.argv.join(\" \"),\n\t\tcwd: process.cwd(),\n\t});\n}\n"],"names":["checkIsSentryEnabled","Sentry"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAWA,eAAsB,oBAAoB,EACzC,SACA,gBACA,aACyB;AACrB,MAAA,CAACA,6CAAwB;AAC5B;AAAA,EACD;AAEI,MAAA;AACA,MAAA;AACW,kBAAA,MAAM,QAAQ,KAAK;UAChC;AAAA,EAEF;AAEA,MAAI,aAAa;AAChBC,sBAAO,QAAQ,EAAE,IAAI,YAAY,QAAS,CAAA;AAAA,EAC3C;AAEA,MAAI,gBAAgB;AACZA,sBAAA,OAAO,cAAc,cAAc;AAC1CA,sBAAO,WAAW,mBAAmB;AAAA,MACpC,MAAM;AAAA,IAAA,CACN;AAAA,EACF;AAEA,MAAI,WAAW;AACPA,sBAAA,OAAO,aAAa,SAAS;AAAA,EACrC;AAEAA,oBAAO,WAAW,WAAW;AAAA,IAC5B,gBAAgB,QAAQ,KAAK,KAAK,GAAG;AAAA,IACrC,KAAK,QAAQ,IAAK;AAAA,EAAA,CAClB;AACF;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"updateSentryContext.js","sources":["../../../src/lib/updateSentryContext.ts"],"sourcesContent":["import * as Sentry from \"@sentry/node\";\n\nimport { PrismicUserProfile, SliceMachineManager } from \"@slicemachine/manager\";\nimport { checkIsSentryEnabled } from \"./checkIsSentryEnabled\";\n\ntype UpdateSentryContextArgs = {\n\tmanager: SliceMachineManager;\n\trepositoryName: string;\n\tframework: string;\n};\n\nexport async function updateSentryContext({\n\tmanager,\n\trepositoryName,\n\tframework,\n}: UpdateSentryContextArgs): Promise<void> {\n\tif (!checkIsSentryEnabled()) {\n\t\treturn;\n\t}\n\n\tlet userProfile: PrismicUserProfile | undefined;\n\ttry {\n\t\tuserProfile = await manager.user.getProfile();\n\t} catch {\n\t\t// User is not logged in, it doesn't matter\n\t}\n\n\tif (userProfile) {\n\t\tSentry.setUser({ id: userProfile.shortId });\n\t}\n\n\tif (repositoryName) {\n\t\tSentry.setTag(\"repository\", repositoryName);\n\t\tSentry.setContext(\"Repository Data\", {\n\t\t\tname: repositoryName,\n\t\t});\n\t}\n\n\tif (framework) {\n\t\tSentry.setTag(\"framework\", framework);\n\t}\n\n\tSentry.setContext(\"Process\", {\n\t\t\"Command used\": process.argv.join(\" \"),\n\t\tcwd: process.cwd(),\n\t});\n}\n"],"names":[],"mappings":";;AAWA,eAAsB,oBAAoB,EACzC,SACA,gBACA,aACyB;AACrB,MAAA,CAAC,wBAAwB;AAC5B;AAAA,EACA;AAEG,MAAA;AACA,MAAA;AACW,kBAAA,MAAM,QAAQ,KAAK;UAChC;AAAA,EAED;AAED,MAAI,aAAa;AAChB,WAAO,QAAQ,EAAE,IAAI,YAAY,QAAS,CAAA;AAAA,EAC1C;AAED,MAAI,gBAAgB;AACZ,WAAA,OAAO,cAAc,cAAc;AAC1C,WAAO,WAAW,mBAAmB;AAAA,MACpC,MAAM;AAAA,IAAA,CACN;AAAA,EACD;AAED,MAAI,WAAW;AACP,WAAA,OAAO,aAAa,SAAS;AAAA,EACpC;AAED,SAAO,WAAW,WAAW;AAAA,IAC5B,gBAAgB,QAAQ,KAAK,KAAK,GAAG;AAAA,IACrC,KAAK,QAAQ,IAAK;AAAA,EAAA,CAClB;AACF;"}
1
+ {"version":3,"file":"updateSentryContext.js","sources":["../../../src/lib/updateSentryContext.ts"],"sourcesContent":["import * as Sentry from \"@sentry/node\";\n\nimport { PrismicUserProfile, SliceMachineManager } from \"@slicemachine/manager\";\nimport { checkIsSentryEnabled } from \"./checkIsSentryEnabled\";\n\ntype UpdateSentryContextArgs = {\n\tmanager: SliceMachineManager;\n\trepositoryName: string;\n\tframework: string;\n};\n\nexport async function updateSentryContext({\n\tmanager,\n\trepositoryName,\n\tframework,\n}: UpdateSentryContextArgs): Promise<void> {\n\tif (!checkIsSentryEnabled()) {\n\t\treturn;\n\t}\n\n\tlet userProfile: PrismicUserProfile | undefined;\n\ttry {\n\t\tuserProfile = await manager.user.getProfile();\n\t} catch {\n\t\t// User is not logged in, it doesn't matter\n\t}\n\n\tif (userProfile) {\n\t\tSentry.setUser({ id: userProfile.shortId });\n\t}\n\n\tif (repositoryName) {\n\t\tSentry.setTag(\"repository\", repositoryName);\n\t\tSentry.setContext(\"Repository Data\", {\n\t\t\tname: repositoryName,\n\t\t});\n\t}\n\n\tif (framework) {\n\t\tSentry.setTag(\"framework\", framework);\n\t}\n\n\tSentry.setContext(\"Process\", {\n\t\t\"Command used\": process.argv.join(\" \"),\n\t\tcwd: process.cwd(),\n\t});\n}\n"],"names":[],"mappings":";;AAWA,eAAsB,oBAAoB,EACzC,SACA,gBACA,aACyB;AACrB,MAAA,CAAC,wBAAwB;AAC5B;AAAA,EACD;AAEI,MAAA;AACA,MAAA;AACW,kBAAA,MAAM,QAAQ,KAAK;UAChC;AAAA,EAEF;AAEA,MAAI,aAAa;AAChB,WAAO,QAAQ,EAAE,IAAI,YAAY,QAAS,CAAA;AAAA,EAC3C;AAEA,MAAI,gBAAgB;AACZ,WAAA,OAAO,cAAc,cAAc;AAC1C,WAAO,WAAW,mBAAmB;AAAA,MACpC,MAAM;AAAA,IAAA,CACN;AAAA,EACF;AAEA,MAAI,WAAW;AACP,WAAA,OAAO,aAAa,SAAS;AAAA,EACrC;AAEA,SAAO,WAAW,WAAW;AAAA,IAC5B,gBAAgB,QAAQ,KAAK,KAAK,GAAG;AAAA,IACrC,KAAK,QAAQ,IAAK;AAAA,EAAA,CAClB;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.21-beta.9";
4
+ const version = "2.10.1-beta.1";
5
5
  const description = "Init Prismic Slice Machine in your project";
6
6
  const keywords = [
7
7
  "typescript",
@@ -98,7 +98,7 @@ const devDependencies = {
98
98
  const publishConfig = {
99
99
  access: "public"
100
100
  };
101
- const stableVersion = "2.9.20";
101
+ const stableVersion = "2.10.0";
102
102
  const pkg = {
103
103
  name,
104
104
  version,
@@ -1,5 +1,5 @@
1
1
  const name = "@slicemachine/init";
2
- const version = "2.9.21-beta.9";
2
+ const version = "2.10.1-beta.1";
3
3
  const description = "Init Prismic Slice Machine in your project";
4
4
  const keywords = [
5
5
  "typescript",
@@ -96,7 +96,7 @@ const devDependencies = {
96
96
  const publishConfig = {
97
97
  access: "public"
98
98
  };
99
- const stableVersion = "2.9.20";
99
+ const stableVersion = "2.10.0";
100
100
  const pkg = {
101
101
  name,
102
102
  version,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@slicemachine/init",
3
- "version": "2.9.21-beta.9",
3
+ "version": "2.10.1-beta.1",
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.116.0",
57
- "@slicemachine/manager": "0.19.4-beta.9",
57
+ "@slicemachine/manager": "0.19.5-beta.1",
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.43-beta.9",
71
+ "@slicemachine/plugin-kit": "0.4.44-beta.1",
72
72
  "@types/listr": "0.14.4",
73
73
  "@types/prompts": "2.4.3",
74
74
  "@types/semver": "7.3.13",
@@ -97,5 +97,5 @@
97
97
  "publishConfig": {
98
98
  "access": "public"
99
99
  },
100
- "stableVersion": "2.9.20"
100
+ "stableVersion": "2.10.0"
101
101
  }