@coffer-org/devkit 1.1.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.
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +43 -0
- package/dist/index.js.map +1 -0
- package/dist/swap.d.ts +3 -0
- package/dist/swap.d.ts.map +1 -0
- package/dist/swap.js +26 -0
- package/dist/swap.js.map +1 -0
- package/dist/web-build.d.ts +6 -0
- package/dist/web-build.d.ts.map +1 -0
- package/dist/web-build.js +34 -0
- package/dist/web-build.js.map +1 -0
- package/package.json +21 -0
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":""}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/** coffer-plugin — build/publish-інструмент для standalone schema-плагінів. */
|
|
3
|
+
import { execFileSync } from 'node:child_process';
|
|
4
|
+
import { argv } from 'node:process';
|
|
5
|
+
import { pathToFileURL } from 'node:url';
|
|
6
|
+
import { swapToDist, swapToSrc } from './swap.js';
|
|
7
|
+
import { buildWeb } from './web-build.js';
|
|
8
|
+
function build() {
|
|
9
|
+
// Звичайний tsc (не -b): типи @coffer-org/sdk — з node_modules/.../dist/*.d.ts.
|
|
10
|
+
execFileSync('npx', ['tsc', '-p', 'tsconfig.build.json'], { stdio: 'inherit' });
|
|
11
|
+
}
|
|
12
|
+
/** Schema (tsc) → web bundle (Vite lib mode, no-op для schema-only плагінів). */
|
|
13
|
+
async function buildAll() {
|
|
14
|
+
build();
|
|
15
|
+
await buildWeb();
|
|
16
|
+
}
|
|
17
|
+
async function main() {
|
|
18
|
+
const cmd = argv[2];
|
|
19
|
+
switch (cmd) {
|
|
20
|
+
case 'build':
|
|
21
|
+
await buildAll();
|
|
22
|
+
break;
|
|
23
|
+
case 'prepack':
|
|
24
|
+
await buildAll();
|
|
25
|
+
swapToDist();
|
|
26
|
+
break;
|
|
27
|
+
case 'postpack':
|
|
28
|
+
swapToSrc();
|
|
29
|
+
break;
|
|
30
|
+
default:
|
|
31
|
+
console.error('usage: coffer-plugin build | prepack | postpack');
|
|
32
|
+
process.exit(1);
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
// Виконувати ЛИШЕ як запущений bin, не при import (інакше скан discovery, що
|
|
36
|
+
// випадково імпортує цей пакет, тригерив би CLI + process.exit).
|
|
37
|
+
if (argv[1] && import.meta.url === pathToFileURL(argv[1]).href) {
|
|
38
|
+
main().catch((e) => {
|
|
39
|
+
console.error(e);
|
|
40
|
+
process.exit(1);
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA,+EAA+E;AAC/E,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AACpC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAClD,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE1C,SAAS,KAAK;IACZ,gFAAgF;IAChF,YAAY,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,qBAAqB,CAAC,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;AAClF,CAAC;AAED,iFAAiF;AACjF,KAAK,UAAU,QAAQ;IACrB,KAAK,EAAE,CAAC;IACR,MAAM,QAAQ,EAAE,CAAC;AACnB,CAAC;AAED,KAAK,UAAU,IAAI;IACjB,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,QAAQ,GAAG,EAAE,CAAC;QACZ,KAAK,OAAO;YACV,MAAM,QAAQ,EAAE,CAAC;YACjB,MAAM;QACR,KAAK,SAAS;YACZ,MAAM,QAAQ,EAAE,CAAC;YACjB,UAAU,EAAE,CAAC;YACb,MAAM;QACR,KAAK,UAAU;YACb,SAAS,EAAE,CAAC;YACZ,MAAM;QACR;YACE,OAAO,CAAC,KAAK,CAAC,iDAAiD,CAAC,CAAC;YACjE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC;AACH,CAAC;AAED,6EAA6E;AAC7E,iEAAiE;AACjE,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,KAAK,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IAC/D,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,CAAU,EAAE,EAAE;QAC1B,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACjB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC,CAAC,CAAC;AACL,CAAC"}
|
package/dist/swap.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"swap.d.ts","sourceRoot":"","sources":["../src/swap.ts"],"names":[],"mappings":"AAMA,wBAAgB,UAAU,CAAC,GAAG,SAAM,GAAG,IAAI,CAY1C;AAED,wBAAgB,SAAS,CAAC,GAAG,SAAM,GAAG,IAAI,CAMzC"}
|
package/dist/swap.js
ADDED
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/** Підміна package.json exports між dev (src) і publish (dist) формами. */
|
|
2
|
+
import { readFileSync, writeFileSync, existsSync, rmSync, copyFileSync } from 'node:fs';
|
|
3
|
+
const PKG = 'package.json';
|
|
4
|
+
const BAK = '.package.json.orig';
|
|
5
|
+
export function swapToDist(cwd = '.') {
|
|
6
|
+
const pkg = `${cwd}/${PKG}`;
|
|
7
|
+
copyFileSync(pkg, `${cwd}/${BAK}`);
|
|
8
|
+
const j = JSON.parse(readFileSync(pkg, 'utf8'));
|
|
9
|
+
if (!j.distExports)
|
|
10
|
+
throw new Error('[coffer-plugin] немає distExports у package.json');
|
|
11
|
+
j.exports = j.distExports;
|
|
12
|
+
delete j.distExports;
|
|
13
|
+
if (j.distBin) {
|
|
14
|
+
j.bin = j.distBin;
|
|
15
|
+
delete j.distBin;
|
|
16
|
+
}
|
|
17
|
+
writeFileSync(pkg, JSON.stringify(j, null, 2) + '\n');
|
|
18
|
+
}
|
|
19
|
+
export function swapToSrc(cwd = '.') {
|
|
20
|
+
const bak = `${cwd}/${BAK}`;
|
|
21
|
+
if (existsSync(bak)) {
|
|
22
|
+
copyFileSync(bak, `${cwd}/${PKG}`);
|
|
23
|
+
rmSync(bak);
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=swap.js.map
|
package/dist/swap.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"swap.js","sourceRoot":"","sources":["../src/swap.ts"],"names":[],"mappings":"AAAA,2EAA2E;AAC3E,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAExF,MAAM,GAAG,GAAG,cAAc,CAAC;AAC3B,MAAM,GAAG,GAAG,oBAAoB,CAAC;AAEjC,MAAM,UAAU,UAAU,CAAC,GAAG,GAAG,GAAG;IAClC,MAAM,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,EAAE,CAAC;IAC5B,YAAY,CAAC,GAAG,EAAE,GAAG,GAAG,IAAI,GAAG,EAAE,CAAC,CAAC;IACnC,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC;IAChD,IAAI,CAAC,CAAC,CAAC,WAAW;QAAE,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;IACxF,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,WAAW,CAAC;IAC1B,OAAO,CAAC,CAAC,WAAW,CAAC;IACrB,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC;QACd,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC;QAClB,OAAO,CAAC,CAAC,OAAO,CAAC;IACnB,CAAC;IACD,aAAa,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;AACxD,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,GAAG,GAAG,GAAG;IACjC,MAAM,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,EAAE,CAAC;IAC5B,IAAI,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QACpB,YAAY,CAAC,GAAG,EAAE,GAAG,GAAG,IAAI,GAAG,EAAE,CAAC,CAAC;QACnC,MAAM,CAAC,GAAG,CAAC,CAAC;IACd,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { InlineConfig } from 'vite';
|
|
2
|
+
/** Pure config builder (testable). Plugin web bundle: ESM lib, vendor externals,
|
|
3
|
+
* Tailwind scanning only this plugin's src → self-contained dist/web.css. */
|
|
4
|
+
export declare function buildViteLibConfig(root: string): InlineConfig;
|
|
5
|
+
export declare function buildWeb(root?: string): Promise<void>;
|
|
6
|
+
//# sourceMappingURL=web-build.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"web-build.d.ts","sourceRoot":"","sources":["../src/web-build.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,MAAM,CAAC;AAOzC;8EAC8E;AAC9E,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY,CAc7D;AAED,wBAAsB,QAAQ,CAAC,IAAI,SAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAQlE"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { join } from 'node:path';
|
|
2
|
+
import { existsSync } from 'node:fs';
|
|
3
|
+
// Vendor singletons — kept external so plugins resolve them to the host via the
|
|
4
|
+
// importmap instead of double-bundling. Source of truth: @coffer-org/web-sdk's
|
|
5
|
+
// peerDependencies (+ @coffer-org/sdk). Keep in sync when web-sdk adds a peer.
|
|
6
|
+
const EXTERNALS = ['react', 'react-dom', 'react/jsx-runtime', 'i18next', '@coffer-org/web-sdk', '@coffer-org/sdk'];
|
|
7
|
+
/** Pure config builder (testable). Plugin web bundle: ESM lib, vendor externals,
|
|
8
|
+
* Tailwind scanning only this plugin's src → self-contained dist/web.css. */
|
|
9
|
+
export function buildViteLibConfig(root) {
|
|
10
|
+
return {
|
|
11
|
+
root,
|
|
12
|
+
configFile: false,
|
|
13
|
+
build: {
|
|
14
|
+
outDir: 'dist',
|
|
15
|
+
emptyOutDir: false, // keep tsc-emitted schema.js
|
|
16
|
+
lib: { entry: join(root, 'src/ui.tsx'), formats: ['es'], fileName: () => 'web.js' },
|
|
17
|
+
rollupOptions: {
|
|
18
|
+
external: EXTERNALS,
|
|
19
|
+
output: { assetFileNames: 'web.css' },
|
|
20
|
+
},
|
|
21
|
+
},
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
export async function buildWeb(root = process.cwd()) {
|
|
25
|
+
if (!existsSync(join(root, 'src/ui.tsx')))
|
|
26
|
+
return; // schema-only plugin: nothing to build
|
|
27
|
+
const { build } = await import('vite');
|
|
28
|
+
const react = (await import('@vitejs/plugin-react')).default;
|
|
29
|
+
const tailwind = (await import('@tailwindcss/vite')).default;
|
|
30
|
+
const cfg = buildViteLibConfig(root);
|
|
31
|
+
cfg.plugins = [react(), tailwind()];
|
|
32
|
+
await build(cfg);
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=web-build.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"web-build.js","sourceRoot":"","sources":["../src/web-build.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAGrC,gFAAgF;AAChF,+EAA+E;AAC/E,+EAA+E;AAC/E,MAAM,SAAS,GAAG,CAAC,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAAE,SAAS,EAAE,qBAAqB,EAAE,iBAAiB,CAAC,CAAC;AAEnH;8EAC8E;AAC9E,MAAM,UAAU,kBAAkB,CAAC,IAAY;IAC7C,OAAO;QACL,IAAI;QACJ,UAAU,EAAE,KAAK;QACjB,KAAK,EAAE;YACL,MAAM,EAAE,MAAM;YACd,WAAW,EAAE,KAAK,EAAE,6BAA6B;YACjD,GAAG,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,IAAI,EAAE,YAAY,CAAC,EAAE,OAAO,EAAE,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,QAAQ,EAAE;YACnF,aAAa,EAAE;gBACb,QAAQ,EAAE,SAAS;gBACnB,MAAM,EAAE,EAAE,cAAc,EAAE,SAAS,EAAE;aACtC;SACF;KACc,CAAC;AACpB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAC,IAAI,GAAG,OAAO,CAAC,GAAG,EAAE;IACjD,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;QAAE,OAAO,CAAC,uCAAuC;IAC1F,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,CAAC;IACvC,MAAM,KAAK,GAAG,CAAC,MAAM,MAAM,CAAC,sBAAsB,CAAC,CAAC,CAAC,OAAO,CAAC;IAC7D,MAAM,QAAQ,GAAG,CAAC,MAAM,MAAM,CAAC,mBAAmB,CAAC,CAAC,CAAC,OAAO,CAAC;IAC7D,MAAM,GAAG,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC;IACrC,GAAG,CAAC,OAAO,GAAG,CAAC,KAAK,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC;IACpC,MAAM,KAAK,CAAC,GAAG,CAAC,CAAC;AACnB,CAAC"}
|
package/package.json
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@coffer-org/devkit",
|
|
3
|
+
"version": "1.1.0",
|
|
4
|
+
"type": "module",
|
|
5
|
+
"files": [
|
|
6
|
+
"dist"
|
|
7
|
+
],
|
|
8
|
+
"bin": {
|
|
9
|
+
"coffer-plugin": "./dist/index.js"
|
|
10
|
+
},
|
|
11
|
+
"scripts": {
|
|
12
|
+
"build": "tsc -b tsconfig.build.json",
|
|
13
|
+
"prepack": "npm run build && node ../../scripts/swap-exports.mjs dist",
|
|
14
|
+
"postpack": "node ../../scripts/swap-exports.mjs src"
|
|
15
|
+
},
|
|
16
|
+
"dependencies": {
|
|
17
|
+
"@tailwindcss/vite": "^4.3.0",
|
|
18
|
+
"@vitejs/plugin-react": "^6.0.2",
|
|
19
|
+
"vite": "^8.0.16"
|
|
20
|
+
}
|
|
21
|
+
}
|