@sharpee/devkit 1.0.2 → 1.0.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.
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sharpee/devkit",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.4",
|
|
4
4
|
"description": "The Sharpee CLI engine — build/test/verify/scaffold orchestration (ADR-180). Provides the `sharpee` command; orchestrates, tsf compiles.",
|
|
5
5
|
"main": "./index.js",
|
|
6
6
|
"types": "./index.d.ts",
|
package/standalone/init.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../../../../../repos/sharpee/packages/devkit/src/standalone/init.ts"],"names":[],"mappings":"AAAA;;;;GAIG;
|
|
1
|
+
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../../../../../repos/sharpee/packages/devkit/src/standalone/init.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AA4FH;;GAEG;AACH,wBAAsB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CA0FlE"}
|
package/standalone/init.js
CHANGED
|
@@ -56,12 +56,20 @@ const TEMPLATES_DIR = fs.existsSync(path.join(__dirname, '..', 'templates', 'sto
|
|
|
56
56
|
*/
|
|
57
57
|
function platformRanges() {
|
|
58
58
|
let version = '1.0.0';
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
59
|
+
// devkit's package.json is one dir up in the published (flattened) package
|
|
60
|
+
// (<pkg>/standalone/) and two dirs up in the monorepo (<pkg>/dist/standalone/).
|
|
61
|
+
// Probe both and accept only devkit's own manifest (not a parent package.json).
|
|
62
|
+
for (const rel of [['..', 'package.json'], ['..', '..', 'package.json']]) {
|
|
63
|
+
try {
|
|
64
|
+
const pkg = JSON.parse(fs.readFileSync(path.join(__dirname, ...rel), 'utf-8'));
|
|
65
|
+
if (pkg.name === '@sharpee/devkit' && pkg.version) {
|
|
66
|
+
version = pkg.version;
|
|
67
|
+
break;
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
catch {
|
|
71
|
+
/* try the next candidate */
|
|
72
|
+
}
|
|
65
73
|
}
|
|
66
74
|
const major = version.split('.')[0];
|
|
67
75
|
return { sharpeeRange: `^${major}.0.0`, devkitRange: `^${version}` };
|
package/standalone/init.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../../../../../../repos/sharpee/packages/devkit/src/standalone/init.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../../../../../../repos/sharpee/packages/devkit/src/standalone/init.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* {{STORY_TITLE}}
|
|
3
|
+
*
|
|
4
|
+
* A Sharpee Interactive Fiction story.
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
import { Story, StoryConfig, Parser, EnglishLanguageProvider } from '@sharpee/sharpee';
|
|
8
|
+
import {
|
|
9
|
+
WorldModel,
|
|
10
|
+
IFEntity,
|
|
11
|
+
EntityType,
|
|
12
|
+
IdentityTrait,
|
|
13
|
+
RoomTrait,
|
|
14
|
+
} from '@sharpee/world-model';
|
|
15
|
+
|
|
16
|
+
export const config: StoryConfig = {
|
|
17
|
+
id: '{{STORY_ID}}',
|
|
18
|
+
title: '{{STORY_TITLE}}',
|
|
19
|
+
author: '{{AUTHOR}}',
|
|
20
|
+
version: '1.0.0',
|
|
21
|
+
description: '{{DESCRIPTION}}',
|
|
22
|
+
};
|
|
23
|
+
|
|
24
|
+
export const story: Story = {
|
|
25
|
+
config,
|
|
26
|
+
|
|
27
|
+
createPlayer(world: WorldModel): IFEntity {
|
|
28
|
+
const player = world.createEntity('you', EntityType.ACTOR);
|
|
29
|
+
player.add(new IdentityTrait({ name: 'you', description: 'An adventurer.' }));
|
|
30
|
+
return player;
|
|
31
|
+
},
|
|
32
|
+
|
|
33
|
+
initializeWorld(world: WorldModel): void {
|
|
34
|
+
const player = world.getPlayer()!;
|
|
35
|
+
|
|
36
|
+
// === ROOMS ===
|
|
37
|
+
// A room is an entity carrying an IdentityTrait (its name + description) and a
|
|
38
|
+
// RoomTrait (its exits). Give each exit a destination room id.
|
|
39
|
+
const startRoom = world.createEntity('Starting Room', EntityType.ROOM);
|
|
40
|
+
startRoom.add(new IdentityTrait({
|
|
41
|
+
name: 'Starting Room',
|
|
42
|
+
description: 'You are in a small, dimly lit room. This is where your adventure begins.',
|
|
43
|
+
}));
|
|
44
|
+
startRoom.add(new RoomTrait({ exits: {} }));
|
|
45
|
+
|
|
46
|
+
// To add and connect a second room:
|
|
47
|
+
//
|
|
48
|
+
// const hall = world.createEntity('Hall', EntityType.ROOM);
|
|
49
|
+
// hall.add(new IdentityTrait({ name: 'Hall', description: 'A long hall.' }));
|
|
50
|
+
// hall.add(new RoomTrait({ exits: { south: { destination: startRoom.id } } }));
|
|
51
|
+
// startRoom.add(new RoomTrait({ exits: { north: { destination: hall.id } } }));
|
|
52
|
+
|
|
53
|
+
// === OBJECTS ===
|
|
54
|
+
// An object is an entity with an IdentityTrait, placed in a room:
|
|
55
|
+
//
|
|
56
|
+
// const key = world.createEntity('brass key', EntityType.ITEM);
|
|
57
|
+
// key.add(new IdentityTrait({ name: 'brass key', description: 'A small brass key.' }));
|
|
58
|
+
// world.moveEntity(key.id, startRoom.id);
|
|
59
|
+
|
|
60
|
+
// Place the player in the starting room.
|
|
61
|
+
world.moveEntity(player.id, startRoom.id);
|
|
62
|
+
},
|
|
63
|
+
|
|
64
|
+
// Optional: extend the parser with story-specific vocabulary.
|
|
65
|
+
extendParser(parser: Parser): void {
|
|
66
|
+
// const grammar = parser.getStoryGrammar();
|
|
67
|
+
// grammar.define('custom command').mapsTo('story.action.custom').build();
|
|
68
|
+
},
|
|
69
|
+
|
|
70
|
+
// Optional: extend the language with story-specific messages.
|
|
71
|
+
extendLanguage(language: EnglishLanguageProvider): void {
|
|
72
|
+
// language.addMessages({ 'story.message.custom': 'A custom message.' });
|
|
73
|
+
},
|
|
74
|
+
};
|
|
75
|
+
|
|
76
|
+
export default story;
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "{{STORY_ID}}",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"description": "{{DESCRIPTION}}",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"main": "dist/index.js",
|
|
7
|
+
"scripts": {
|
|
8
|
+
"build": "tsc",
|
|
9
|
+
"build:browser": "sharpee build-browser",
|
|
10
|
+
"introspect": "sharpee introspect",
|
|
11
|
+
"dev": "tsc --watch"
|
|
12
|
+
},
|
|
13
|
+
"dependencies": {
|
|
14
|
+
"@sharpee/sharpee": "{{SHARPEE_VERSION}}",
|
|
15
|
+
"@sharpee/world-model": "{{SHARPEE_VERSION}}"
|
|
16
|
+
},
|
|
17
|
+
"devDependencies": {
|
|
18
|
+
"@sharpee/devkit": "{{DEVKIT_VERSION}}",
|
|
19
|
+
"typescript": "^5.0.0"
|
|
20
|
+
},
|
|
21
|
+
"keywords": [
|
|
22
|
+
"interactive-fiction",
|
|
23
|
+
"sharpee",
|
|
24
|
+
"text-adventure"
|
|
25
|
+
],
|
|
26
|
+
"author": "{{AUTHOR}}",
|
|
27
|
+
"license": "MIT"
|
|
28
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
{
|
|
2
|
+
"compilerOptions": {
|
|
3
|
+
"target": "ES2022",
|
|
4
|
+
"module": "NodeNext",
|
|
5
|
+
"moduleResolution": "NodeNext",
|
|
6
|
+
"outDir": "dist",
|
|
7
|
+
"rootDir": "src",
|
|
8
|
+
"strict": true,
|
|
9
|
+
"esModuleInterop": true,
|
|
10
|
+
"declaration": true,
|
|
11
|
+
"skipLibCheck": true
|
|
12
|
+
},
|
|
13
|
+
"include": ["src/**/*"]
|
|
14
|
+
}
|