@scenar/cli 0.3.0 → 0.4.0

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 (94) hide show
  1. package/package.json +4 -9
  2. package/src/__tests__/embed-snippet.test.ts +1 -1
  3. package/src/__tests__/install-command.test.ts +97 -0
  4. package/src/__tests__/local-url.test.ts +17 -0
  5. package/src/__tests__/run-install.test.ts +222 -0
  6. package/src/api.d.ts +3 -1
  7. package/src/api.d.ts.map +1 -1
  8. package/src/api.js +3 -1
  9. package/src/api.js.map +1 -1
  10. package/src/api.ts +10 -1
  11. package/src/commands/install.d.ts +3 -0
  12. package/src/commands/install.d.ts.map +1 -0
  13. package/src/commands/install.js +67 -0
  14. package/src/commands/install.js.map +1 -0
  15. package/src/commands/install.ts +89 -0
  16. package/src/commands/pack.js +2 -2
  17. package/src/commands/pack.js.map +1 -1
  18. package/src/commands/pack.ts +2 -2
  19. package/src/commands/serve.d.ts.map +1 -1
  20. package/src/commands/serve.js +1 -2
  21. package/src/commands/serve.js.map +1 -1
  22. package/src/commands/serve.ts +1 -2
  23. package/src/commands/try.js +1 -1
  24. package/src/commands/try.ts +1 -1
  25. package/src/embed/embed-snippet.d.ts.map +1 -0
  26. package/src/embed/embed-snippet.js.map +1 -0
  27. package/src/index.d.ts.map +1 -1
  28. package/src/index.js +3 -5
  29. package/src/index.js.map +1 -1
  30. package/src/index.ts +3 -5
  31. package/src/install/run-install.d.ts +72 -0
  32. package/src/install/run-install.d.ts.map +1 -0
  33. package/src/install/run-install.js +378 -0
  34. package/src/install/run-install.js.map +1 -0
  35. package/src/install/run-install.ts +461 -0
  36. package/src/install/scaffold.d.ts +29 -0
  37. package/src/install/scaffold.d.ts.map +1 -0
  38. package/src/install/scaffold.js +233 -0
  39. package/src/install/scaffold.js.map +1 -0
  40. package/src/install/scaffold.ts +255 -0
  41. package/src/pack/pack-manifest.d.ts +1 -1
  42. package/src/pack/pack-manifest.d.ts.map +1 -1
  43. package/src/pack/pack-manifest.ts +1 -1
  44. package/src/publish/publish-flow.d.ts +3 -3
  45. package/src/publish/publish-flow.js +3 -3
  46. package/src/publish/publish-flow.ts +3 -3
  47. package/src/publish/run-publish.js +1 -1
  48. package/src/publish/run-publish.js.map +1 -1
  49. package/src/publish/run-publish.ts +1 -1
  50. package/src/render/detect-render-export.d.ts +2 -2
  51. package/src/render/detect-render-export.js +2 -2
  52. package/src/render/detect-render-export.ts +2 -2
  53. package/src/serve/local-url.d.ts +8 -0
  54. package/src/serve/local-url.d.ts.map +1 -0
  55. package/src/serve/local-url.js +21 -0
  56. package/src/serve/local-url.js.map +1 -0
  57. package/src/serve/local-url.ts +20 -0
  58. package/src/serve/run-serve.js +2 -2
  59. package/src/serve/run-serve.js.map +1 -1
  60. package/src/serve/run-serve.ts +2 -2
  61. package/tsconfig.tsbuildinfo +1 -1
  62. package/src/__tests__/deploy-command.test.ts +0 -45
  63. package/src/__tests__/deploy-flow.test.ts +0 -125
  64. package/src/__tests__/deploy-upload.test.ts +0 -39
  65. package/src/commands/deploy.d.ts +0 -3
  66. package/src/commands/deploy.d.ts.map +0 -1
  67. package/src/commands/deploy.js +0 -150
  68. package/src/commands/deploy.js.map +0 -1
  69. package/src/commands/deploy.ts +0 -186
  70. package/src/commands/preview.d.ts +0 -3
  71. package/src/commands/preview.d.ts.map +0 -1
  72. package/src/commands/preview.js +0 -93
  73. package/src/commands/preview.js.map +0 -1
  74. package/src/commands/preview.ts +0 -138
  75. package/src/deploy/client.d.ts +0 -20
  76. package/src/deploy/client.d.ts.map +0 -1
  77. package/src/deploy/client.js +0 -22
  78. package/src/deploy/client.js.map +0 -1
  79. package/src/deploy/client.ts +0 -28
  80. package/src/deploy/deploy-flow.d.ts +0 -78
  81. package/src/deploy/deploy-flow.d.ts.map +0 -1
  82. package/src/deploy/deploy-flow.js +0 -53
  83. package/src/deploy/deploy-flow.js.map +0 -1
  84. package/src/deploy/deploy-flow.ts +0 -115
  85. package/src/deploy/embed-snippet.d.ts.map +0 -1
  86. package/src/deploy/embed-snippet.js.map +0 -1
  87. package/src/deploy/upload.d.ts +0 -10
  88. package/src/deploy/upload.d.ts.map +0 -1
  89. package/src/deploy/upload.js +0 -23
  90. package/src/deploy/upload.js.map +0 -1
  91. package/src/deploy/upload.ts +0 -29
  92. /package/src/{deploy → embed}/embed-snippet.d.ts +0 -0
  93. /package/src/{deploy → embed}/embed-snippet.js +0 -0
  94. /package/src/{deploy → embed}/embed-snippet.ts +0 -0
@@ -0,0 +1,21 @@
1
+ /**
2
+ * Derive a locally-viewable URL from an embed URL. Some local edges serve over
3
+ * http on `*.localhost` even when the URL is emitted as https; for those hosts
4
+ * we downgrade the scheme so the printed link is clickable. Production https
5
+ * URLs and non-URL input are returned unchanged.
6
+ */
7
+ export function localViewUrl(embedUrl) {
8
+ try {
9
+ const url = new URL(embedUrl);
10
+ const isLocal = url.hostname === "localhost" || url.hostname.endsWith(".localhost");
11
+ if (isLocal && url.protocol === "https:") {
12
+ url.protocol = "http:";
13
+ return url.toString();
14
+ }
15
+ }
16
+ catch {
17
+ // Not a parseable URL — return as-is.
18
+ }
19
+ return embedUrl;
20
+ }
21
+ //# sourceMappingURL=local-url.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"local-url.js","sourceRoot":"","sources":["../../../src/serve/local-url.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,MAAM,UAAU,YAAY,CAAC,QAAgB;IAC3C,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC9B,MAAM,OAAO,GACX,GAAG,CAAC,QAAQ,KAAK,WAAW,IAAI,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;QACtE,IAAI,OAAO,IAAI,GAAG,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;YACzC,GAAG,CAAC,QAAQ,GAAG,OAAO,CAAC;YACvB,OAAO,GAAG,CAAC,QAAQ,EAAE,CAAC;QACxB,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,sCAAsC;IACxC,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * Derive a locally-viewable URL from an embed URL. Some local edges serve over
3
+ * http on `*.localhost` even when the URL is emitted as https; for those hosts
4
+ * we downgrade the scheme so the printed link is clickable. Production https
5
+ * URLs and non-URL input are returned unchanged.
6
+ */
7
+ export function localViewUrl(embedUrl: string): string {
8
+ try {
9
+ const url = new URL(embedUrl);
10
+ const isLocal =
11
+ url.hostname === "localhost" || url.hostname.endsWith(".localhost");
12
+ if (isLocal && url.protocol === "https:") {
13
+ url.protocol = "http:";
14
+ return url.toString();
15
+ }
16
+ } catch {
17
+ // Not a parseable URL — return as-is.
18
+ }
19
+ return embedUrl;
20
+ }
@@ -1,7 +1,7 @@
1
1
  import { resolve, join } from "node:path";
2
2
  import { stat } from "node:fs/promises";
3
- import { buildEmbedSnippet, buildEnhancedEmbedSnippet } from "../deploy/embed-snippet.js";
4
- import { localViewUrl } from "../deploy/deploy-flow.js";
3
+ import { buildEmbedSnippet, buildEnhancedEmbedSnippet } from "../embed/embed-snippet.js";
4
+ import { localViewUrl } from "./local-url.js";
5
5
  import { readBundleViewport } from "../bundle/read-viewport.js";
6
6
  import { startBundleServer } from "./static-server.js";
7
7
  /** The servable entry every packed bundle contains at its root. */
@@ -1 +1 @@
1
- {"version":3,"file":"run-serve.js","sourceRoot":"","sources":["../../../src/serve/run-serve.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AACxC,OAAO,EAAE,iBAAiB,EAAE,yBAAyB,EAAE,MAAM,4BAA4B,CAAC;AAC1F,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAEhE,OAAO,EAAE,iBAAiB,EAA2B,MAAM,oBAAoB,CAAC;AAEhF,mEAAmE;AACnE,MAAM,UAAU,GAAG,YAAY,CAAC;AA2BhC;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAC,OAAwB;IACrD,MAAM,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAE/C,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;IACvD,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC;QACjC,MAAM,IAAI,KAAK,CACb,GAAG,OAAO,CAAC,SAAS,iEAAiE,CACtF,CAAC;IACJ,CAAC;IACD,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;IAC9E,IAAI,CAAC,SAAS,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,CAAC;QACtC,MAAM,IAAI,KAAK,CACb,MAAM,UAAU,OAAO,OAAO,CAAC,SAAS,2DAA2D,CACpG,CAAC;IACJ,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAAC;QACrC,OAAO,EAAE,WAAW;QACpB,IAAI,EAAE,OAAO,CAAC,IAAI;QAClB,IAAI,EAAE,OAAO,CAAC,IAAI;KACnB,CAAC,CAAC;IAEH,MAAM,GAAG,GAAG,YAAY,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IACrC,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,MAAM,kBAAkB,CAAC,WAAW,CAAC,CAAC;IACrE,MAAM,OAAO,GAAG,iBAAiB,CAAC,EAAE,QAAQ,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC,CAAC;IAC/D,MAAM,eAAe,GAAG,yBAAyB,CAAC,EAAE,QAAQ,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC,CAAC;IAE/E,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,gBAAgB,EAAE,QAAQ,EAAE,CAAC;AACzF,CAAC"}
1
+ {"version":3,"file":"run-serve.js","sourceRoot":"","sources":["../../../src/serve/run-serve.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AACxC,OAAO,EAAE,iBAAiB,EAAE,yBAAyB,EAAE,MAAM,2BAA2B,CAAC;AACzF,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAEhE,OAAO,EAAE,iBAAiB,EAA2B,MAAM,oBAAoB,CAAC;AAEhF,mEAAmE;AACnE,MAAM,UAAU,GAAG,YAAY,CAAC;AA2BhC;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAC,OAAwB;IACrD,MAAM,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAE/C,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;IACvD,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC;QACjC,MAAM,IAAI,KAAK,CACb,GAAG,OAAO,CAAC,SAAS,iEAAiE,CACtF,CAAC;IACJ,CAAC;IACD,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;IAC9E,IAAI,CAAC,SAAS,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,CAAC;QACtC,MAAM,IAAI,KAAK,CACb,MAAM,UAAU,OAAO,OAAO,CAAC,SAAS,2DAA2D,CACpG,CAAC;IACJ,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAAC;QACrC,OAAO,EAAE,WAAW;QACpB,IAAI,EAAE,OAAO,CAAC,IAAI;QAClB,IAAI,EAAE,OAAO,CAAC,IAAI;KACnB,CAAC,CAAC;IAEH,MAAM,GAAG,GAAG,YAAY,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IACrC,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,MAAM,kBAAkB,CAAC,WAAW,CAAC,CAAC;IACrE,MAAM,OAAO,GAAG,iBAAiB,CAAC,EAAE,QAAQ,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC,CAAC;IAC/D,MAAM,eAAe,GAAG,yBAAyB,CAAC,EAAE,QAAQ,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC,CAAC;IAE/E,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,gBAAgB,EAAE,QAAQ,EAAE,CAAC;AACzF,CAAC"}
@@ -1,7 +1,7 @@
1
1
  import { resolve, join } from "node:path";
2
2
  import { stat } from "node:fs/promises";
3
- import { buildEmbedSnippet, buildEnhancedEmbedSnippet } from "../deploy/embed-snippet.js";
4
- import { localViewUrl } from "../deploy/deploy-flow.js";
3
+ import { buildEmbedSnippet, buildEnhancedEmbedSnippet } from "../embed/embed-snippet.js";
4
+ import { localViewUrl } from "./local-url.js";
5
5
  import { readBundleViewport } from "../bundle/read-viewport.js";
6
6
  import type { Viewport } from "../pack/viewport.js";
7
7
  import { startBundleServer, type BundleServerHandle } from "./static-server.js";