@bonginkan/maria-ext 0.0.0 → 0.0.2
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 +4 -4
- package/dist/postinstall.cjs +5 -92
- package/dist/postinstall.cjs.map +1 -1
- package/package.json +2 -2
- package/packs/aa-test/pack.json +1 -2
package/README.md
CHANGED
|
@@ -6,16 +6,16 @@ Enterprise extension packs installer for `@bonginkan/maria-lite`.
|
|
|
6
6
|
## Install
|
|
7
7
|
|
|
8
8
|
```shell
|
|
9
|
-
npm install @bonginkan/maria-ext
|
|
9
|
+
npm install -g @bonginkan/maria-ext;
|
|
10
10
|
```
|
|
11
11
|
|
|
12
12
|
## Update
|
|
13
13
|
|
|
14
14
|
```shell
|
|
15
|
-
npm update @bonginkan/maria-ext
|
|
15
|
+
npm update -g @bonginkan/maria-ext;
|
|
16
16
|
```
|
|
17
17
|
|
|
18
18
|
Notes:
|
|
19
|
-
-
|
|
20
|
-
-
|
|
19
|
+
- `maria-lite` discovers installed packs dynamically at runtime.
|
|
20
|
+
- Pack authorization is controlled server-side (Firestore) and applied at runtime after login.
|
|
21
21
|
|
package/dist/postinstall.cjs
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
var fs = require('fs');
|
|
4
4
|
var fsp = require('fs/promises');
|
|
5
|
-
|
|
5
|
+
require('os');
|
|
6
6
|
var path = require('path');
|
|
7
7
|
|
|
8
8
|
function _interopNamespace(e) {
|
|
@@ -25,7 +25,6 @@ function _interopNamespace(e) {
|
|
|
25
25
|
|
|
26
26
|
var fs__namespace = /*#__PURE__*/_interopNamespace(fs);
|
|
27
27
|
var fsp__namespace = /*#__PURE__*/_interopNamespace(fsp);
|
|
28
|
-
var os__namespace = /*#__PURE__*/_interopNamespace(os);
|
|
29
28
|
var path__namespace = /*#__PURE__*/_interopNamespace(path);
|
|
30
29
|
|
|
31
30
|
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
@@ -39,19 +38,8 @@ var require_postinstall = __commonJS({
|
|
|
39
38
|
const s1 = s0.replace(/[^a-z0-9-]+/g, "-").replace(/-+/g, "-").replace(/^-+|-+$/g, "");
|
|
40
39
|
return s1 || "pack";
|
|
41
40
|
}
|
|
42
|
-
function resolveConfigDir() {
|
|
43
|
-
const env = String(process.env.MARIA_CONFIG_DIR || "").trim();
|
|
44
|
-
if (env) return env;
|
|
45
|
-
return path__namespace.join(os__namespace.homedir(), ".maria");
|
|
46
|
-
}
|
|
47
|
-
function normalizeEmail(s) {
|
|
48
|
-
return String(s || "").trim().toLowerCase();
|
|
49
|
-
}
|
|
50
|
-
function normalizePattern(p) {
|
|
51
|
-
return String(p || "").trim().toLowerCase();
|
|
52
|
-
}
|
|
53
41
|
function readArgValue(argv, flag) {
|
|
54
|
-
const f = String(flag
|
|
42
|
+
const f = String(flag).trim();
|
|
55
43
|
if (!f) return "";
|
|
56
44
|
for (let i = 0; i < argv.length; i++) {
|
|
57
45
|
const a = String(argv[i] || "");
|
|
@@ -65,34 +53,6 @@ var require_postinstall = __commonJS({
|
|
|
65
53
|
}
|
|
66
54
|
return "";
|
|
67
55
|
}
|
|
68
|
-
function normalizeEmailPatterns(raw) {
|
|
69
|
-
const out = [];
|
|
70
|
-
const seen = /* @__PURE__ */ new Set();
|
|
71
|
-
for (const p of raw) {
|
|
72
|
-
const n = normalizePattern(p);
|
|
73
|
-
if (!n) continue;
|
|
74
|
-
if (seen.has(n)) continue;
|
|
75
|
-
seen.add(n);
|
|
76
|
-
out.push(n);
|
|
77
|
-
}
|
|
78
|
-
return out.sort((a, b) => a.localeCompare(b));
|
|
79
|
-
}
|
|
80
|
-
function isEmailAllowed(emailRaw, patterns) {
|
|
81
|
-
const email = normalizeEmail(emailRaw);
|
|
82
|
-
if (!email) return false;
|
|
83
|
-
const pats = normalizeEmailPatterns(patterns);
|
|
84
|
-
for (const p of pats) {
|
|
85
|
-
if (!p) continue;
|
|
86
|
-
if (p.includes("*")) {
|
|
87
|
-
if (!p.startsWith("*@")) continue;
|
|
88
|
-
const suffix = p.slice(1);
|
|
89
|
-
if (suffix && email.endsWith(suffix)) return true;
|
|
90
|
-
continue;
|
|
91
|
-
}
|
|
92
|
-
if (email === p) return true;
|
|
93
|
-
}
|
|
94
|
-
return false;
|
|
95
|
-
}
|
|
96
56
|
async function loadPackConfigsFromDir(absDir) {
|
|
97
57
|
const ents = await fsp__namespace.readdir(absDir, { withFileTypes: true }).catch(() => []);
|
|
98
58
|
const packJsonAbs = [];
|
|
@@ -115,40 +75,19 @@ var require_postinstall = __commonJS({
|
|
|
115
75
|
const packId = String(rec.packId || "").trim();
|
|
116
76
|
const packName = String(rec.packName || "").trim();
|
|
117
77
|
const entryRelPath = String(rec.entryRelPath || "").trim();
|
|
118
|
-
const allowedEmailPatterns = Array.isArray(rec.allowedEmailPatterns) ? rec.allowedEmailPatterns.map((x) => String(x)) : [];
|
|
119
78
|
if (!packId || !packName || !entryRelPath) continue;
|
|
120
79
|
out.push({
|
|
121
80
|
packId,
|
|
122
81
|
packName,
|
|
123
|
-
entryRelPath
|
|
124
|
-
allowedEmailPatterns: normalizeEmailPatterns(allowedEmailPatterns)
|
|
82
|
+
entryRelPath
|
|
125
83
|
});
|
|
126
84
|
}
|
|
127
85
|
return out;
|
|
128
86
|
}
|
|
129
|
-
async function ensureFileMode600(abs) {
|
|
130
|
-
try {
|
|
131
|
-
if (process.platform === "win32") return;
|
|
132
|
-
await fsp__namespace.chmod(abs, 384);
|
|
133
|
-
} catch {
|
|
134
|
-
}
|
|
135
|
-
}
|
|
136
87
|
async function main() {
|
|
137
88
|
const argv = process.argv.slice(2);
|
|
138
89
|
const packNameRaw = readArgValue(argv, "--pack") || String(process.env.npm_config_pack || "").trim();
|
|
139
|
-
|
|
140
|
-
if (!packNameRaw) {
|
|
141
|
-
console.log("[maria-ext] Skipping: missing --pack");
|
|
142
|
-
return;
|
|
143
|
-
}
|
|
144
|
-
if (!emailRaw) {
|
|
145
|
-
console.log("[maria-ext] Skipping: missing --email");
|
|
146
|
-
return;
|
|
147
|
-
}
|
|
148
|
-
if (/[,\s]/.test(emailRaw)) {
|
|
149
|
-
console.log("[maria-ext] Invalid --email: must be a single email address (no spaces/commas)");
|
|
150
|
-
return;
|
|
151
|
-
}
|
|
90
|
+
if (!packNameRaw) return;
|
|
152
91
|
const packName = packNameRaw;
|
|
153
92
|
const packIdFromName = slugifyPackName(packName);
|
|
154
93
|
const pkgRoot = path__namespace.join(__dirname, "..");
|
|
@@ -159,34 +98,8 @@ var require_postinstall = __commonJS({
|
|
|
159
98
|
console.log(`[maria-ext] Unknown pack: '${packName}'. Available: ${configs.map((c) => c.packName).join(", ")}`);
|
|
160
99
|
return;
|
|
161
100
|
}
|
|
162
|
-
if (!isEmailAllowed(emailRaw, pick.allowedEmailPatterns)) {
|
|
163
|
-
console.log(`[maria-ext] Not authorized for pack '${pick.packName}' with email '${emailRaw}'`);
|
|
164
|
-
return;
|
|
165
|
-
}
|
|
166
101
|
const entryAbsPath = path__namespace.join(pkgRoot, pick.entryRelPath);
|
|
167
|
-
if (!fs__namespace.existsSync(entryAbsPath))
|
|
168
|
-
console.log(`[maria-ext] Pack entry missing (build required): ${entryAbsPath}`);
|
|
169
|
-
return;
|
|
170
|
-
}
|
|
171
|
-
const cfg = resolveConfigDir();
|
|
172
|
-
const manifestsDir = path__namespace.join(cfg, "lite-ext", "packs");
|
|
173
|
-
await fsp__namespace.mkdir(manifestsDir, { recursive: true });
|
|
174
|
-
const manifest = {
|
|
175
|
-
packId: pick.packId,
|
|
176
|
-
packName: pick.packName,
|
|
177
|
-
entryAbsPath,
|
|
178
|
-
allowedEmailPatterns: pick.allowedEmailPatterns,
|
|
179
|
-
installedAt: (/* @__PURE__ */ new Date()).toISOString()
|
|
180
|
-
};
|
|
181
|
-
const manifestAbs = path__namespace.join(manifestsDir, `${pick.packId}.json`);
|
|
182
|
-
const tmp = `${manifestAbs}.tmp`;
|
|
183
|
-
await fsp__namespace.writeFile(tmp, JSON.stringify(manifest, null, 2) + "\n", "utf8");
|
|
184
|
-
await ensureFileMode600(tmp);
|
|
185
|
-
await fsp__namespace.rename(tmp, manifestAbs);
|
|
186
|
-
await ensureFileMode600(manifestAbs);
|
|
187
|
-
console.log(`[maria-ext] Installed pack '${manifest.packName}' (packId=${manifest.packId})`);
|
|
188
|
-
console.log(`[maria-ext] Authorized email: ${emailRaw}`);
|
|
189
|
-
console.log(`[maria-ext] Manifest: ${manifestAbs}`);
|
|
102
|
+
if (!fs__namespace.existsSync(entryAbsPath)) return;
|
|
190
103
|
}
|
|
191
104
|
main().catch((e) => {
|
|
192
105
|
console.log("[maria-ext] postinstall failed:", e instanceof Error ? e.message : String(e));
|
package/dist/postinstall.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/postinstall.ts"],"names":["path","os","fsp","fs"],"mappings":"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","file":"postinstall.cjs","sourcesContent":["/* eslint-disable no-console */\nimport * as fs from \"node:fs\";\nimport * as fsp from \"node:fs/promises\";\nimport * as os from \"node:os\";\nimport * as path from \"node:path\";\n\ntype PackConfig = {\n packId: string;\n packName: string;\n entryRelPath: string;\n allowedEmailPatterns: string[];\n};\n\nfunction slugifyPackName(raw: string): string {\n const s0 = String(raw || \"\").trim().toLowerCase();\n const s1 = s0\n .replace(/[^a-z0-9-]+/g, \"-\")\n .replace(/-+/g, \"-\")\n .replace(/^-+|-+$/g, \"\");\n return s1 || \"pack\";\n}\n\nfunction resolveConfigDir(): string {\n const env = String(process.env.MARIA_CONFIG_DIR || \"\").trim();\n if (env) return env;\n return path.join(os.homedir(), \".maria\");\n}\n\nfunction normalizeEmail(s: string): string {\n return String(s || \"\").trim().toLowerCase();\n}\n\nfunction normalizePattern(p: string): string {\n return String(p || \"\").trim().toLowerCase();\n}\n\nfunction readArgValue(argv: string[], flag: string): string {\n const f = String(flag || \"\").trim();\n if (!f) return \"\";\n for (let i = 0; i < argv.length; i++) {\n const a = String(argv[i] || \"\");\n if (a === f) {\n const v = i + 1 < argv.length ? String(argv[i + 1] || \"\") : \"\";\n return v.trim();\n }\n if (a.startsWith(`${f}=`)) {\n return a.slice(f.length + 1).trim();\n }\n }\n return \"\";\n}\n\nfunction normalizeEmailPatterns(raw: string[]): string[] {\n const out: string[] = [];\n const seen = new Set<string>();\n for (const p of raw) {\n const n = normalizePattern(p);\n if (!n) continue;\n if (seen.has(n)) continue;\n seen.add(n);\n out.push(n);\n }\n return out.sort((a, b) => a.localeCompare(b));\n}\n\nfunction isEmailAllowed(emailRaw: string, patterns: string[]): boolean {\n const email = normalizeEmail(emailRaw);\n if (!email) return false;\n const pats = normalizeEmailPatterns(patterns);\n for (const p of pats) {\n if (!p) continue;\n if (p.includes(\"*\")) {\n // Only support \"*@domain\" suffix wildcard.\n if (!p.startsWith(\"*@\")) continue;\n const suffix = p.slice(1); // \"@domain\"\n if (suffix && email.endsWith(suffix)) return true;\n continue;\n }\n if (email === p) return true;\n }\n return false;\n}\n\nasync function loadPackConfigsFromDir(absDir: string): Promise<PackConfig[]> {\n const ents = await fsp.readdir(absDir, { withFileTypes: true }).catch((): any[] => []);\n const packJsonAbs: string[] = [];\n for (const e of ents) {\n if (!e.isDirectory()) continue;\n packJsonAbs.push(path.join(absDir, e.name, \"pack.json\"));\n }\n packJsonAbs.sort((a, b) => a.localeCompare(b));\n\n const out: PackConfig[] = [];\n for (const abs of packJsonAbs) {\n const raw = await fsp.readFile(abs, \"utf8\").catch((): string => \"\");\n if (!raw.trim()) continue;\n let obj: unknown = null;\n try {\n obj = JSON.parse(raw) as unknown;\n } catch {\n obj = null;\n }\n const rec = obj && typeof obj === \"object\" ? (obj as Record<string, unknown>) : {};\n const packId = String(rec.packId || \"\").trim();\n const packName = String(rec.packName || \"\").trim();\n const entryRelPath = String(rec.entryRelPath || \"\").trim();\n const allowedEmailPatterns = Array.isArray(rec.allowedEmailPatterns) ? rec.allowedEmailPatterns.map((x) => String(x)) : [];\n if (!packId || !packName || !entryRelPath) continue;\n out.push({\n packId,\n packName,\n entryRelPath,\n allowedEmailPatterns: normalizeEmailPatterns(allowedEmailPatterns),\n });\n }\n return out;\n}\n\nasync function ensureFileMode600(abs: string): Promise<void> {\n try {\n if (process.platform === \"win32\") return;\n await fsp.chmod(abs, 0o600);\n } catch {\n // ignore\n }\n}\n\nasync function main(): Promise<void> {\n // Source precedence:\n // - argv (developer/local invocation): node dist/postinstall.cjs --pack \"aa test\" --email \"user@...\"\n // - npm_config_* (npm postinstall): npm install ... --pack \"aa test\" --email \"user@...\"\n const argv = process.argv.slice(2);\n const packNameRaw = readArgValue(argv, \"--pack\") || String(process.env.npm_config_pack || \"\").trim();\n const emailRaw = readArgValue(argv, \"--email\") || String(process.env.npm_config_email || \"\").trim();\n\n if (!packNameRaw) {\n console.log(\"[maria-ext] Skipping: missing --pack\");\n return;\n }\n if (!emailRaw) {\n console.log(\"[maria-ext] Skipping: missing --email\");\n return;\n }\n // IMPORTANT: `--email` is a single email value (not a list).\n if (/[,\\s]/.test(emailRaw)) {\n console.log(\"[maria-ext] Invalid --email: must be a single email address (no spaces/commas)\");\n return;\n }\n\n const packName = packNameRaw;\n const packIdFromName = slugifyPackName(packName);\n\n const pkgRoot = path.join(__dirname, \"..\"); // dist/ -> package root\n const packsDir = path.join(pkgRoot, \"packs\");\n const configs = await loadPackConfigsFromDir(packsDir);\n const pick =\n configs.find((p) => p.packId === packIdFromName) ||\n configs.find((p) => p.packName.toLowerCase() === packName.toLowerCase());\n if (!pick) {\n console.log(`[maria-ext] Unknown pack: '${packName}'. Available: ${configs.map((c) => c.packName).join(\", \")}`);\n return;\n }\n\n if (!isEmailAllowed(emailRaw, pick.allowedEmailPatterns)) {\n console.log(`[maria-ext] Not authorized for pack '${pick.packName}' with email '${emailRaw}'`);\n return;\n }\n\n const entryAbsPath = path.join(pkgRoot, pick.entryRelPath);\n if (!fs.existsSync(entryAbsPath)) {\n console.log(`[maria-ext] Pack entry missing (build required): ${entryAbsPath}`);\n return;\n }\n\n const cfg = resolveConfigDir();\n const manifestsDir = path.join(cfg, \"lite-ext\", \"packs\");\n await fsp.mkdir(manifestsDir, { recursive: true });\n\n const manifest = {\n packId: pick.packId,\n packName: pick.packName,\n entryAbsPath,\n allowedEmailPatterns: pick.allowedEmailPatterns,\n installedAt: new Date().toISOString(),\n };\n\n const manifestAbs = path.join(manifestsDir, `${pick.packId}.json`);\n const tmp = `${manifestAbs}.tmp`;\n await fsp.writeFile(tmp, JSON.stringify(manifest, null, 2) + \"\\n\", \"utf8\");\n await ensureFileMode600(tmp);\n await fsp.rename(tmp, manifestAbs);\n await ensureFileMode600(manifestAbs);\n\n console.log(`[maria-ext] Installed pack '${manifest.packName}' (packId=${manifest.packId})`);\n console.log(`[maria-ext] Authorized email: ${emailRaw}`);\n console.log(`[maria-ext] Manifest: ${manifestAbs}`);\n}\n\nmain().catch((e: unknown) => {\n console.log(\"[maria-ext] postinstall failed:\", e instanceof Error ? e.message : String(e));\n});\n\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/postinstall.ts"],"names":["fsp","path","fs"],"mappings":"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","file":"postinstall.cjs","sourcesContent":["/* eslint-disable no-console */\nimport * as fs from \"node:fs\";\nimport * as fsp from \"node:fs/promises\";\nimport * as os from \"node:os\";\nimport * as path from \"node:path\";\n\ntype PackConfig = {\n packId: string;\n packName: string;\n entryRelPath: string;\n};\n\nfunction slugifyPackName(raw: string): string {\n const s0 = String(raw || \"\").trim().toLowerCase();\n const s1 = s0\n .replace(/[^a-z0-9-]+/g, \"-\")\n .replace(/-+/g, \"-\")\n .replace(/^-+|-+$/g, \"\");\n return s1 || \"pack\";\n}\n\nfunction resolveConfigDir(): string {\n const env = String(process.env.MARIA_CONFIG_DIR || \"\").trim();\n if (env) return env;\n\n // If postinstall is executed via `sudo`, `os.homedir()` points to root.\n // In that case, write manifests under the invoking user's home directory\n // so `maria-lite` (run as the user) can discover installed packs.\n const sudoUser = String(process.env.SUDO_USER || \"\").trim();\n if (sudoUser && sudoUser !== \"root\") {\n const isPosix = process.platform !== \"win32\";\n if (isPosix) {\n try {\n const passwd = fs.readFileSync(\"/etc/passwd\", \"utf8\");\n const line = passwd\n .split(\"\\n\")\n .find((l) => l && !l.startsWith(\"#\") && l.split(\":\")[0] === sudoUser);\n if (line) {\n const parts = line.split(\":\");\n const home = parts.length >= 6 ? String(parts[5] || \"\").trim() : \"\";\n if (home) return path.join(home, \".maria\");\n }\n } catch {\n // ignore\n }\n // Fallback for typical layouts (macOS/Linux).\n if (process.platform === \"darwin\") return path.join(\"/Users\", sudoUser, \".maria\");\n return path.join(\"/home\", sudoUser, \".maria\");\n }\n }\n\n return path.join(os.homedir(), \".maria\");\n}\n\nfunction readArgValue(argv: string[], flag: string): string {\n const f = String(flag || \"\").trim();\n if (!f) return \"\";\n for (let i = 0; i < argv.length; i++) {\n const a = String(argv[i] || \"\");\n if (a === f) {\n const v = i + 1 < argv.length ? String(argv[i + 1] || \"\") : \"\";\n return v.trim();\n }\n if (a.startsWith(`${f}=`)) {\n return a.slice(f.length + 1).trim();\n }\n }\n return \"\";\n}\n\nasync function loadPackConfigsFromDir(absDir: string): Promise<PackConfig[]> {\n const ents = await fsp.readdir(absDir, { withFileTypes: true }).catch((): any[] => []);\n const packJsonAbs: string[] = [];\n for (const e of ents) {\n if (!e.isDirectory()) continue;\n packJsonAbs.push(path.join(absDir, e.name, \"pack.json\"));\n }\n packJsonAbs.sort((a, b) => a.localeCompare(b));\n\n const out: PackConfig[] = [];\n for (const abs of packJsonAbs) {\n const raw = await fsp.readFile(abs, \"utf8\").catch((): string => \"\");\n if (!raw.trim()) continue;\n let obj: unknown = null;\n try {\n obj = JSON.parse(raw) as unknown;\n } catch {\n obj = null;\n }\n const rec = obj && typeof obj === \"object\" ? (obj as Record<string, unknown>) : {};\n const packId = String(rec.packId || \"\").trim();\n const packName = String(rec.packName || \"\").trim();\n const entryRelPath = String(rec.entryRelPath || \"\").trim();\n if (!packId || !packName || !entryRelPath) continue;\n out.push({\n packId,\n packName,\n entryRelPath,\n });\n }\n return out;\n}\n\nasync function ensureFileMode600(abs: string): Promise<void> {\n try {\n if (process.platform === \"win32\") return;\n await fsp.chmod(abs, 0o600);\n } catch {\n // ignore\n }\n}\n\nasync function main(): Promise<void> {\n // NOTE:\n // `@bonginkan/maria-ext` is now a pure pack bundle.\n // Authorization is controlled server-side (Firestore) and enforced by `maria-lite` at runtime.\n // Therefore postinstall is intentionally a silent no-op (no user data, no manifests).\n //\n // Keep a tiny stub so existing installations don't break.\n const argv = process.argv.slice(2);\n const packNameRaw = readArgValue(argv, \"--pack\") || String(process.env.npm_config_pack || \"\").trim();\n if (!packNameRaw) return;\n\n const packName = packNameRaw;\n const packIdFromName = slugifyPackName(packName);\n\n const pkgRoot = path.join(__dirname, \"..\"); // dist/ -> package root\n const packsDir = path.join(pkgRoot, \"packs\");\n const configs = await loadPackConfigsFromDir(packsDir);\n const pick =\n configs.find((p) => p.packId === packIdFromName) ||\n configs.find((p) => p.packName.toLowerCase() === packName.toLowerCase());\n if (!pick) {\n console.log(`[maria-ext] Unknown pack: '${packName}'. Available: ${configs.map((c) => c.packName).join(\", \")}`);\n return;\n }\n\n // Validate built entry exists (helpful for pack authors), but do not write anything.\n const entryAbsPath = path.join(pkgRoot, pick.entryRelPath);\n if (!fs.existsSync(entryAbsPath)) return;\n}\n\nmain().catch((e: unknown) => {\n console.log(\"[maria-ext] postinstall failed:\", e instanceof Error ? e.message : String(e));\n});\n\n"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@bonginkan/maria-ext",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.2",
|
|
4
4
|
"description": "MARIA-LITE extension installer and packs (enterprise/custom).",
|
|
5
5
|
"license": "SEE LICENSE IN LICENSE",
|
|
6
6
|
"author": "Bonginkan Inc.",
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
],
|
|
14
14
|
"scripts": {
|
|
15
15
|
"build": "tsup && node scripts/postbuild-copy-pack-assets.cjs",
|
|
16
|
-
"prepack": "
|
|
16
|
+
"prepack": "npm run build",
|
|
17
17
|
"postinstall": "node dist/postinstall.cjs"
|
|
18
18
|
},
|
|
19
19
|
"dependencies": {
|