@milehimikey/em 0.2.1 → 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/.claude/skills/event-modeling/SKILL.md +75 -24
- package/.claude/skills/event-modeling/reference/em-dsl.md +15 -0
- package/.claude/skills/event-modeling/reference/frontmatter.md +129 -0
- package/.claude/skills/event-modeling/reference/methodology.md +10 -0
- package/.claude/skills/event-modeling/templates/model-readme.md +4 -4
- package/.claude/skills/event-modeling/templates/slice.md +4 -2
- package/.claude/skills/event-modeling/templates/state.md +9 -3
- package/README.md +31 -2
- package/dist/cli.js +227 -4
- package/dist/cli.js.map +1 -1
- package/dist/config.d.ts +15 -0
- package/dist/config.js +60 -0
- package/dist/config.js.map +1 -0
- package/dist/migrate/migrate.d.ts +26 -0
- package/dist/migrate/migrate.js +276 -0
- package/dist/migrate/migrate.js.map +1 -0
- package/dist/model/deriveSliceFields.d.ts +21 -0
- package/dist/model/deriveSliceFields.js +60 -0
- package/dist/model/deriveSliceFields.js.map +1 -0
- package/dist/model/frontmatter.d.ts +21 -0
- package/dist/model/frontmatter.js +38 -0
- package/dist/model/frontmatter.js.map +1 -0
- package/dist/model/model.js +2 -17
- package/dist/model/model.js.map +1 -1
- package/dist/model/sliceDoc.d.ts +56 -0
- package/dist/model/sliceDoc.js +28 -0
- package/dist/model/sliceDoc.js.map +1 -0
- package/dist/model/validate.d.ts +2 -0
- package/dist/model/validate.js +1 -1
- package/dist/model/validate.js.map +1 -1
- package/dist/model/validateSliceDocs.d.ts +7 -0
- package/dist/model/validateSliceDocs.js +195 -0
- package/dist/model/validateSliceDocs.js.map +1 -0
- package/dist/slice/generate.d.ts +17 -0
- package/dist/slice/generate.js +61 -0
- package/dist/slice/generate.js.map +1 -0
- package/dist/slice/query.d.ts +42 -0
- package/dist/slice/query.js +96 -0
- package/dist/slice/query.js.map +1 -0
- package/dist/slice/sync.d.ts +18 -0
- package/dist/slice/sync.js +104 -0
- package/dist/slice/sync.js.map +1 -0
- package/dist/util/findModel.d.ts +1 -0
- package/dist/util/findModel.js +27 -0
- package/dist/util/findModel.js.map +1 -0
- package/dist/util/slug.d.ts +4 -0
- package/dist/util/slug.js +32 -0
- package/dist/util/slug.js.map +1 -0
- package/package.json +4 -3
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"findModel.js","sourceRoot":"","sources":["../../src/util/findModel.ts"],"names":[],"mappings":"AAAA,+BAA+B;AAC/B,0EAA0E;AAC1E,8EAA8E;AAC9E,4EAA4E;AAC5E,2CAA2C;AAE3C,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAClD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,MAAM,UAAU,aAAa,CAAC,GAAW,EAAE,YAAqB;IAC9D,IAAI,YAAY,EAAE,CAAC;QACjB,4EAA4E;QAC5E,8EAA8E;QAC9E,4EAA4E;QAC5E,6EAA6E;QAC7E,MAAM,IAAI,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;QACnC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,yBAAyB,IAAI,EAAE,CAAC,CAAC;QACxE,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,UAAU,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;IACrE,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,OAAO,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;IAChE,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC5B,MAAM,IAAI,KAAK,CAAC,wBAAwB,GAAG,2BAA2B,CAAC,CAAC;IAC1E,CAAC;IACD,MAAM,IAAI,KAAK,CACb,+BAA+B,GAAG,KAAK,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,2BAA2B,CACxF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export declare function slug(name: string): string;
|
|
2
|
+
export declare function kebabSlug(name: string): string;
|
|
3
|
+
/** Append a numeric suffix (`${sep}2`, `${sep}3`, ...) until `id` isn't in `used`. Adds the result to `used`. */
|
|
4
|
+
export declare function dedupe(id: string, used: Set<string>, sep: string): string;
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
// SPDX-License-Identifier: MIT
|
|
2
|
+
// Shared name -> identifier slugging. Two conventions, two purposes:
|
|
3
|
+
// - slug(): underscore-separated, used for .em Element ids (model.ts).
|
|
4
|
+
// - kebabSlug(): hyphen-separated, used for slice-doc frontmatter `id` and
|
|
5
|
+
// filenames (matches the skill's existing "kebab-case the slice name"
|
|
6
|
+
// convention). These are distinct namespaces — do not conflate them.
|
|
7
|
+
export function slug(name) {
|
|
8
|
+
const s = name
|
|
9
|
+
.trim()
|
|
10
|
+
.toLowerCase()
|
|
11
|
+
.replace(/[^a-z0-9]+/g, "_")
|
|
12
|
+
.replace(/^_+|_+$/g, "");
|
|
13
|
+
return s || "n";
|
|
14
|
+
}
|
|
15
|
+
export function kebabSlug(name) {
|
|
16
|
+
const s = name
|
|
17
|
+
.trim()
|
|
18
|
+
.toLowerCase()
|
|
19
|
+
.replace(/[^a-z0-9]+/g, "-")
|
|
20
|
+
.replace(/^-+|-+$/g, "");
|
|
21
|
+
return s || "n";
|
|
22
|
+
}
|
|
23
|
+
/** Append a numeric suffix (`${sep}2`, `${sep}3`, ...) until `id` isn't in `used`. Adds the result to `used`. */
|
|
24
|
+
export function dedupe(id, used, sep) {
|
|
25
|
+
let candidate = id;
|
|
26
|
+
let n = 2;
|
|
27
|
+
while (used.has(candidate))
|
|
28
|
+
candidate = `${id}${sep}${n++}`;
|
|
29
|
+
used.add(candidate);
|
|
30
|
+
return candidate;
|
|
31
|
+
}
|
|
32
|
+
//# sourceMappingURL=slug.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"slug.js","sourceRoot":"","sources":["../../src/util/slug.ts"],"names":[],"mappings":"AAAA,+BAA+B;AAC/B,qEAAqE;AACrE,wEAAwE;AACxE,4EAA4E;AAC5E,yEAAyE;AACzE,wEAAwE;AAExE,MAAM,UAAU,IAAI,CAAC,IAAY;IAC/B,MAAM,CAAC,GAAG,IAAI;SACX,IAAI,EAAE;SACN,WAAW,EAAE;SACb,OAAO,CAAC,aAAa,EAAE,GAAG,CAAC;SAC3B,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;IAC3B,OAAO,CAAC,IAAI,GAAG,CAAC;AAClB,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,IAAY;IACpC,MAAM,CAAC,GAAG,IAAI;SACX,IAAI,EAAE;SACN,WAAW,EAAE;SACb,OAAO,CAAC,aAAa,EAAE,GAAG,CAAC;SAC3B,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;IAC3B,OAAO,CAAC,IAAI,GAAG,CAAC;AAClB,CAAC;AAED,iHAAiH;AACjH,MAAM,UAAU,MAAM,CAAC,EAAU,EAAE,IAAiB,EAAE,GAAW;IAC/D,IAAI,SAAS,GAAG,EAAE,CAAC;IACnB,IAAI,CAAC,GAAG,CAAC,CAAC;IACV,OAAO,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC;QAAE,SAAS,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,CAAC,EAAE,EAAE,CAAC;IAC5D,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IACpB,OAAO,SAAS,CAAC;AACnB,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@milehimikey/em",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "1.0.0",
|
|
4
4
|
"description": "AI-friendly Event Modeling — a slice-first text DSL rendered to a strict, self-contained Graphviz grid (SVG/PNG)",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
"dist",
|
|
12
12
|
"README.md",
|
|
13
13
|
"LICENSE",
|
|
14
|
-
".claude"
|
|
14
|
+
".claude/skills"
|
|
15
15
|
],
|
|
16
16
|
"scripts": {
|
|
17
17
|
"build": "tsc -p tsconfig.json",
|
|
@@ -51,7 +51,8 @@
|
|
|
51
51
|
"@hpcc-js/wasm-graphviz": "^1.22.0",
|
|
52
52
|
"@resvg/resvg-js": "^2.6.2",
|
|
53
53
|
"chokidar": "^3.6.0",
|
|
54
|
-
"commander": "^12.1.0"
|
|
54
|
+
"commander": "^12.1.0",
|
|
55
|
+
"yaml": "^2.9.0"
|
|
55
56
|
},
|
|
56
57
|
"devDependencies": {
|
|
57
58
|
"@types/node": "^22.0.0",
|