@littlepartytime/dev-kit 1.0.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/__tests__/validate-bundle.test.d.ts +2 -0
- package/dist/__tests__/validate-bundle.test.d.ts.map +1 -0
- package/dist/__tests__/validate-bundle.test.js +38 -0
- package/dist/__tests__/validate-bundle.test.js.map +1 -0
- package/dist/cli.d.ts +4 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +61 -0
- package/dist/cli.js.map +1 -0
- package/dist/commands/pack.d.ts +2 -0
- package/dist/commands/pack.d.ts.map +1 -0
- package/dist/commands/pack.js +62 -0
- package/dist/commands/pack.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +6 -0
- package/dist/index.js.map +1 -0
- package/dist/utils/validate-bundle.d.ts +7 -0
- package/dist/utils/validate-bundle.d.ts.map +1 -0
- package/dist/utils/validate-bundle.js +37 -0
- package/dist/utils/validate-bundle.js.map +1 -0
- package/package.json +33 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validate-bundle.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/validate-bundle.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const vitest_1 = require("vitest");
|
|
7
|
+
const validate_bundle_1 = require("../utils/validate-bundle");
|
|
8
|
+
const path_1 = __importDefault(require("path"));
|
|
9
|
+
const fs_1 = __importDefault(require("fs"));
|
|
10
|
+
const os_1 = __importDefault(require("os"));
|
|
11
|
+
(0, vitest_1.describe)('validateBundle', () => {
|
|
12
|
+
function makeTempDir() {
|
|
13
|
+
return fs_1.default.mkdtempSync(path_1.default.join(os_1.default.tmpdir(), 'lpt-test-'));
|
|
14
|
+
}
|
|
15
|
+
(0, vitest_1.it)('should fail if bundle.js is missing', () => {
|
|
16
|
+
const dir = makeTempDir();
|
|
17
|
+
fs_1.default.writeFileSync(path_1.default.join(dir, 'engine.cjs'), 'module.exports = {}');
|
|
18
|
+
const result = (0, validate_bundle_1.validateBundle)(dir);
|
|
19
|
+
(0, vitest_1.expect)(result.valid).toBe(false);
|
|
20
|
+
(0, vitest_1.expect)(result.errors).toContain('bundle.js not found in dist/');
|
|
21
|
+
});
|
|
22
|
+
(0, vitest_1.it)('should fail if engine.cjs is missing', () => {
|
|
23
|
+
const dir = makeTempDir();
|
|
24
|
+
fs_1.default.writeFileSync(path_1.default.join(dir, 'bundle.js'), 'export default {}');
|
|
25
|
+
const result = (0, validate_bundle_1.validateBundle)(dir);
|
|
26
|
+
(0, vitest_1.expect)(result.valid).toBe(false);
|
|
27
|
+
(0, vitest_1.expect)(result.errors).toContain('engine.cjs not found in dist/');
|
|
28
|
+
});
|
|
29
|
+
(0, vitest_1.it)('should pass when both files exist', () => {
|
|
30
|
+
const dir = makeTempDir();
|
|
31
|
+
fs_1.default.writeFileSync(path_1.default.join(dir, 'bundle.js'), 'export const config = {}; export const Renderer = () => null;');
|
|
32
|
+
fs_1.default.writeFileSync(path_1.default.join(dir, 'engine.cjs'), 'module.exports.engine = {}');
|
|
33
|
+
const result = (0, validate_bundle_1.validateBundle)(dir);
|
|
34
|
+
(0, vitest_1.expect)(result.valid).toBe(true);
|
|
35
|
+
(0, vitest_1.expect)(result.errors).toHaveLength(0);
|
|
36
|
+
});
|
|
37
|
+
});
|
|
38
|
+
//# sourceMappingURL=validate-bundle.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validate-bundle.test.js","sourceRoot":"","sources":["../../src/__tests__/validate-bundle.test.ts"],"names":[],"mappings":";;;;;AAAA,mCAA8C;AAC9C,8DAA0D;AAC1D,gDAAwB;AACxB,4CAAoB;AACpB,4CAAoB;AAEpB,IAAA,iBAAQ,EAAC,gBAAgB,EAAE,GAAG,EAAE;IAC9B,SAAS,WAAW;QAClB,OAAO,YAAE,CAAC,WAAW,CAAC,cAAI,CAAC,IAAI,CAAC,YAAE,CAAC,MAAM,EAAE,EAAE,WAAW,CAAC,CAAC,CAAC;IAC7D,CAAC;IAED,IAAA,WAAE,EAAC,qCAAqC,EAAE,GAAG,EAAE;QAC7C,MAAM,GAAG,GAAG,WAAW,EAAE,CAAC;QAC1B,YAAE,CAAC,aAAa,CAAC,cAAI,CAAC,IAAI,CAAC,GAAG,EAAE,YAAY,CAAC,EAAE,qBAAqB,CAAC,CAAC;QACtE,MAAM,MAAM,GAAG,IAAA,gCAAc,EAAC,GAAG,CAAC,CAAC;QACnC,IAAA,eAAM,EAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACjC,IAAA,eAAM,EAAC,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,8BAA8B,CAAC,CAAC;IAClE,CAAC,CAAC,CAAC;IAEH,IAAA,WAAE,EAAC,sCAAsC,EAAE,GAAG,EAAE;QAC9C,MAAM,GAAG,GAAG,WAAW,EAAE,CAAC;QAC1B,YAAE,CAAC,aAAa,CAAC,cAAI,CAAC,IAAI,CAAC,GAAG,EAAE,WAAW,CAAC,EAAE,mBAAmB,CAAC,CAAC;QACnE,MAAM,MAAM,GAAG,IAAA,gCAAc,EAAC,GAAG,CAAC,CAAC;QACnC,IAAA,eAAM,EAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACjC,IAAA,eAAM,EAAC,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,+BAA+B,CAAC,CAAC;IACnE,CAAC,CAAC,CAAC;IAEH,IAAA,WAAE,EAAC,mCAAmC,EAAE,GAAG,EAAE;QAC3C,MAAM,GAAG,GAAG,WAAW,EAAE,CAAC;QAC1B,YAAE,CAAC,aAAa,CAAC,cAAI,CAAC,IAAI,CAAC,GAAG,EAAE,WAAW,CAAC,EAAE,+DAA+D,CAAC,CAAC;QAC/G,YAAE,CAAC,aAAa,CAAC,cAAI,CAAC,IAAI,CAAC,GAAG,EAAE,YAAY,CAAC,EAAE,4BAA4B,CAAC,CAAC;QAC7E,MAAM,MAAM,GAAG,IAAA,gCAAc,EAAC,GAAG,CAAC,CAAC;QACnC,IAAA,eAAM,EAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAChC,IAAA,eAAM,EAAC,MAAM,CAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;IACxC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
package/dist/cli.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AAEA,QAAA,MAAM,OAAO,QAAkB,CAAC;AAEhC,iBAAe,IAAI,kBAmBlB"}
|
package/dist/cli.js
ADDED
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
"use strict";
|
|
3
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
4
|
+
if (k2 === undefined) k2 = k;
|
|
5
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
6
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
7
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
8
|
+
}
|
|
9
|
+
Object.defineProperty(o, k2, desc);
|
|
10
|
+
}) : (function(o, m, k, k2) {
|
|
11
|
+
if (k2 === undefined) k2 = k;
|
|
12
|
+
o[k2] = m[k];
|
|
13
|
+
}));
|
|
14
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
15
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
16
|
+
}) : function(o, v) {
|
|
17
|
+
o["default"] = v;
|
|
18
|
+
});
|
|
19
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
20
|
+
var ownKeys = function(o) {
|
|
21
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
22
|
+
var ar = [];
|
|
23
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
24
|
+
return ar;
|
|
25
|
+
};
|
|
26
|
+
return ownKeys(o);
|
|
27
|
+
};
|
|
28
|
+
return function (mod) {
|
|
29
|
+
if (mod && mod.__esModule) return mod;
|
|
30
|
+
var result = {};
|
|
31
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
32
|
+
__setModuleDefault(result, mod);
|
|
33
|
+
return result;
|
|
34
|
+
};
|
|
35
|
+
})();
|
|
36
|
+
const command = process.argv[2];
|
|
37
|
+
async function main() {
|
|
38
|
+
switch (command) {
|
|
39
|
+
case 'pack': {
|
|
40
|
+
const { packCommand } = await Promise.resolve().then(() => __importStar(require('./commands/pack')));
|
|
41
|
+
await packCommand(process.cwd());
|
|
42
|
+
break;
|
|
43
|
+
}
|
|
44
|
+
case 'dev': {
|
|
45
|
+
console.log('lpt-dev-kit dev server is not yet implemented (Phase 2)');
|
|
46
|
+
process.exit(1);
|
|
47
|
+
}
|
|
48
|
+
default:
|
|
49
|
+
console.log('Usage: lpt-dev-kit <command>');
|
|
50
|
+
console.log('');
|
|
51
|
+
console.log('Commands:');
|
|
52
|
+
console.log(' pack Build and package game as .zip');
|
|
53
|
+
console.log(' dev Start development server (coming soon)');
|
|
54
|
+
process.exit(command ? 1 : 0);
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
main().catch((err) => {
|
|
58
|
+
console.error(err.message);
|
|
59
|
+
process.exit(1);
|
|
60
|
+
});
|
|
61
|
+
//# sourceMappingURL=cli.js.map
|
package/dist/cli.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAEhC,KAAK,UAAU,IAAI;IACjB,QAAQ,OAAO,EAAE,CAAC;QAChB,KAAK,MAAM,CAAC,CAAC,CAAC;YACZ,MAAM,EAAE,WAAW,EAAE,GAAG,wDAAa,iBAAiB,GAAC,CAAC;YACxD,MAAM,WAAW,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;YACjC,MAAM;QACR,CAAC;QACD,KAAK,KAAK,CAAC,CAAC,CAAC;YACX,OAAO,CAAC,GAAG,CAAC,yDAAyD,CAAC,CAAC;YACvE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QACD;YACE,OAAO,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAC;YAC5C,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAChB,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;YACzB,OAAO,CAAC,GAAG,CAAC,0CAA0C,CAAC,CAAC;YACxD,OAAO,CAAC,GAAG,CAAC,kDAAkD,CAAC,CAAC;YAChE,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAClC,CAAC;AACH,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;IACnB,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IAC3B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pack.d.ts","sourceRoot":"","sources":["../../src/commands/pack.ts"],"names":[],"mappings":"AAMA,wBAAsB,WAAW,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CA0DnE"}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.packCommand = packCommand;
|
|
7
|
+
const child_process_1 = require("child_process");
|
|
8
|
+
const fs_1 = __importDefault(require("fs"));
|
|
9
|
+
const path_1 = __importDefault(require("path"));
|
|
10
|
+
const archiver_1 = __importDefault(require("archiver"));
|
|
11
|
+
const validate_bundle_1 = require("../utils/validate-bundle");
|
|
12
|
+
async function packCommand(projectDir) {
|
|
13
|
+
const distDir = path_1.default.join(projectDir, 'dist');
|
|
14
|
+
// Step 1: Run vite build
|
|
15
|
+
console.log('Building...');
|
|
16
|
+
try {
|
|
17
|
+
(0, child_process_1.execSync)('npx vite build', { cwd: projectDir, stdio: 'inherit' });
|
|
18
|
+
}
|
|
19
|
+
catch {
|
|
20
|
+
console.error('Build failed');
|
|
21
|
+
process.exit(1);
|
|
22
|
+
}
|
|
23
|
+
// Step 2: Validate bundle
|
|
24
|
+
console.log('\nValidating build output...');
|
|
25
|
+
const result = (0, validate_bundle_1.validateBundle)(distDir);
|
|
26
|
+
for (const warning of result.warnings) {
|
|
27
|
+
console.log(` WARNING: ${warning}`);
|
|
28
|
+
}
|
|
29
|
+
if (!result.valid) {
|
|
30
|
+
for (const error of result.errors) {
|
|
31
|
+
console.error(` ERROR: ${error}`);
|
|
32
|
+
}
|
|
33
|
+
process.exit(1);
|
|
34
|
+
}
|
|
35
|
+
console.log(' Validation passed');
|
|
36
|
+
// Step 3: Read gameId from lpt.config.ts or package.json
|
|
37
|
+
let gameId = 'game';
|
|
38
|
+
const configPath = path_1.default.join(projectDir, 'lpt.config.ts');
|
|
39
|
+
if (fs_1.default.existsSync(configPath)) {
|
|
40
|
+
const content = fs_1.default.readFileSync(configPath, 'utf-8');
|
|
41
|
+
const match = content.match(/gameId:\s*["']([^"']+)["']/);
|
|
42
|
+
if (match)
|
|
43
|
+
gameId = match[1];
|
|
44
|
+
}
|
|
45
|
+
// Step 4: Create zip
|
|
46
|
+
const zipPath = path_1.default.join(distDir, `${gameId}.zip`);
|
|
47
|
+
console.log(`\nPackaging to ${gameId}.zip...`);
|
|
48
|
+
await new Promise((resolve, reject) => {
|
|
49
|
+
const output = fs_1.default.createWriteStream(zipPath);
|
|
50
|
+
const archive = (0, archiver_1.default)('zip', { zlib: { level: 9 } });
|
|
51
|
+
output.on('close', resolve);
|
|
52
|
+
archive.on('error', reject);
|
|
53
|
+
archive.pipe(output);
|
|
54
|
+
archive.file(path_1.default.join(distDir, 'bundle.js'), { name: 'bundle.js' });
|
|
55
|
+
archive.file(path_1.default.join(distDir, 'engine.cjs'), { name: 'engine.cjs' });
|
|
56
|
+
archive.finalize();
|
|
57
|
+
});
|
|
58
|
+
const zipSize = fs_1.default.statSync(zipPath).size;
|
|
59
|
+
console.log(`\nDone! ${zipPath} (${(zipSize / 1024).toFixed(1)}KB)`);
|
|
60
|
+
console.log('Upload this file to the admin panel to publish your game.');
|
|
61
|
+
}
|
|
62
|
+
//# sourceMappingURL=pack.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pack.js","sourceRoot":"","sources":["../../src/commands/pack.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACzD,YAAY,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.validateBundle = void 0;
|
|
4
|
+
var validate_bundle_1 = require("./utils/validate-bundle");
|
|
5
|
+
Object.defineProperty(exports, "validateBundle", { enumerable: true, get: function () { return validate_bundle_1.validateBundle; } });
|
|
6
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,2DAAyD;AAAhD,iHAAA,cAAc,OAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validate-bundle.d.ts","sourceRoot":"","sources":["../../src/utils/validate-bundle.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,gBAAgB,CAgChE"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.validateBundle = validateBundle;
|
|
7
|
+
const fs_1 = __importDefault(require("fs"));
|
|
8
|
+
const path_1 = __importDefault(require("path"));
|
|
9
|
+
function validateBundle(distDir) {
|
|
10
|
+
const errors = [];
|
|
11
|
+
const warnings = [];
|
|
12
|
+
const bundlePath = path_1.default.join(distDir, 'bundle.js');
|
|
13
|
+
const enginePath = path_1.default.join(distDir, 'engine.cjs');
|
|
14
|
+
if (!fs_1.default.existsSync(bundlePath)) {
|
|
15
|
+
errors.push('bundle.js not found in dist/');
|
|
16
|
+
}
|
|
17
|
+
if (!fs_1.default.existsSync(enginePath)) {
|
|
18
|
+
errors.push('engine.cjs not found in dist/');
|
|
19
|
+
}
|
|
20
|
+
if (errors.length === 0) {
|
|
21
|
+
const bundleSize = fs_1.default.statSync(bundlePath).size;
|
|
22
|
+
const engineSize = fs_1.default.statSync(enginePath).size;
|
|
23
|
+
if (bundleSize === 0)
|
|
24
|
+
errors.push('bundle.js is empty');
|
|
25
|
+
if (engineSize === 0)
|
|
26
|
+
errors.push('engine.cjs is empty');
|
|
27
|
+
if (bundleSize > 5 * 1024 * 1024) {
|
|
28
|
+
warnings.push(`bundle.js is large (${(bundleSize / 1024 / 1024).toFixed(1)}MB)`);
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
return {
|
|
32
|
+
valid: errors.length === 0,
|
|
33
|
+
errors,
|
|
34
|
+
warnings,
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
//# sourceMappingURL=validate-bundle.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validate-bundle.js","sourceRoot":"","sources":["../../src/utils/validate-bundle.ts"],"names":[],"mappings":";;;;;AASA,wCAgCC;AAzCD,4CAAoB;AACpB,gDAAwB;AAQxB,SAAgB,cAAc,CAAC,OAAe;IAC5C,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,MAAM,QAAQ,GAAa,EAAE,CAAC;IAE9B,MAAM,UAAU,GAAG,cAAI,CAAC,IAAI,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;IACnD,MAAM,UAAU,GAAG,cAAI,CAAC,IAAI,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;IAEpD,IAAI,CAAC,YAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC/B,MAAM,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC;IAC9C,CAAC;IAED,IAAI,CAAC,YAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC/B,MAAM,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAC;IAC/C,CAAC;IAED,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxB,MAAM,UAAU,GAAG,YAAE,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC;QAChD,MAAM,UAAU,GAAG,YAAE,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC;QAEhD,IAAI,UAAU,KAAK,CAAC;YAAE,MAAM,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;QACxD,IAAI,UAAU,KAAK,CAAC;YAAE,MAAM,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;QAEzD,IAAI,UAAU,GAAG,CAAC,GAAG,IAAI,GAAG,IAAI,EAAE,CAAC;YACjC,QAAQ,CAAC,IAAI,CAAC,uBAAuB,CAAC,UAAU,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;QACnF,CAAC;IACH,CAAC;IAED,OAAO;QACL,KAAK,EAAE,MAAM,CAAC,MAAM,KAAK,CAAC;QAC1B,MAAM;QACN,QAAQ;KACT,CAAC;AACJ,CAAC"}
|
package/package.json
ADDED
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@littlepartytime/dev-kit",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"description": "Development toolkit CLI for Little Party Time game developers",
|
|
5
|
+
"main": "./dist/index.js",
|
|
6
|
+
"types": "./dist/index.d.ts",
|
|
7
|
+
"bin": {
|
|
8
|
+
"lpt-dev-kit": "./dist/cli.js"
|
|
9
|
+
},
|
|
10
|
+
"scripts": {
|
|
11
|
+
"build": "tsc",
|
|
12
|
+
"dev": "tsc --watch",
|
|
13
|
+
"test": "vitest run",
|
|
14
|
+
"test:watch": "vitest"
|
|
15
|
+
},
|
|
16
|
+
"files": ["dist"],
|
|
17
|
+
"keywords": ["boardgame", "dev-tools", "littlepartytime"],
|
|
18
|
+
"license": "MIT",
|
|
19
|
+
"repository": {
|
|
20
|
+
"type": "git",
|
|
21
|
+
"url": "https://github.com/chesterli710/littlepartytime-sdk.git",
|
|
22
|
+
"directory": "packages/dev-kit"
|
|
23
|
+
},
|
|
24
|
+
"dependencies": {
|
|
25
|
+
"archiver": "^7"
|
|
26
|
+
},
|
|
27
|
+
"devDependencies": {
|
|
28
|
+
"@types/archiver": "^6",
|
|
29
|
+
"@types/node": "^22",
|
|
30
|
+
"typescript": "^5",
|
|
31
|
+
"vitest": "^3"
|
|
32
|
+
}
|
|
33
|
+
}
|