boxbox-plugin 0.2.7 → 0.2.8

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.
package/README.md CHANGED
@@ -1,7 +1,8 @@
1
1
  # BoxBox plugin installer for Codex and Claude Code
2
2
 
3
- The intended public command is **`npx boxbox-plugin`**. The npm package is `boxbox-plugin`; its single executable is `boxbox`, and
4
- plugin/skill identifiers remain `boxbox`. The package is licensed under MIT and ships its `LICENSE`. Confirm the publisher's registry release before using the public command; a supplied local tarball can be tested before publication. The unrelated npm package `boxbox` is not this installer.
3
+ The public command is **`npx boxbox-plugin`**. The npm package is [`boxbox-plugin`](https://www.npmjs.com/package/boxbox-plugin);
4
+ its single executable is `boxbox`, and plugin/skill identifiers remain `boxbox`. The package is licensed under MIT
5
+ and ships its `LICENSE`. The unrelated npm package `boxbox` is not this installer.
5
6
 
6
7
  ## Windows PowerShell prerequisites
7
8
 
@@ -17,7 +18,7 @@ edits hook trust or grants it automatically.
17
18
 
18
19
  ## Install
19
20
 
20
- After an authorized public release:
21
+ Install the published release:
21
22
 
22
23
  ```powershell
23
24
  npx.cmd boxbox-plugin
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "boxbox-plugin",
3
- "version": "0.2.7",
3
+ "version": "0.2.8",
4
4
  "license": "MIT",
5
5
  "description": "BoxBox plugin installer for Codex and Claude Code",
6
6
  "type": "module",
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "name": "boxbox",
3
3
  "npmName": "boxbox-plugin",
4
- "version": "0.2.7",
4
+ "version": "0.2.8",
5
5
  "displayName": "BoxBox",
6
6
  "marketplace": "boxbox-plugins",
7
- "engineSha256": "ceafa7995f6e2aed5c39b3ed0f2b9190634c933f866e5342ea72e12c5d7172b3"
7
+ "engineSha256": "ff2070541cbf621f0789ecbd4a41279e0f9e6f6f929a224357b87f5126e43f02"
8
8
  }
@@ -8,7 +8,7 @@
8
8
  "name" : "boxbox",
9
9
  "source" : "./plugin",
10
10
  "description": "Checks TypeScript, Python, JSON and YAML syntax and tabular readability one file at a time, with human-approved whitespace alignment and a read-only inspector.",
11
- "version" : "0.2.7"
11
+ "version" : "0.2.8"
12
12
  }
13
13
  ],
14
14
  "description": "BoxBox: tabular readability checks for TypeScript, Python, JSON and YAML"
@@ -1,9 +1,9 @@
1
1
  {
2
2
  "name": "boxbox",
3
3
  "npmName": "boxbox-plugin",
4
- "version": "0.2.7",
4
+ "version": "0.2.8",
5
5
  "displayName": "BoxBox",
6
6
  "marketplace": "boxbox-plugins",
7
- "engineSha256": "ceafa7995f6e2aed5c39b3ed0f2b9190634c933f866e5342ea72e12c5d7172b3",
7
+ "engineSha256": "ff2070541cbf621f0789ecbd4a41279e0f9e6f6f929a224357b87f5126e43f02",
8
8
  "host": "claude"
9
9
  }
@@ -80,13 +80,14 @@ export function engineCommand(node, launcher, windows, host = "codex") {
80
80
  * .cmd forms serve cmd.exe and PowerShell on Windows.
81
81
  */
82
82
  export function pathLaunchers(node, launcher) {
83
- const posix = path => path.replaceAll("\\", "/") ;
84
- const refusal = "update: only \\`update boxbox\\` is provided here (BoxBox plugin)." ;
83
+ const posix = path => path.replaceAll("\\", "/") ;
84
+ const refusal = "update: only \\`update boxbox\\` is provided here (BoxBox plugin)." ;
85
+ const updatePayload = Buffer.from(JSON.stringify([node, launcher, refusal]), "utf8").toString("base64") ;
85
86
  return {
86
87
  "bin/boxbox" : `#!/bin/sh\n# Generated by the BoxBox installer.\nexec ${shellQuote(posix(node))} ${shellQuote(posix(launcher))} "$@"\n`,
87
88
  "bin/boxbox.cmd" : `@echo off\r\nrem Generated by the BoxBox installer.\r\n"${node}" "${launcher}" %*\r\n`,
88
89
  "bin/update" : `#!/bin/sh\n# Generated by the BoxBox installer.\nif [ "\${1:-}" != boxbox ]; then printf '%s\\n' "${refusal}" >&2; exit 2; fi\nshift\nexec ${shellQuote(posix(node))} ${shellQuote(posix(launcher))} update "$@"\n`,
89
- "bin/update.cmd" : `@echo off\r\nrem Generated by the BoxBox installer.\r\nif /i not "%~1"=="boxbox" (echo update: only "update boxbox" is provided here ^(BoxBox plugin^). 1>&2 & exit /b 2)\r\nshift\r\n"${node}" "${launcher}" update %1 %2 %3 %4 %5 %6 %7 %8 %9\r\n`,
90
+ "bin/update.cmd" : `@echo off\r\nrem Generated by the BoxBox installer.\r\n"${node}" -e "const [n,l,m]=JSON.parse(Buffer.from('${updatePayload}','base64').toString('utf8'));const a=process.argv.slice(1);if((a.shift()||'').toLowerCase()!=='boxbox'){console.error(m);process.exit(2)}const r=require('node:child_process').spawnSync(n,[l,'update',...a],{stdio:'inherit'});if(r.error){console.error(r.error.message);process.exit(1)}process.exit(r.status??1)" -- %*\r\n`,
90
91
  };
91
92
  }
92
93
 
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "boxbox",
3
3
  "displayName": "BoxBox",
4
- "version": "0.2.7",
4
+ "version": "0.2.8",
5
5
  "description": "Guides writing and refactoring TypeScript and Python, with syntax and tabular checks for TypeScript, Python, JSON and YAML and human-approved whitespace alignment.",
6
6
  "author": {
7
7
  "name": "Woo-JongHo"
@@ -1,9 +1,9 @@
1
1
  {
2
2
  "name": "boxbox",
3
3
  "npmName": "boxbox-plugin",
4
- "version": "0.2.7",
4
+ "version": "0.2.8",
5
5
  "displayName": "BoxBox",
6
6
  "marketplace": "boxbox-plugins",
7
- "engineSha256": "ceafa7995f6e2aed5c39b3ed0f2b9190634c933f866e5342ea72e12c5d7172b3",
7
+ "engineSha256": "ff2070541cbf621f0789ecbd4a41279e0f9e6f6f929a224357b87f5126e43f02",
8
8
  "host": "codex"
9
9
  }
@@ -80,13 +80,14 @@ export function engineCommand(node, launcher, windows, host = "codex") {
80
80
  * .cmd forms serve cmd.exe and PowerShell on Windows.
81
81
  */
82
82
  export function pathLaunchers(node, launcher) {
83
- const posix = path => path.replaceAll("\\", "/") ;
84
- const refusal = "update: only \\`update boxbox\\` is provided here (BoxBox plugin)." ;
83
+ const posix = path => path.replaceAll("\\", "/") ;
84
+ const refusal = "update: only \\`update boxbox\\` is provided here (BoxBox plugin)." ;
85
+ const updatePayload = Buffer.from(JSON.stringify([node, launcher, refusal]), "utf8").toString("base64") ;
85
86
  return {
86
87
  "bin/boxbox" : `#!/bin/sh\n# Generated by the BoxBox installer.\nexec ${shellQuote(posix(node))} ${shellQuote(posix(launcher))} "$@"\n`,
87
88
  "bin/boxbox.cmd" : `@echo off\r\nrem Generated by the BoxBox installer.\r\n"${node}" "${launcher}" %*\r\n`,
88
89
  "bin/update" : `#!/bin/sh\n# Generated by the BoxBox installer.\nif [ "\${1:-}" != boxbox ]; then printf '%s\\n' "${refusal}" >&2; exit 2; fi\nshift\nexec ${shellQuote(posix(node))} ${shellQuote(posix(launcher))} update "$@"\n`,
89
- "bin/update.cmd" : `@echo off\r\nrem Generated by the BoxBox installer.\r\nif /i not "%~1"=="boxbox" (echo update: only "update boxbox" is provided here ^(BoxBox plugin^). 1>&2 & exit /b 2)\r\nshift\r\n"${node}" "${launcher}" update %1 %2 %3 %4 %5 %6 %7 %8 %9\r\n`,
90
+ "bin/update.cmd" : `@echo off\r\nrem Generated by the BoxBox installer.\r\n"${node}" -e "const [n,l,m]=JSON.parse(Buffer.from('${updatePayload}','base64').toString('utf8'));const a=process.argv.slice(1);if((a.shift()||'').toLowerCase()!=='boxbox'){console.error(m);process.exit(2)}const r=require('node:child_process').spawnSync(n,[l,'update',...a],{stdio:'inherit'});if(r.error){console.error(r.error.message);process.exit(1)}process.exit(r.status??1)" -- %*\r\n`,
90
91
  };
91
92
  }
92
93
 
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "boxbox",
3
- "version": "0.2.7",
3
+ "version": "0.2.8",
4
4
  "description": "Guides writing and refactoring TypeScript and Python, with syntax and tabular checks for TypeScript, Python, JSON and YAML and human-approved whitespace alignment.",
5
5
  "author": {
6
6
  "name": "Woo-JongHo"
@@ -80,13 +80,14 @@ export function engineCommand(node, launcher, windows, host = "codex") {
80
80
  * .cmd forms serve cmd.exe and PowerShell on Windows.
81
81
  */
82
82
  export function pathLaunchers(node, launcher) {
83
- const posix = path => path.replaceAll("\\", "/") ;
84
- const refusal = "update: only \\`update boxbox\\` is provided here (BoxBox plugin)." ;
83
+ const posix = path => path.replaceAll("\\", "/") ;
84
+ const refusal = "update: only \\`update boxbox\\` is provided here (BoxBox plugin)." ;
85
+ const updatePayload = Buffer.from(JSON.stringify([node, launcher, refusal]), "utf8").toString("base64") ;
85
86
  return {
86
87
  "bin/boxbox" : `#!/bin/sh\n# Generated by the BoxBox installer.\nexec ${shellQuote(posix(node))} ${shellQuote(posix(launcher))} "$@"\n`,
87
88
  "bin/boxbox.cmd" : `@echo off\r\nrem Generated by the BoxBox installer.\r\n"${node}" "${launcher}" %*\r\n`,
88
89
  "bin/update" : `#!/bin/sh\n# Generated by the BoxBox installer.\nif [ "\${1:-}" != boxbox ]; then printf '%s\\n' "${refusal}" >&2; exit 2; fi\nshift\nexec ${shellQuote(posix(node))} ${shellQuote(posix(launcher))} update "$@"\n`,
89
- "bin/update.cmd" : `@echo off\r\nrem Generated by the BoxBox installer.\r\nif /i not "%~1"=="boxbox" (echo update: only "update boxbox" is provided here ^(BoxBox plugin^). 1>&2 & exit /b 2)\r\nshift\r\n"${node}" "${launcher}" update %1 %2 %3 %4 %5 %6 %7 %8 %9\r\n`,
90
+ "bin/update.cmd" : `@echo off\r\nrem Generated by the BoxBox installer.\r\n"${node}" -e "const [n,l,m]=JSON.parse(Buffer.from('${updatePayload}','base64').toString('utf8'));const a=process.argv.slice(1);if((a.shift()||'').toLowerCase()!=='boxbox'){console.error(m);process.exit(2)}const r=require('node:child_process').spawnSync(n,[l,'update',...a],{stdio:'inherit'});if(r.error){console.error(r.error.message);process.exit(1)}process.exit(r.status??1)" -- %*\r\n`,
90
91
  };
91
92
  }
92
93