@shell-shock/plugin-upgrade 0.1.3 → 0.1.4

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.
@@ -555,8 +555,7 @@ function GetLatestFunctionDeclaration() {
555
555
  function InstallFunctionDeclaration() {
556
556
  return [
557
557
  (0, __alloy_js_core_jsx_runtime.createComponent)(__alloy_js_typescript.InterfaceDeclaration, {
558
- "export": true,
559
- name: "InstallOptions",
558
+ name: "InstallBaseOptions",
560
559
  doc: "Options for the `install` handler function.",
561
560
  get children() {
562
561
  return [
@@ -572,18 +571,18 @@ function InstallFunctionDeclaration() {
572
571
  optional: true,
573
572
  type: "(string) => void",
574
573
  doc: "A callback function that is called with the stderr output of the command."
575
- }),
576
- (0, __alloy_js_core_jsx_runtime.createIntrinsic)("hbr", {}),
577
- (0, __alloy_js_core_jsx_runtime.createComponent)(__powerlines_plugin_alloy_typescript.InterfaceMember, {
578
- name: "color",
579
- optional: true,
580
- type: "boolean",
581
- doc: "Whether to enable color output in the command. If not provided, color output will be enabled by default."
582
574
  })
583
575
  ];
584
576
  }
585
577
  }),
586
578
  (0, __alloy_js_core_jsx_runtime.createComponent)(__powerlines_plugin_alloy_core_components_spacing.Spacing, {}),
579
+ (0, __alloy_js_core_jsx_runtime.createComponent)(__powerlines_plugin_alloy_typescript.TypeDeclaration, {
580
+ "export": true,
581
+ name: "InstallOptions",
582
+ doc: "Options for the `install` handler function.",
583
+ children: __alloy_js_core.code`InstallBaseOptions & Parameters<typeof spawn>[2];`
584
+ }),
585
+ (0, __alloy_js_core_jsx_runtime.createComponent)(__powerlines_plugin_alloy_core_components_spacing.Spacing, {}),
587
586
  (0, __alloy_js_core_jsx_runtime.createComponent)(__powerlines_plugin_alloy_typescript.TSDoc, {
588
587
  heading: "Install the application dependencies.",
589
588
  get children() {
@@ -607,7 +606,6 @@ function InstallFunctionDeclaration() {
607
606
  type: "InstallOptions",
608
607
  default: "{}"
609
608
  }],
610
- returnType: "Promise<string>",
611
609
  get children() {
612
610
  return [
613
611
  (0, __alloy_js_core_jsx_runtime.createComponent)(__alloy_js_typescript.VarDeclaration, {
@@ -615,46 +613,31 @@ function InstallFunctionDeclaration() {
615
613
  name: "packageManager",
616
614
  initializer: __alloy_js_core.code`getPackageManager(); `
617
615
  }),
618
- (0, __alloy_js_core_jsx_runtime.createIntrinsic)("hbr", {}),
616
+ (0, __alloy_js_core_jsx_runtime.createComponent)(__powerlines_plugin_alloy_core_components_spacing.Spacing, {}),
619
617
  (0, __alloy_js_core_jsx_runtime.createComponent)(__alloy_js_typescript.VarDeclaration, {
620
618
  "let": true,
621
619
  name: "output",
622
620
  initializer: __alloy_js_core.code`""; `
623
621
  }),
624
622
  (0, __alloy_js_core_jsx_runtime.createIntrinsic)("hbr", {}),
625
- __alloy_js_core.code`try {
626
- // await spawn(
627
- // \`\${packageManager}\${isWindows && packageManager !== "bun" ? ".cmd" : ""}\`,
628
- // ["install"],
629
- // {
630
- // stdout: (data: string) => {
631
- // options.stdout?.(data);
632
- // output += data;
633
- // },
634
- // stderr: (data: string) => {
635
- // options.stderr?.(data);
636
- // },
637
- // },
638
- // {
639
- // cwd: options.cwd ?? process.cwd(),
640
- // env: {
641
- // ...process.env,
642
- // ...(options.color !== false ? { FORCE_COLOR: true } : null),
643
- // // With spawn, pnpm install will fail with ERR_PNPM_PEER_DEP_ISSUES Unmet peer dependencies.
644
- // // When pnpm install is run directly from the terminal, this error does not occur.
645
- // // When pnpm install is run from a simple spawn script, this error does not occur.
646
- // // The issue only seems to be when pnpm install is executed from npm-check-updates, but it's not clear what configuration or environmental factors are causing this.
647
- // // For now, turn off strict-peer-dependencies on pnpm auto-install.
648
- // // See: https://github.com/raineorshine/npm-check-updates/issues/1191
649
- // ...(packageManager === 'pnpm' ? { npm_config_strict_peer_dependencies: false } : null),
650
- // },
651
- // },
652
- // );
653
- } catch (err) {
654
- console.error("Error executing install command:", err);
655
- throw err;
656
- }
657
- `
623
+ __alloy_js_core.code`await spawn(
624
+ \`\${packageManager}\${isWindows && packageManager !== "bun" ? ".cmd" : ""}\`,
625
+ ["install"],
626
+ {
627
+ ...options
628
+ env: {
629
+ ...options.env,
630
+ ...(packageManager === "pnpm" ? { npm_config_strict_peer_dependencies: false } : null),
631
+ },
632
+ stdout: (data: string) => {
633
+ options.stdout?.(data);
634
+ output += data;
635
+ },
636
+ stderr: (data: string) => {
637
+ options.stderr?.(data);
638
+ },
639
+ },
640
+ ); `
658
641
  ];
659
642
  }
660
643
  })
@@ -685,7 +668,8 @@ function UpgradeBuiltin(props) {
685
668
  "verbose",
686
669
  "writeLine"
687
670
  ],
688
- env: ["paths", "isWindows"]
671
+ env: ["paths", "isWindows"],
672
+ utils: ["isColorSupported", "spawn"]
689
673
  });
690
674
  },
691
675
  get children() {
@@ -1 +1 @@
1
- {"version":3,"file":"upgrade-builtin.d.cts","names":[],"sources":["../../src/components/upgrade-builtin.tsx"],"sourcesContent":[],"mappings":";;;;;;;AA2CgB,iBAAA,oCAAA,CAAA,CAAoC,EAAA,eAAA,CAAA,QAAA;AAwEpD;AAwFA;AAyIA;AA6KgB,iBA9YA,iCAAA,CAAA,CA8Y4B,EA9YK,eAAA,CAAA,QA8YL;AAwC5C;AAmGA;AAQA;iBAzcgB,oCAAA,CAAA,GAAoC,eAAA,CAAA;;;;iBAyIpC,kCAAA,CAAA,GAAkC,eAAA,CAAA;;;;iBA6KlC,4BAAA,CAAA,GAA4B,eAAA,CAAA;;;;iBAwC5B,0BAAA,CAAA,GAA0B,eAAA,CAAA;UAmGzB,mBAAA,SAA4B,KAC3C;;;;iBAOc,cAAA,QAAsB,sBAAmB,eAAA,CAAA"}
1
+ {"version":3,"file":"upgrade-builtin.d.cts","names":[],"sources":["../../src/components/upgrade-builtin.tsx"],"sourcesContent":[],"mappings":";;;;;;;AA2CgB,iBAAA,oCAAA,CAAA,CAAoC,EAAA,eAAA,CAAA,QAAA;AAwEpD;AAwFA;AAyIA;AA6KgB,iBA9YA,iCAAA,CAAA,CA8Y4B,EA9YK,eAAA,CAAA,QA8YL;AAwC5C;AAgFA;AAQA;iBAtbgB,oCAAA,CAAA,GAAoC,eAAA,CAAA;;;;iBAyIpC,kCAAA,CAAA,GAAkC,eAAA,CAAA;;;;iBA6KlC,4BAAA,CAAA,GAA4B,eAAA,CAAA;;;;iBAwC5B,0BAAA,CAAA,GAA0B,eAAA,CAAA;UAgFzB,mBAAA,SAA4B,KAC3C;;;;iBAOc,cAAA,QAAsB,sBAAmB,eAAA,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"upgrade-builtin.d.mts","names":[],"sources":["../../src/components/upgrade-builtin.tsx"],"sourcesContent":[],"mappings":";;;;;;;AA2CgB,iBAAA,oCAAA,CAAA,CAAoC,EAAA,eAAA,CAAA,QAAA;AAwEpD;AAwFA;AAyIA;AA6KgB,iBA9YA,iCAAA,CAAA,CA8Y4B,EA9YK,eAAA,CAAA,QA8YL;AAwC5C;AAmGA;AAQA;iBAzcgB,oCAAA,CAAA,GAAoC,eAAA,CAAA;;;;iBAyIpC,kCAAA,CAAA,GAAkC,eAAA,CAAA;;;;iBA6KlC,4BAAA,CAAA,GAA4B,eAAA,CAAA;;;;iBAwC5B,0BAAA,CAAA,GAA0B,eAAA,CAAA;UAmGzB,mBAAA,SAA4B,KAC3C;;;;iBAOc,cAAA,QAAsB,sBAAmB,eAAA,CAAA"}
1
+ {"version":3,"file":"upgrade-builtin.d.mts","names":[],"sources":["../../src/components/upgrade-builtin.tsx"],"sourcesContent":[],"mappings":";;;;;;;AA2CgB,iBAAA,oCAAA,CAAA,CAAoC,EAAA,eAAA,CAAA,QAAA;AAwEpD;AAwFA;AAyIA;AA6KgB,iBA9YA,iCAAA,CAAA,CA8Y4B,EA9YK,eAAA,CAAA,QA8YL;AAwC5C;AAgFA;AAQA;iBAtbgB,oCAAA,CAAA,GAAoC,eAAA,CAAA;;;;iBAyIpC,kCAAA,CAAA,GAAkC,eAAA,CAAA;;;;iBA6KlC,4BAAA,CAAA,GAA4B,eAAA,CAAA;;;;iBAwC5B,0BAAA,CAAA,GAA0B,eAAA,CAAA;UAgFzB,mBAAA,SAA4B,KAC3C;;;;iBAOc,cAAA,QAAsB,sBAAmB,eAAA,CAAA"}
@@ -553,8 +553,7 @@ function GetLatestFunctionDeclaration() {
553
553
  function InstallFunctionDeclaration() {
554
554
  return [
555
555
  createComponent(InterfaceDeclaration, {
556
- "export": true,
557
- name: "InstallOptions",
556
+ name: "InstallBaseOptions",
558
557
  doc: "Options for the `install` handler function.",
559
558
  get children() {
560
559
  return [
@@ -570,18 +569,18 @@ function InstallFunctionDeclaration() {
570
569
  optional: true,
571
570
  type: "(string) => void",
572
571
  doc: "A callback function that is called with the stderr output of the command."
573
- }),
574
- createIntrinsic("hbr", {}),
575
- createComponent(InterfaceMember, {
576
- name: "color",
577
- optional: true,
578
- type: "boolean",
579
- doc: "Whether to enable color output in the command. If not provided, color output will be enabled by default."
580
572
  })
581
573
  ];
582
574
  }
583
575
  }),
584
576
  createComponent(Spacing, {}),
577
+ createComponent(TypeDeclaration, {
578
+ "export": true,
579
+ name: "InstallOptions",
580
+ doc: "Options for the `install` handler function.",
581
+ children: code`InstallBaseOptions & Parameters<typeof spawn>[2];`
582
+ }),
583
+ createComponent(Spacing, {}),
585
584
  createComponent(TSDoc, {
586
585
  heading: "Install the application dependencies.",
587
586
  get children() {
@@ -605,7 +604,6 @@ function InstallFunctionDeclaration() {
605
604
  type: "InstallOptions",
606
605
  default: "{}"
607
606
  }],
608
- returnType: "Promise<string>",
609
607
  get children() {
610
608
  return [
611
609
  createComponent(VarDeclaration, {
@@ -613,46 +611,31 @@ function InstallFunctionDeclaration() {
613
611
  name: "packageManager",
614
612
  initializer: code`getPackageManager(); `
615
613
  }),
616
- createIntrinsic("hbr", {}),
614
+ createComponent(Spacing, {}),
617
615
  createComponent(VarDeclaration, {
618
616
  "let": true,
619
617
  name: "output",
620
618
  initializer: code`""; `
621
619
  }),
622
620
  createIntrinsic("hbr", {}),
623
- code`try {
624
- // await spawn(
625
- // \`\${packageManager}\${isWindows && packageManager !== "bun" ? ".cmd" : ""}\`,
626
- // ["install"],
627
- // {
628
- // stdout: (data: string) => {
629
- // options.stdout?.(data);
630
- // output += data;
631
- // },
632
- // stderr: (data: string) => {
633
- // options.stderr?.(data);
634
- // },
635
- // },
636
- // {
637
- // cwd: options.cwd ?? process.cwd(),
638
- // env: {
639
- // ...process.env,
640
- // ...(options.color !== false ? { FORCE_COLOR: true } : null),
641
- // // With spawn, pnpm install will fail with ERR_PNPM_PEER_DEP_ISSUES Unmet peer dependencies.
642
- // // When pnpm install is run directly from the terminal, this error does not occur.
643
- // // When pnpm install is run from a simple spawn script, this error does not occur.
644
- // // The issue only seems to be when pnpm install is executed from npm-check-updates, but it's not clear what configuration or environmental factors are causing this.
645
- // // For now, turn off strict-peer-dependencies on pnpm auto-install.
646
- // // See: https://github.com/raineorshine/npm-check-updates/issues/1191
647
- // ...(packageManager === 'pnpm' ? { npm_config_strict_peer_dependencies: false } : null),
648
- // },
649
- // },
650
- // );
651
- } catch (err) {
652
- console.error("Error executing install command:", err);
653
- throw err;
654
- }
655
- `
621
+ code`await spawn(
622
+ \`\${packageManager}\${isWindows && packageManager !== "bun" ? ".cmd" : ""}\`,
623
+ ["install"],
624
+ {
625
+ ...options
626
+ env: {
627
+ ...options.env,
628
+ ...(packageManager === "pnpm" ? { npm_config_strict_peer_dependencies: false } : null),
629
+ },
630
+ stdout: (data: string) => {
631
+ options.stdout?.(data);
632
+ output += data;
633
+ },
634
+ stderr: (data: string) => {
635
+ options.stderr?.(data);
636
+ },
637
+ },
638
+ ); `
656
639
  ];
657
640
  }
658
641
  })
@@ -683,7 +666,8 @@ function UpgradeBuiltin(props) {
683
666
  "verbose",
684
667
  "writeLine"
685
668
  ],
686
- env: ["paths", "isWindows"]
669
+ env: ["paths", "isWindows"],
670
+ utils: ["isColorSupported", "spawn"]
687
671
  });
688
672
  },
689
673
  get children() {
@@ -1 +1 @@
1
- {"version":3,"file":"upgrade-builtin.mjs","names":["code","Show","splitProps","ElseClause","ElseIfClause","FunctionDeclaration","IfStatement","InterfaceDeclaration","VarDeclaration","Spacing","InterfaceMember","TSDoc","TSDocParam","TSDocRemarks","TSDocReturns","TypeDeclaration","BuiltinFile","defu","LocatePackageJsonFunctionDeclaration","_$createComponent","name","doc","children","optional","type","heading","async","parameters","default","returnType","initializer","_$createIntrinsic","condition","LocateLockfileFunctionDeclaration","GetPackageManagerFunctionDeclaration","FetchNpmPackageFunctionDeclaration","GetLatestFunctionDeclaration","InstallFunctionDeclaration","UpgradeBuiltin","props","rest","_$mergeProps","id","description","imports","builtinImports","console","env","when","Boolean"],"sources":["../../src/components/upgrade-builtin.tsx"],"sourcesContent":["/* -------------------------------------------------------------------\n\n ⚡ Storm Software - Shell Shock\n\n This code was released as part of the Shell Shock project. Shell Shock\n is maintained by Storm Software under the Apache-2.0 license, and is\n free for commercial and private use. For more information, please visit\n our licensing page at https://stormsoftware.com/licenses/projects/shell-shock.\n\n Website: https://stormsoftware.com\n Repository: https://github.com/storm-software/shell-shock\n Documentation: https://docs.stormsoftware.com/projects/shell-shock\n Contact: https://stormsoftware.com/contact\n\n SPDX-License-Identifier: Apache-2.0\n\n ------------------------------------------------------------------- */\n\nimport { code, Show, splitProps } from \"@alloy-js/core\";\nimport {\n ElseClause,\n ElseIfClause,\n FunctionDeclaration,\n IfStatement,\n InterfaceDeclaration,\n VarDeclaration\n} from \"@alloy-js/typescript\";\nimport { Spacing } from \"@powerlines/plugin-alloy/core/components/spacing\";\nimport {\n InterfaceMember,\n TSDoc,\n TSDocParam,\n TSDocRemarks,\n TSDocReturns,\n TypeDeclaration\n} from \"@powerlines/plugin-alloy/typescript\";\nimport type { BuiltinFileProps } from \"@powerlines/plugin-alloy/typescript/components/builtin-file\";\nimport { BuiltinFile } from \"@powerlines/plugin-alloy/typescript/components/builtin-file\";\nimport defu from \"defu\";\n\n/**\n * The `locatePackageJson` handler function declaration code for the Shell Shock project.\n */\nexport function LocatePackageJsonFunctionDeclaration() {\n return (\n <>\n <InterfaceDeclaration\n export\n name=\"LocatePackageJsonOptions\"\n doc=\"Options for the `locatePackageJson` handler function.\">\n <InterfaceMember\n name=\"cwd\"\n optional\n type=\"string\"\n doc=\"The current working directory to use. If not provided, the process's current working directory will be used.\"\n />\n </InterfaceDeclaration>\n <Spacing />\n <TSDoc heading=\"Locate the package.json file currently being used by the command-line/workspace.\">\n <TSDocRemarks>\n {`This function is used to determine the package.json file currently being used by the command-line/workspace. It can be used in the CLI upgrade command to check if the application is using npm, yarn, or another package manager.`}\n </TSDocRemarks>\n <Spacing />\n <TSDocParam name=\"options\">\n {`The options for the \\`locatePackageJson\\` function. Currently, there are no options available, but this parameter is included for future extensibility.`}\n </TSDocParam>\n <TSDocReturns>\n {`A promise that resolves to the package.json file currently being used by the command-line/workspace as a string.`}\n </TSDocReturns>\n </TSDoc>\n <FunctionDeclaration\n export\n async\n name=\"locatePackageJson\"\n parameters={[\n {\n name: \"options\",\n type: \"LocatePackageJsonOptions\",\n default: \"{}\"\n }\n ]}\n returnType=\"string | undefined\">\n <VarDeclaration\n let\n name=\"currentPath\"\n type=\"string\"\n initializer={code`options.cwd ?? process.cwd(); `}\n />\n <hbr />\n <VarDeclaration\n let\n name=\"parentPath\"\n initializer={code`resolve(currentPath, \"..\"); `}\n />\n <Spacing />\n {code`while (parentPath !== currentPath && currentPath !== homePath && currentPath !== tempPath) { `}\n <IfStatement\n condition={code`existsSync(join(currentPath, \"package.json\"))`}>\n {code`return join(currentPath, \"package.json\"); `}\n </IfStatement>\n <ElseClause>\n {code`currentPath = pathParent;\n parentPath = resolve(currentPath, \"..\"); `}\n </ElseClause>\n {code` }\n\n return undefined; `}\n </FunctionDeclaration>\n </>\n );\n}\n\n/**\n * The `locateLockfile` handler function declaration code for the Shell Shock project.\n */\nexport function LocateLockfileFunctionDeclaration() {\n return (\n <>\n <InterfaceDeclaration\n export\n name=\"LocateLockfileOptions\"\n doc=\"Options for the `locateLockfile` handler function.\">\n <InterfaceMember\n name=\"cwd\"\n optional\n type=\"string\"\n doc=\"The current working directory to use. If not provided, the process's current working directory will be used.\"\n />\n </InterfaceDeclaration>\n <Spacing />\n <TSDoc heading=\"Locate the lockfile currently being used by the command-line/workspace.\">\n <TSDocRemarks>\n {`This function is used to determine the lockfile currently being used by the command-line/workspace. It can be used in the CLI upgrade command to check if the application is using npm, yarn, or another package manager.`}\n </TSDocRemarks>\n <Spacing />\n <TSDocParam name=\"options\">\n {`The options for the \\`locateLockfile\\` function. Currently, there are no options available, but this parameter is included for future extensibility.`}\n </TSDocParam>\n <TSDocReturns>\n {`A promise that resolves to the lockfile currently being used by the command-line/workspace as a string.`}\n </TSDocReturns>\n </TSDoc>\n <FunctionDeclaration\n export\n async\n name=\"locateLockfile\"\n parameters={[\n {\n name: \"options\",\n type: \"LocateLockfileOptions\",\n default: \"{}\"\n }\n ]}\n returnType=\"string | undefined\">\n <VarDeclaration\n let\n name=\"currentPath\"\n type=\"string\"\n initializer={code`options.cwd ?? process.cwd(); `}\n />\n <hbr />\n <VarDeclaration\n let\n name=\"parentPath\"\n initializer={code`resolve(currentPath, \"..\"); `}\n />\n <Spacing />\n {code`while (parentPath !== currentPath && currentPath !== homePath && currentPath !== tempPath) { `}\n <VarDeclaration\n const\n name=\"lockfile\"\n initializer={code`[\n \"package-lock.json\",\n \"npm-shrinkwrap.json\",\n \"yarn.lock\",\n \"pnpm-lock.yaml\",\n \"pnpm-workspace.yaml\",\n \"deno.lock\",\n \"deno.json\",\n \"deno.jsonc\",\n \"bun.lock\",\n \"bun.lockb\"\n ].find(lf => existsSync(join(currentPath, lf))); `}\n />\n <hbr />\n <IfStatement condition={code`lockfile`}>\n {code`return lockfile; `}\n </IfStatement>\n <ElseClause>\n {code`currentPath = pathParent;\n parentPath = resolve(currentPath, \"..\"); `}\n </ElseClause>\n {code` }\n\n return undefined; `}\n </FunctionDeclaration>\n </>\n );\n}\n\n/**\n * The `getPackageManager` handler function declaration code for the Shell Shock project.\n */\nexport function GetPackageManagerFunctionDeclaration() {\n return (\n <>\n <TypeDeclaration\n export\n name=\"GetPackageManagerOptions\"\n doc=\"Options for the `getPackageManager` handler function.\">{code`LocateLockfileOptions;`}</TypeDeclaration>\n <Spacing />\n <TSDoc heading=\"Get the package manager currently being used by the command-line/workspace.\">\n <TSDocRemarks>\n {`This function is used to determine the package manager currently being used by the command-line/workspace. It can be used in the CLI upgrade command to check if the application is using npm, yarn, or another package manager.`}\n </TSDocRemarks>\n <Spacing />\n <TSDocParam name=\"options\">\n {`The options for the \\`getPackageManager\\` function. Currently, there are no options available, but this parameter is included for future extensibility.`}\n </TSDocParam>\n <TSDocReturns>\n {`A promise that resolves to the package manager currently being used by the command-line/workspace as a string.`}\n </TSDocReturns>\n </TSDoc>\n <FunctionDeclaration\n export\n async\n name=\"getPackageManager\"\n parameters={[\n {\n name: \"options\",\n type: \"GetPackageManagerOptions\",\n default: \"{}\"\n }\n ]}\n returnType={code`Promise<\"npm\" | \"yarn\" | \"deno\" | \"pnpm\" | \"bun\">`}>\n <VarDeclaration\n const\n name=\"userAgent\"\n type=\"string\"\n initializer={code`process.env.npm_config_user_agent ?? \"\"; `}\n />\n <hbr />\n <VarDeclaration\n const\n name=\"execPath\"\n type=\"string\"\n initializer={code`process.env.npm_execpath ?? \"\"; `}\n />\n <Spacing />\n <IfStatement\n condition={code`userAgent.startsWith(\"yarn\") || execPath.includes(\"yarn\")`}>\n {code`return \"yarn\"; `}\n </IfStatement>\n <ElseIfClause\n condition={code`userAgent.startsWith(\"pnpm\") || execPath.includes(\"pnpm\")`}>\n {code`return \"pnpm\"; `}\n </ElseIfClause>\n <ElseIfClause\n condition={code`userAgent.startsWith(\"bun\") || execPath.includes(\"bun\") || typeof Bun !== \"undefined\" || process.versions.bun`}>\n {code`return \"bun\"; `}\n </ElseIfClause>\n <ElseClause>\n <VarDeclaration\n const\n name=\"lockfilePath\"\n initializer={code`locateLockfile(options); `}\n />\n <Spacing />\n <IfStatement condition={code`lockfilePath === \"yarn.lock\"`}>\n {code`return \"yarn\"; `}\n </IfStatement>\n <ElseIfClause\n condition={code`lockfilePath === \"deno.lock\" || lockfilePath === \"deno.json\" || lockfilePath === \"deno.jsonc\"`}>\n {code`return \"deno\"; `}\n </ElseIfClause>\n <ElseIfClause\n condition={code`lockfilePath === \"pnpm-lock.yaml\" || lockfilePath === \"pnpm-workspace.yaml\"`}>\n {code`return \"pnpm\"; `}\n </ElseIfClause>\n <ElseIfClause\n condition={code`lockfilePath === \"bun.lock\" || lockfilePath === \"bun.lockb\"`}>\n {code`return \"bun\"; `}\n </ElseIfClause>\n <ElseClause>\n <VarDeclaration\n const\n name=\"packageJsonPath\"\n initializer={code`locatePackageJson(options); `}\n />\n <IfStatement\n condition={code`packageJsonPath && existsSync(packageJsonPath)`}>\n <VarDeclaration\n const\n name=\"packageJson\"\n initializer={code`JSON.parse(await readFile(packageJsonPath, \"utf8\")); `}\n />\n <IfStatement\n condition={code`packageJson.devEngines?.packageManager?.name && typeof packageJson.devEngines.packageManager.name === \"string\" && [\"npm\", \"yarn\", \"pnpm\", \"deno\", \"bun\"].includes(packageJson.devEngines.packageManager.name)`}>\n {code`return packageJson.devEngines.packageManager.name; `}\n </IfStatement>\n <Spacing />\n <VarDeclaration\n const\n name=\"dependencies\"\n initializer={code`{\n ...packageJson.dependencies,\n ...packageJson.devDependencies,\n ...packageJson.peerDependencies,\n ...packageJson.optionalDependencies,\n }; `}\n />\n <IfStatement\n condition={code`Object.keys(dependencies).some(dep => dep === \"yarn\" || dep.startsWith(\"yarn@\") || dep === \"yarnpkg\" || dep.startsWith(\"yarnpkg@\"))`}>\n {code`return \"yarn\"; `}\n </IfStatement>\n <ElseIfClause\n condition={code`Object.keys(dependencies).some(dep => dep === \"bun\" || dep.startsWith(\"bun@\"))`}>\n {code`return \"bun\"; `}\n </ElseIfClause>\n <ElseIfClause\n condition={code`Object.keys(dependencies).some(dep => dep === \"pnpm\" || dep.startsWith(\"pnpm@\"))`}>\n {code`return \"pnpm\"; `}\n </ElseIfClause>\n <ElseIfClause\n condition={code`Object.keys(dependencies).some(dep => dep === \"deno\" || dep.startsWith(\"deno@\"))`}>\n {code`return \"deno\"; `}\n </ElseIfClause>\n </IfStatement>\n <Spacing />\n {code`return \"npm\"; `}\n </ElseClause>\n </ElseClause>\n </FunctionDeclaration>\n </>\n );\n}\n\n/**\n * The `fetchNpmPackage` handler function declaration code for the Shell Shock project.\n */\nexport function FetchNpmPackageFunctionDeclaration() {\n return (\n <>\n <InterfaceDeclaration\n export\n name=\"NpmPackageMaintainer\"\n doc=\"Represents a maintainer of an npm package.\">\n <InterfaceMember\n name=\"email\"\n type=\"string\"\n doc=\"The email of the npm package maintainer.\"\n />\n <hbr />\n <InterfaceMember\n name=\"username\"\n type=\"string\"\n doc=\"The username of the npm package maintainer.\"\n />\n </InterfaceDeclaration>\n <Spacing />\n <InterfaceDeclaration\n export\n name=\"NpmPackageLinks\"\n doc=\"Represents the links of an npm package.\">\n <InterfaceMember\n name=\"homepage\"\n type=\"string\"\n optional\n doc=\"The homepage of the npm package.\"\n />\n <hbr />\n <InterfaceMember\n name=\"repository\"\n type=\"string\"\n optional\n doc=\"The repository of the npm package.\"\n />\n <hbr />\n <InterfaceMember\n name=\"bugs\"\n type=\"string\"\n optional\n doc=\"The bugs page of the npm package.\"\n />\n <hbr />\n <InterfaceMember\n name=\"npm\"\n type=\"string\"\n optional\n doc=\"The npm page of the npm package.\"\n />\n </InterfaceDeclaration>\n <Spacing />\n <InterfaceDeclaration\n export\n name=\"NpmPackage\"\n doc=\"Represents an npm package.\">\n <InterfaceMember\n name=\"name\"\n type=\"string\"\n doc=\"The name of the npm package.\"\n />\n <hbr />\n <InterfaceMember\n name=\"date\"\n type=\"Date\"\n doc=\"The date when the npm package was last updated.\"\n />\n <hbr />\n <InterfaceMember\n name=\"version\"\n type=\"string\"\n doc=\"The version of the npm package.\"\n />\n <hbr />\n <InterfaceMember\n name=\"description\"\n type=\"string\"\n optional\n doc=\"The description of the npm package.\"\n />\n <hbr />\n <InterfaceMember\n name=\"keywords\"\n type=\"string[]\"\n doc=\"A list of keywords associated with the npm package.\"\n />\n <hbr />\n <InterfaceMember\n name=\"license\"\n type=\"string\"\n optional\n doc=\"The license of the npm package.\"\n />\n <hbr />\n <InterfaceMember\n name=\"maintainers\"\n type=\"NpmPackageMaintainer[]\"\n doc=\"The maintainers of the npm package.\"\n />\n <hbr />\n <InterfaceMember\n name=\"links\"\n type=\"NpmPackageLinks\"\n doc=\"The links of the npm package.\"\n />\n <hbr />\n </InterfaceDeclaration>\n <Spacing />\n <InterfaceDeclaration\n export\n name=\"NpmPackageSearchResultItem\"\n doc=\"Represents an npm package search result item.\">\n <InterfaceMember\n name=\"package\"\n type=\"NpmPackage\"\n doc=\"The npm package details.\"\n />\n </InterfaceDeclaration>\n <Spacing />\n <InterfaceDeclaration\n export\n name=\"NpmPackageSearchResult\"\n doc=\"Represents an npm package search result.\">\n <InterfaceMember\n name=\"objects\"\n type=\"NpmPackageSearchResultItem[]\"\n doc=\"The list of npm package search result items.\"\n />\n </InterfaceDeclaration>\n <Spacing />\n <TSDoc heading=\"Fetch details of an npm package.\">\n <TSDocRemarks>\n {`This function is used to fetch an npm package. It can be used in the CLI upgrade command to check if the application is using npm, yarn, or another package manager.`}\n </TSDocRemarks>\n <Spacing />\n <TSDocParam name=\"packageName\">\n {`The name of the npm package to fetch.`}\n </TSDocParam>\n <TSDocReturns>\n {`A promise that resolves to the npm package details or undefined if the package is not found.`}\n </TSDocReturns>\n </TSDoc>\n <FunctionDeclaration\n export\n async\n name=\"fetchNpmPackage\"\n parameters={[\n {\n name: \"packageName\",\n type: \"string\"\n }\n ]}\n returnType={code`Promise<NpmPackage | undefined>`}>\n <VarDeclaration\n const\n name=\"result\"\n initializer={code` await fetch(\\`https://registry.npmjs.com/-/v1/search?text=\\${packageName}&size=1\\`).then(res => res.json()) as NpmPackageSearchResult; `}\n />\n <hbr />\n <IfStatement\n condition={code`result.objects && result.objects.length > 0 && result.objects[0].package && result.objects[0].package.name === packageName`}>\n {code`return result.objects[0].package; `}\n </IfStatement>\n <ElseClause>{code`return undefined; `}</ElseClause>\n </FunctionDeclaration>\n </>\n );\n}\n\n/**\n * The `getLatest` handler function declaration code for the Shell Shock project.\n */\nexport function GetLatestFunctionDeclaration() {\n return (\n <>\n <TSDoc heading=\"Get the latest version of the application from the npm registry.\">\n <TSDocRemarks>\n {`This function is used to retrieve the latest version of the application from the npm registry. It can be used in the CLI upgrade command to check if there is a newer version of the application available.`}\n </TSDocRemarks>\n <Spacing />\n <TSDocParam name=\"packageName\">\n {`The name of the npm package to fetch.`}\n </TSDocParam>\n <TSDocReturns>\n {`A promise that resolves to the latest version of the specified npm package as a string.`}\n </TSDocReturns>\n </TSDoc>\n <FunctionDeclaration\n export\n async\n name=\"getLatest\"\n parameters={[\n {\n name: \"packageName\",\n type: \"string\"\n }\n ]}>\n <VarDeclaration\n const\n name=\"package\"\n initializer={code`await fetchNpmPackage(packageName); `}\n />\n <Spacing />\n {code`return package?.version; `}\n </FunctionDeclaration>\n </>\n );\n}\n\n/**\n * The `install` handler function declaration code for the Shell Shock project.\n */\nexport function InstallFunctionDeclaration() {\n return (\n <>\n <InterfaceDeclaration\n export\n name=\"InstallOptions\"\n doc=\"Options for the `install` handler function.\">\n <InterfaceMember\n name=\"stdout\"\n optional\n type=\"(string) => void\"\n doc=\"A callback function that is called with the stdout output of the command.\"\n />\n <hbr />\n <InterfaceMember\n name=\"stderr\"\n optional\n type=\"(string) => void\"\n doc=\"A callback function that is called with the stderr output of the command.\"\n />\n <hbr />\n <InterfaceMember\n name=\"color\"\n optional\n type=\"boolean\"\n doc=\"Whether to enable color output in the command. If not provided, color output will be enabled by default.\"\n />\n </InterfaceDeclaration>\n <Spacing />\n <TSDoc heading=\"Install the application dependencies.\">\n <TSDocRemarks>\n {`This function is used to install the application dependencies. It can be used in the CLI upgrade command to ensure that all necessary dependencies are installed.`}\n </TSDocRemarks>\n <Spacing />\n <TSDocParam name=\"options\">\n {`The options for the \\`install\\` function. Currently, there are no options available, but this parameter is included for future extensibility.`}\n </TSDocParam>\n <TSDocReturns>\n {`A promise that resolves when the installation of dependencies is complete.`}\n </TSDocReturns>\n </TSDoc>\n <FunctionDeclaration\n export\n async\n name=\"install\"\n parameters={[\n {\n name: \"options\",\n type: \"InstallOptions\",\n default: \"{}\"\n }\n ]}\n returnType=\"Promise<string>\">\n <VarDeclaration\n const\n name=\"packageManager\"\n initializer={code`getPackageManager(); `}\n />\n <hbr />\n <VarDeclaration let name=\"output\" initializer={code`\"\"; `} />\n <hbr />\n {code`try {\n // await spawn(\n // \\`\\${packageManager}\\${isWindows && packageManager !== \"bun\" ? \".cmd\" : \"\"}\\`,\n // [\"install\"],\n // {\n // stdout: (data: string) => {\n // options.stdout?.(data);\n // output += data;\n // },\n // stderr: (data: string) => {\n // options.stderr?.(data);\n // },\n // },\n // {\n // cwd: options.cwd ?? process.cwd(),\n // env: {\n // ...process.env,\n // ...(options.color !== false ? { FORCE_COLOR: true } : null),\n // // With spawn, pnpm install will fail with ERR_PNPM_PEER_DEP_ISSUES Unmet peer dependencies.\n // // When pnpm install is run directly from the terminal, this error does not occur.\n // // When pnpm install is run from a simple spawn script, this error does not occur.\n // // The issue only seems to be when pnpm install is executed from npm-check-updates, but it's not clear what configuration or environmental factors are causing this.\n // // For now, turn off strict-peer-dependencies on pnpm auto-install.\n // // See: https://github.com/raineorshine/npm-check-updates/issues/1191\n // ...(packageManager === 'pnpm' ? { npm_config_strict_peer_dependencies: false } : null),\n // },\n // },\n // );\n } catch (err) {\n console.error(\"Error executing install command:\", err);\n throw err;\n }\n `}\n </FunctionDeclaration>\n </>\n );\n}\n\nexport interface UpgradeBuiltinProps extends Omit<\n BuiltinFileProps,\n \"id\" | \"description\"\n> {}\n\n/**\n * A built-in upgrade module for Shell Shock.\n */\nexport function UpgradeBuiltin(props: UpgradeBuiltinProps) {\n const [{ children }, rest] = splitProps(props, [\"children\"]);\n\n return (\n <BuiltinFile\n id=\"upgrade\"\n description=\"A collection of application upgrade utility functions for Shell Shock.\"\n {...rest}\n imports={defu(rest.imports ?? {}, {\n \"node:os\": \"os\",\n \"node:path\": [\"join\", \"resolve\"],\n \"node:fs\": [\"existsSync\"],\n \"node:fs/promises\": [\"readFile\", \"writeFile\"],\n \"node:process\": \"process\"\n })}\n builtinImports={defu(rest.builtinImports ?? {}, {\n console: [\"error\", \"verbose\", \"writeLine\"],\n env: [\"paths\", \"isWindows\"]\n })}>\n <VarDeclaration\n const\n name=\"homePath\"\n type=\"string\"\n initializer={code`os.homedir(); `}\n />\n <Spacing />\n <VarDeclaration\n const\n name=\"tempPath\"\n type=\"string\"\n initializer={code`os.tmpdir(); `}\n />\n <Spacing />\n <LocateLockfileFunctionDeclaration />\n <Spacing />\n <GetPackageManagerFunctionDeclaration />\n <Spacing />\n <FetchNpmPackageFunctionDeclaration />\n <Spacing />\n <GetLatestFunctionDeclaration />\n <Spacing />\n <InstallFunctionDeclaration />\n <Spacing />\n <Show when={Boolean(children)}>{children}</Show>\n </BuiltinFile>\n );\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"upgrade-builtin.mjs","names":["code","Show","splitProps","ElseClause","ElseIfClause","FunctionDeclaration","IfStatement","InterfaceDeclaration","VarDeclaration","Spacing","InterfaceMember","TSDoc","TSDocParam","TSDocRemarks","TSDocReturns","TypeDeclaration","BuiltinFile","defu","LocatePackageJsonFunctionDeclaration","_$createComponent","name","doc","children","optional","type","heading","async","parameters","default","returnType","initializer","_$createIntrinsic","condition","LocateLockfileFunctionDeclaration","GetPackageManagerFunctionDeclaration","FetchNpmPackageFunctionDeclaration","GetLatestFunctionDeclaration","InstallFunctionDeclaration","UpgradeBuiltin","props","rest","_$mergeProps","id","description","imports","builtinImports","console","env","utils","when","Boolean"],"sources":["../../src/components/upgrade-builtin.tsx"],"sourcesContent":["/* -------------------------------------------------------------------\n\n ⚡ Storm Software - Shell Shock\n\n This code was released as part of the Shell Shock project. Shell Shock\n is maintained by Storm Software under the Apache-2.0 license, and is\n free for commercial and private use. For more information, please visit\n our licensing page at https://stormsoftware.com/licenses/projects/shell-shock.\n\n Website: https://stormsoftware.com\n Repository: https://github.com/storm-software/shell-shock\n Documentation: https://docs.stormsoftware.com/projects/shell-shock\n Contact: https://stormsoftware.com/contact\n\n SPDX-License-Identifier: Apache-2.0\n\n ------------------------------------------------------------------- */\n\nimport { code, Show, splitProps } from \"@alloy-js/core\";\nimport {\n ElseClause,\n ElseIfClause,\n FunctionDeclaration,\n IfStatement,\n InterfaceDeclaration,\n VarDeclaration\n} from \"@alloy-js/typescript\";\nimport { Spacing } from \"@powerlines/plugin-alloy/core/components/spacing\";\nimport {\n InterfaceMember,\n TSDoc,\n TSDocParam,\n TSDocRemarks,\n TSDocReturns,\n TypeDeclaration\n} from \"@powerlines/plugin-alloy/typescript\";\nimport type { BuiltinFileProps } from \"@powerlines/plugin-alloy/typescript/components/builtin-file\";\nimport { BuiltinFile } from \"@powerlines/plugin-alloy/typescript/components/builtin-file\";\nimport defu from \"defu\";\n\n/**\n * The `locatePackageJson` handler function declaration code for the Shell Shock project.\n */\nexport function LocatePackageJsonFunctionDeclaration() {\n return (\n <>\n <InterfaceDeclaration\n export\n name=\"LocatePackageJsonOptions\"\n doc=\"Options for the `locatePackageJson` handler function.\">\n <InterfaceMember\n name=\"cwd\"\n optional\n type=\"string\"\n doc=\"The current working directory to use. If not provided, the process's current working directory will be used.\"\n />\n </InterfaceDeclaration>\n <Spacing />\n <TSDoc heading=\"Locate the package.json file currently being used by the command-line/workspace.\">\n <TSDocRemarks>\n {`This function is used to determine the package.json file currently being used by the command-line/workspace. It can be used in the CLI upgrade command to check if the application is using npm, yarn, or another package manager.`}\n </TSDocRemarks>\n <Spacing />\n <TSDocParam name=\"options\">\n {`The options for the \\`locatePackageJson\\` function. Currently, there are no options available, but this parameter is included for future extensibility.`}\n </TSDocParam>\n <TSDocReturns>\n {`A promise that resolves to the package.json file currently being used by the command-line/workspace as a string.`}\n </TSDocReturns>\n </TSDoc>\n <FunctionDeclaration\n export\n async\n name=\"locatePackageJson\"\n parameters={[\n {\n name: \"options\",\n type: \"LocatePackageJsonOptions\",\n default: \"{}\"\n }\n ]}\n returnType=\"string | undefined\">\n <VarDeclaration\n let\n name=\"currentPath\"\n type=\"string\"\n initializer={code`options.cwd ?? process.cwd(); `}\n />\n <hbr />\n <VarDeclaration\n let\n name=\"parentPath\"\n initializer={code`resolve(currentPath, \"..\"); `}\n />\n <Spacing />\n {code`while (parentPath !== currentPath && currentPath !== homePath && currentPath !== tempPath) { `}\n <IfStatement\n condition={code`existsSync(join(currentPath, \"package.json\"))`}>\n {code`return join(currentPath, \"package.json\"); `}\n </IfStatement>\n <ElseClause>\n {code`currentPath = pathParent;\n parentPath = resolve(currentPath, \"..\"); `}\n </ElseClause>\n {code` }\n\n return undefined; `}\n </FunctionDeclaration>\n </>\n );\n}\n\n/**\n * The `locateLockfile` handler function declaration code for the Shell Shock project.\n */\nexport function LocateLockfileFunctionDeclaration() {\n return (\n <>\n <InterfaceDeclaration\n export\n name=\"LocateLockfileOptions\"\n doc=\"Options for the `locateLockfile` handler function.\">\n <InterfaceMember\n name=\"cwd\"\n optional\n type=\"string\"\n doc=\"The current working directory to use. If not provided, the process's current working directory will be used.\"\n />\n </InterfaceDeclaration>\n <Spacing />\n <TSDoc heading=\"Locate the lockfile currently being used by the command-line/workspace.\">\n <TSDocRemarks>\n {`This function is used to determine the lockfile currently being used by the command-line/workspace. It can be used in the CLI upgrade command to check if the application is using npm, yarn, or another package manager.`}\n </TSDocRemarks>\n <Spacing />\n <TSDocParam name=\"options\">\n {`The options for the \\`locateLockfile\\` function. Currently, there are no options available, but this parameter is included for future extensibility.`}\n </TSDocParam>\n <TSDocReturns>\n {`A promise that resolves to the lockfile currently being used by the command-line/workspace as a string.`}\n </TSDocReturns>\n </TSDoc>\n <FunctionDeclaration\n export\n async\n name=\"locateLockfile\"\n parameters={[\n {\n name: \"options\",\n type: \"LocateLockfileOptions\",\n default: \"{}\"\n }\n ]}\n returnType=\"string | undefined\">\n <VarDeclaration\n let\n name=\"currentPath\"\n type=\"string\"\n initializer={code`options.cwd ?? process.cwd(); `}\n />\n <hbr />\n <VarDeclaration\n let\n name=\"parentPath\"\n initializer={code`resolve(currentPath, \"..\"); `}\n />\n <Spacing />\n {code`while (parentPath !== currentPath && currentPath !== homePath && currentPath !== tempPath) { `}\n <VarDeclaration\n const\n name=\"lockfile\"\n initializer={code`[\n \"package-lock.json\",\n \"npm-shrinkwrap.json\",\n \"yarn.lock\",\n \"pnpm-lock.yaml\",\n \"pnpm-workspace.yaml\",\n \"deno.lock\",\n \"deno.json\",\n \"deno.jsonc\",\n \"bun.lock\",\n \"bun.lockb\"\n ].find(lf => existsSync(join(currentPath, lf))); `}\n />\n <hbr />\n <IfStatement condition={code`lockfile`}>\n {code`return lockfile; `}\n </IfStatement>\n <ElseClause>\n {code`currentPath = pathParent;\n parentPath = resolve(currentPath, \"..\"); `}\n </ElseClause>\n {code` }\n\n return undefined; `}\n </FunctionDeclaration>\n </>\n );\n}\n\n/**\n * The `getPackageManager` handler function declaration code for the Shell Shock project.\n */\nexport function GetPackageManagerFunctionDeclaration() {\n return (\n <>\n <TypeDeclaration\n export\n name=\"GetPackageManagerOptions\"\n doc=\"Options for the `getPackageManager` handler function.\">{code`LocateLockfileOptions;`}</TypeDeclaration>\n <Spacing />\n <TSDoc heading=\"Get the package manager currently being used by the command-line/workspace.\">\n <TSDocRemarks>\n {`This function is used to determine the package manager currently being used by the command-line/workspace. It can be used in the CLI upgrade command to check if the application is using npm, yarn, or another package manager.`}\n </TSDocRemarks>\n <Spacing />\n <TSDocParam name=\"options\">\n {`The options for the \\`getPackageManager\\` function. Currently, there are no options available, but this parameter is included for future extensibility.`}\n </TSDocParam>\n <TSDocReturns>\n {`A promise that resolves to the package manager currently being used by the command-line/workspace as a string.`}\n </TSDocReturns>\n </TSDoc>\n <FunctionDeclaration\n export\n async\n name=\"getPackageManager\"\n parameters={[\n {\n name: \"options\",\n type: \"GetPackageManagerOptions\",\n default: \"{}\"\n }\n ]}\n returnType={code`Promise<\"npm\" | \"yarn\" | \"deno\" | \"pnpm\" | \"bun\">`}>\n <VarDeclaration\n const\n name=\"userAgent\"\n type=\"string\"\n initializer={code`process.env.npm_config_user_agent ?? \"\"; `}\n />\n <hbr />\n <VarDeclaration\n const\n name=\"execPath\"\n type=\"string\"\n initializer={code`process.env.npm_execpath ?? \"\"; `}\n />\n <Spacing />\n <IfStatement\n condition={code`userAgent.startsWith(\"yarn\") || execPath.includes(\"yarn\")`}>\n {code`return \"yarn\"; `}\n </IfStatement>\n <ElseIfClause\n condition={code`userAgent.startsWith(\"pnpm\") || execPath.includes(\"pnpm\")`}>\n {code`return \"pnpm\"; `}\n </ElseIfClause>\n <ElseIfClause\n condition={code`userAgent.startsWith(\"bun\") || execPath.includes(\"bun\") || typeof Bun !== \"undefined\" || process.versions.bun`}>\n {code`return \"bun\"; `}\n </ElseIfClause>\n <ElseClause>\n <VarDeclaration\n const\n name=\"lockfilePath\"\n initializer={code`locateLockfile(options); `}\n />\n <Spacing />\n <IfStatement condition={code`lockfilePath === \"yarn.lock\"`}>\n {code`return \"yarn\"; `}\n </IfStatement>\n <ElseIfClause\n condition={code`lockfilePath === \"deno.lock\" || lockfilePath === \"deno.json\" || lockfilePath === \"deno.jsonc\"`}>\n {code`return \"deno\"; `}\n </ElseIfClause>\n <ElseIfClause\n condition={code`lockfilePath === \"pnpm-lock.yaml\" || lockfilePath === \"pnpm-workspace.yaml\"`}>\n {code`return \"pnpm\"; `}\n </ElseIfClause>\n <ElseIfClause\n condition={code`lockfilePath === \"bun.lock\" || lockfilePath === \"bun.lockb\"`}>\n {code`return \"bun\"; `}\n </ElseIfClause>\n <ElseClause>\n <VarDeclaration\n const\n name=\"packageJsonPath\"\n initializer={code`locatePackageJson(options); `}\n />\n <IfStatement\n condition={code`packageJsonPath && existsSync(packageJsonPath)`}>\n <VarDeclaration\n const\n name=\"packageJson\"\n initializer={code`JSON.parse(await readFile(packageJsonPath, \"utf8\")); `}\n />\n <IfStatement\n condition={code`packageJson.devEngines?.packageManager?.name && typeof packageJson.devEngines.packageManager.name === \"string\" && [\"npm\", \"yarn\", \"pnpm\", \"deno\", \"bun\"].includes(packageJson.devEngines.packageManager.name)`}>\n {code`return packageJson.devEngines.packageManager.name; `}\n </IfStatement>\n <Spacing />\n <VarDeclaration\n const\n name=\"dependencies\"\n initializer={code`{\n ...packageJson.dependencies,\n ...packageJson.devDependencies,\n ...packageJson.peerDependencies,\n ...packageJson.optionalDependencies,\n }; `}\n />\n <IfStatement\n condition={code`Object.keys(dependencies).some(dep => dep === \"yarn\" || dep.startsWith(\"yarn@\") || dep === \"yarnpkg\" || dep.startsWith(\"yarnpkg@\"))`}>\n {code`return \"yarn\"; `}\n </IfStatement>\n <ElseIfClause\n condition={code`Object.keys(dependencies).some(dep => dep === \"bun\" || dep.startsWith(\"bun@\"))`}>\n {code`return \"bun\"; `}\n </ElseIfClause>\n <ElseIfClause\n condition={code`Object.keys(dependencies).some(dep => dep === \"pnpm\" || dep.startsWith(\"pnpm@\"))`}>\n {code`return \"pnpm\"; `}\n </ElseIfClause>\n <ElseIfClause\n condition={code`Object.keys(dependencies).some(dep => dep === \"deno\" || dep.startsWith(\"deno@\"))`}>\n {code`return \"deno\"; `}\n </ElseIfClause>\n </IfStatement>\n <Spacing />\n {code`return \"npm\"; `}\n </ElseClause>\n </ElseClause>\n </FunctionDeclaration>\n </>\n );\n}\n\n/**\n * The `fetchNpmPackage` handler function declaration code for the Shell Shock project.\n */\nexport function FetchNpmPackageFunctionDeclaration() {\n return (\n <>\n <InterfaceDeclaration\n export\n name=\"NpmPackageMaintainer\"\n doc=\"Represents a maintainer of an npm package.\">\n <InterfaceMember\n name=\"email\"\n type=\"string\"\n doc=\"The email of the npm package maintainer.\"\n />\n <hbr />\n <InterfaceMember\n name=\"username\"\n type=\"string\"\n doc=\"The username of the npm package maintainer.\"\n />\n </InterfaceDeclaration>\n <Spacing />\n <InterfaceDeclaration\n export\n name=\"NpmPackageLinks\"\n doc=\"Represents the links of an npm package.\">\n <InterfaceMember\n name=\"homepage\"\n type=\"string\"\n optional\n doc=\"The homepage of the npm package.\"\n />\n <hbr />\n <InterfaceMember\n name=\"repository\"\n type=\"string\"\n optional\n doc=\"The repository of the npm package.\"\n />\n <hbr />\n <InterfaceMember\n name=\"bugs\"\n type=\"string\"\n optional\n doc=\"The bugs page of the npm package.\"\n />\n <hbr />\n <InterfaceMember\n name=\"npm\"\n type=\"string\"\n optional\n doc=\"The npm page of the npm package.\"\n />\n </InterfaceDeclaration>\n <Spacing />\n <InterfaceDeclaration\n export\n name=\"NpmPackage\"\n doc=\"Represents an npm package.\">\n <InterfaceMember\n name=\"name\"\n type=\"string\"\n doc=\"The name of the npm package.\"\n />\n <hbr />\n <InterfaceMember\n name=\"date\"\n type=\"Date\"\n doc=\"The date when the npm package was last updated.\"\n />\n <hbr />\n <InterfaceMember\n name=\"version\"\n type=\"string\"\n doc=\"The version of the npm package.\"\n />\n <hbr />\n <InterfaceMember\n name=\"description\"\n type=\"string\"\n optional\n doc=\"The description of the npm package.\"\n />\n <hbr />\n <InterfaceMember\n name=\"keywords\"\n type=\"string[]\"\n doc=\"A list of keywords associated with the npm package.\"\n />\n <hbr />\n <InterfaceMember\n name=\"license\"\n type=\"string\"\n optional\n doc=\"The license of the npm package.\"\n />\n <hbr />\n <InterfaceMember\n name=\"maintainers\"\n type=\"NpmPackageMaintainer[]\"\n doc=\"The maintainers of the npm package.\"\n />\n <hbr />\n <InterfaceMember\n name=\"links\"\n type=\"NpmPackageLinks\"\n doc=\"The links of the npm package.\"\n />\n <hbr />\n </InterfaceDeclaration>\n <Spacing />\n <InterfaceDeclaration\n export\n name=\"NpmPackageSearchResultItem\"\n doc=\"Represents an npm package search result item.\">\n <InterfaceMember\n name=\"package\"\n type=\"NpmPackage\"\n doc=\"The npm package details.\"\n />\n </InterfaceDeclaration>\n <Spacing />\n <InterfaceDeclaration\n export\n name=\"NpmPackageSearchResult\"\n doc=\"Represents an npm package search result.\">\n <InterfaceMember\n name=\"objects\"\n type=\"NpmPackageSearchResultItem[]\"\n doc=\"The list of npm package search result items.\"\n />\n </InterfaceDeclaration>\n <Spacing />\n <TSDoc heading=\"Fetch details of an npm package.\">\n <TSDocRemarks>\n {`This function is used to fetch an npm package. It can be used in the CLI upgrade command to check if the application is using npm, yarn, or another package manager.`}\n </TSDocRemarks>\n <Spacing />\n <TSDocParam name=\"packageName\">\n {`The name of the npm package to fetch.`}\n </TSDocParam>\n <TSDocReturns>\n {`A promise that resolves to the npm package details or undefined if the package is not found.`}\n </TSDocReturns>\n </TSDoc>\n <FunctionDeclaration\n export\n async\n name=\"fetchNpmPackage\"\n parameters={[\n {\n name: \"packageName\",\n type: \"string\"\n }\n ]}\n returnType={code`Promise<NpmPackage | undefined>`}>\n <VarDeclaration\n const\n name=\"result\"\n initializer={code` await fetch(\\`https://registry.npmjs.com/-/v1/search?text=\\${packageName}&size=1\\`).then(res => res.json()) as NpmPackageSearchResult; `}\n />\n <hbr />\n <IfStatement\n condition={code`result.objects && result.objects.length > 0 && result.objects[0].package && result.objects[0].package.name === packageName`}>\n {code`return result.objects[0].package; `}\n </IfStatement>\n <ElseClause>{code`return undefined; `}</ElseClause>\n </FunctionDeclaration>\n </>\n );\n}\n\n/**\n * The `getLatest` handler function declaration code for the Shell Shock project.\n */\nexport function GetLatestFunctionDeclaration() {\n return (\n <>\n <TSDoc heading=\"Get the latest version of the application from the npm registry.\">\n <TSDocRemarks>\n {`This function is used to retrieve the latest version of the application from the npm registry. It can be used in the CLI upgrade command to check if there is a newer version of the application available.`}\n </TSDocRemarks>\n <Spacing />\n <TSDocParam name=\"packageName\">\n {`The name of the npm package to fetch.`}\n </TSDocParam>\n <TSDocReturns>\n {`A promise that resolves to the latest version of the specified npm package as a string.`}\n </TSDocReturns>\n </TSDoc>\n <FunctionDeclaration\n export\n async\n name=\"getLatest\"\n parameters={[\n {\n name: \"packageName\",\n type: \"string\"\n }\n ]}>\n <VarDeclaration\n const\n name=\"package\"\n initializer={code`await fetchNpmPackage(packageName); `}\n />\n <Spacing />\n {code`return package?.version; `}\n </FunctionDeclaration>\n </>\n );\n}\n\n/**\n * The `install` handler function declaration code for the Shell Shock project.\n */\nexport function InstallFunctionDeclaration() {\n return (\n <>\n <InterfaceDeclaration\n name=\"InstallBaseOptions\"\n doc=\"Options for the `install` handler function.\">\n <InterfaceMember\n name=\"stdout\"\n optional\n type=\"(string) => void\"\n doc=\"A callback function that is called with the stdout output of the command.\"\n />\n <hbr />\n <InterfaceMember\n name=\"stderr\"\n optional\n type=\"(string) => void\"\n doc=\"A callback function that is called with the stderr output of the command.\"\n />\n </InterfaceDeclaration>\n <Spacing />\n <TypeDeclaration\n export\n name=\"InstallOptions\"\n doc=\"Options for the `install` handler function.\">{code`InstallBaseOptions & Parameters<typeof spawn>[2];`}</TypeDeclaration>\n <Spacing />\n <TSDoc heading=\"Install the application dependencies.\">\n <TSDocRemarks>\n {`This function is used to install the application dependencies. It can be used in the CLI upgrade command to ensure that all necessary dependencies are installed.`}\n </TSDocRemarks>\n <Spacing />\n <TSDocParam name=\"options\">\n {`The options for the \\`install\\` function. Currently, there are no options available, but this parameter is included for future extensibility.`}\n </TSDocParam>\n <TSDocReturns>\n {`A promise that resolves when the installation of dependencies is complete.`}\n </TSDocReturns>\n </TSDoc>\n <FunctionDeclaration\n export\n async\n name=\"install\"\n parameters={[\n {\n name: \"options\",\n type: \"InstallOptions\",\n default: \"{}\"\n }\n ]}>\n <VarDeclaration\n const\n name=\"packageManager\"\n initializer={code`getPackageManager(); `}\n />\n <Spacing />\n <VarDeclaration let name=\"output\" initializer={code`\"\"; `} />\n <hbr />\n {code`await spawn(\n \\`\\${packageManager}\\${isWindows && packageManager !== \"bun\" ? \".cmd\" : \"\"}\\`,\n [\"install\"],\n {\n ...options\n env: {\n ...options.env,\n ...(packageManager === \"pnpm\" ? { npm_config_strict_peer_dependencies: false } : null),\n },\n stdout: (data: string) => {\n options.stdout?.(data);\n output += data;\n },\n stderr: (data: string) => {\n options.stderr?.(data);\n },\n },\n ); `}\n </FunctionDeclaration>\n </>\n );\n}\n\nexport interface UpgradeBuiltinProps extends Omit<\n BuiltinFileProps,\n \"id\" | \"description\"\n> {}\n\n/**\n * A built-in upgrade module for Shell Shock.\n */\nexport function UpgradeBuiltin(props: UpgradeBuiltinProps) {\n const [{ children }, rest] = splitProps(props, [\"children\"]);\n\n return (\n <BuiltinFile\n id=\"upgrade\"\n description=\"A collection of application upgrade utility functions for Shell Shock.\"\n {...rest}\n imports={defu(rest.imports ?? {}, {\n \"node:os\": \"os\",\n \"node:path\": [\"join\", \"resolve\"],\n \"node:fs\": [\"existsSync\"],\n \"node:fs/promises\": [\"readFile\", \"writeFile\"],\n \"node:process\": \"process\"\n })}\n builtinImports={defu(rest.builtinImports ?? {}, {\n console: [\"error\", \"verbose\", \"writeLine\"],\n env: [\"paths\", \"isWindows\"],\n utils: [\"isColorSupported\", \"spawn\"]\n })}>\n <VarDeclaration\n const\n name=\"homePath\"\n type=\"string\"\n initializer={code`os.homedir(); `}\n />\n <Spacing />\n <VarDeclaration\n const\n name=\"tempPath\"\n type=\"string\"\n initializer={code`os.tmpdir(); `}\n />\n <Spacing />\n <LocateLockfileFunctionDeclaration />\n <Spacing />\n <GetPackageManagerFunctionDeclaration />\n <Spacing />\n <FetchNpmPackageFunctionDeclaration />\n <Spacing />\n <GetLatestFunctionDeclaration />\n <Spacing />\n <InstallFunctionDeclaration />\n <Spacing />\n <Show when={Boolean(children)}>{children}</Show>\n </BuiltinFile>\n );\n}\n"],"mappings":"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"}
@@ -1,10 +1,10 @@
1
- import * as _alloy_js_core0 from "@alloy-js/core";
1
+ import * as _alloy_js_core6 from "@alloy-js/core";
2
2
 
3
3
  //#region src/components/upgrade-command.d.ts
4
4
  /**
5
5
  * The Upgrade command's handler wrapper for the Shell Shock project.
6
6
  */
7
- declare function UpgradeCommand(): _alloy_js_core0.Children;
7
+ declare function UpgradeCommand(): _alloy_js_core6.Children;
8
8
  //#endregion
9
9
  export { UpgradeCommand };
10
10
  //# sourceMappingURL=upgrade-command.d.cts.map
@@ -1 +1 @@
1
- {"version":3,"file":"package-manager.d.cts","names":[],"sources":["../../src/types/package-manager.ts"],"sourcesContent":[],"mappings":";KAkBY,cAAA;AAAA,cAEC,gBAFa,EAAA,SAEc,cAFd,EAAA;AAEb,cAQA,4BARyC,EAQX,MARW,CAAA,MAAA,EAQI,cARJ,CAAA"}
1
+ {"version":3,"file":"package-manager.d.cts","names":[],"sources":["../../src/types/package-manager.ts"],"sourcesContent":[],"mappings":";KAkBY,cAAA;AAAA,cAEC,gBAFa,EAAA,SAEc,cAFd,EAAA;AAEb,cAQA,4BAR2B,EAQG,MARW,CAAA,MAAA,EAQI,cARJ,CAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@shell-shock/plugin-upgrade",
3
- "version": "0.1.3",
3
+ "version": "0.1.4",
4
4
  "type": "module",
5
5
  "description": "A package containing a Shell Shock plugin to manage upgrading the local application's version.",
6
6
  "repository": {
@@ -154,17 +154,17 @@
154
154
  "dependencies": {
155
155
  "@alloy-js/core": "0.23.0-dev.8",
156
156
  "@alloy-js/typescript": "0.23.0-dev.4",
157
- "@powerlines/deepkit": "^0.6.66",
158
- "@powerlines/plugin-alloy": "0.23.16",
159
- "@powerlines/plugin-plugin": "^0.12.237",
160
- "@shell-shock/core": "^0.8.13",
157
+ "@powerlines/deepkit": "^0.6.67",
158
+ "@powerlines/plugin-alloy": "^0.23.17",
159
+ "@powerlines/plugin-plugin": "^0.12.238",
160
+ "@shell-shock/core": "^0.9.0",
161
161
  "@stryke/path": "0.26.6",
162
- "powerlines": "^0.38.53",
162
+ "powerlines": "^0.38.54",
163
163
  "defu": "6.1.4"
164
164
  },
165
165
  "devDependencies": {
166
- "@powerlines/plugin-deepkit": "^0.11.165",
167
- "@types/node": "^22.19.11"
166
+ "@powerlines/plugin-deepkit": "^0.11.166",
167
+ "@types/node": "^25.3.0"
168
168
  },
169
169
  "publishConfig": {
170
170
  "access": "public",
@@ -181,5 +181,5 @@
181
181
  "./package.json": "./package.json"
182
182
  }
183
183
  },
184
- "gitHead": "d46dde655ea60b655f62e25cf8faef356f30be6a"
184
+ "gitHead": "cfda8730b7dac0e89647907af8bdf83635eee335"
185
185
  }