merpeeps-pack-c4 0.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/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Merpeeps contributors
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md ADDED
@@ -0,0 +1,62 @@
1
+ # merpeeps-pack-c4
2
+
3
+ The Merpeeps C4 model stencil pack, distributed as **YAML data only**.
4
+ Includes nine stencils for people, software and external systems, containers,
5
+ components, databases, web browsers, mobile apps, and message buses.
6
+
7
+ ## Install and read
8
+
9
+ ```bash
10
+ npm install merpeeps-pack-c4
11
+ ```
12
+
13
+ From a Node.js ES module:
14
+
15
+ ```js
16
+ import { readFileSync } from 'node:fs';
17
+ import { createRequire } from 'node:module';
18
+
19
+ const require = createRequire(import.meta.url);
20
+ const yaml = readFileSync(require.resolve('merpeeps-pack-c4'), 'utf8');
21
+ ```
22
+
23
+ The explicit data path `merpeeps-pack-c4/c4.merpeeps-pack.yml` resolves to the
24
+ same file. Pass the text to your host application's YAML parser and compatible
25
+ Merpeeps pack loader. This package does not include a parser or runtime
26
+ dependencies. Do not import or require the YAML directly as JavaScript;
27
+ `require.resolve` locates the data without executing it.
28
+
29
+ ## Contents and scope
30
+
31
+ The tarball contains only:
32
+
33
+ - `c4.merpeeps-pack.yml`
34
+ - `LICENSE`
35
+ - `README.md`
36
+ - `package.json`
37
+
38
+ The YAML defines stencil labels, text, shapes, core icon references, fill and
39
+ stroke defaults, and hints. External systems use grey styling. It does not
40
+ contain custom icon geometry or new artwork. Your host supplies shape
41
+ rendering and implementations of the referenced core icons; this package
42
+ supplies neither a renderer nor glyph implementations.
43
+
44
+ Installing with npm only makes the data available to your project. It does
45
+ not automatically install anything into the Merpeeps desktop app or register
46
+ a Mermaid plugin. The desktop already embeds this same default pack.
47
+ The separate `merpeeps-mermaid-layout` package provides layout functionality,
48
+ not an automatic installation mechanism for this pack.
49
+
50
+ ## Source and publishing
51
+
52
+ The canonical source is
53
+ [`src/Merpeeps.Core/Packs/c4.merpeeps-pack.yml`](https://github.com/sargemonkey/merpeeps/blob/main/src/Merpeeps.Core/Packs/c4.merpeeps-pack.yml).
54
+ From the repository, `npm pack` and `npm publish` run `prepack` to copy that
55
+ file and the root MIT license into this package. Edit the canonical YAML, not
56
+ the generated package copy. Installing the resulting tarball needs no
57
+ repository checkout, build, or install lifecycle script.
58
+
59
+ See the [pack usage guide](https://github.com/sargemonkey/merpeeps/blob/main/docs/GUIDE.md#stencil-packs)
60
+ and the [manual publishing checklist](https://github.com/sargemonkey/merpeeps/blob/main/docs/PUBLISHING.md).
61
+
62
+ MIT licensed — see [LICENSE](./LICENSE).
@@ -0,0 +1,79 @@
1
+ id: c4
2
+ name: C4 model
3
+ spec: 1
4
+ licence: MIT
5
+ url: https://c4model.com
6
+
7
+ # C4 distinguishes people, systems, containers and components. The convention
8
+ # that external things are grey is carried in the fills below.
9
+ stencils:
10
+ - label: Person
11
+ text: User
12
+ shape: Stadium
13
+ icon: user
14
+ fill: "#DAE8FC"
15
+ stroke: "#6C8EBF"
16
+ hint: A human actor
17
+
18
+ - label: Software system
19
+ text: System
20
+ shape: RoundedRect
21
+ fill: "#DAE8FC"
22
+ stroke: "#6C8EBF"
23
+ hint: A whole system you own
24
+
25
+ - label: External system
26
+ text: External system
27
+ shape: RoundedRect
28
+ icon: cloud
29
+ fill: "#F5F5F5"
30
+ stroke: "#666666"
31
+ hint: A system someone else owns
32
+
33
+ - label: Container
34
+ text: Web Application
35
+ shape: RoundedRect
36
+ icon: server
37
+ fill: "#D5E8D4"
38
+ stroke: "#82B366"
39
+ hint: A deployable — app, service, function
40
+
41
+ - label: Component
42
+ text: Controller
43
+ shape: Rectangle
44
+ icon: cog
45
+ fill: "#D5E8D4"
46
+ stroke: "#82B366"
47
+ hint: A grouping inside a container
48
+
49
+ - label: Database
50
+ text: Database
51
+ shape: Cylinder
52
+ icon: database
53
+ fill: "#F8CECC"
54
+ stroke: "#B85450"
55
+ hint: A datastore container
56
+
57
+ - label: Web browser
58
+ text: Single-Page App
59
+ shape: RoundedRect
60
+ icon: browser
61
+ fill: "#DAE8FC"
62
+ stroke: "#6C8EBF"
63
+ hint: A browser-delivered container
64
+
65
+ - label: Mobile app
66
+ text: Mobile App
67
+ shape: RoundedRect
68
+ icon: mobile
69
+ fill: "#DAE8FC"
70
+ stroke: "#6C8EBF"
71
+ hint: A phone or tablet container
72
+
73
+ - label: Message bus
74
+ text: Event Bus
75
+ shape: Subroutine
76
+ icon: queue
77
+ fill: "#FFF2CC"
78
+ stroke: "#D6B656"
79
+ hint: Asynchronous transport between containers
package/package.json ADDED
@@ -0,0 +1,47 @@
1
+ {
2
+ "name": "merpeeps-pack-c4",
3
+ "version": "0.1.0",
4
+ "description": "Data-only Merpeeps C4 model stencil pack for people, software systems, containers, and components.",
5
+ "keywords": [
6
+ "merpeeps",
7
+ "mermaid",
8
+ "c4",
9
+ "c4-model",
10
+ "software-architecture",
11
+ "diagram",
12
+ "stencils",
13
+ "yaml",
14
+ "data-only"
15
+ ],
16
+ "license": "MIT",
17
+ "author": "Merpeeps contributors",
18
+ "repository": {
19
+ "type": "git",
20
+ "url": "git+https://github.com/sargemonkey/merpeeps.git",
21
+ "directory": "packages/merpeeps-pack-c4"
22
+ },
23
+ "homepage": "https://github.com/sargemonkey/merpeeps/blob/main/docs/GUIDE.md#stencil-packs",
24
+ "bugs": {
25
+ "url": "https://github.com/sargemonkey/merpeeps/issues"
26
+ },
27
+ "main": "./c4.merpeeps-pack.yml",
28
+ "exports": {
29
+ ".": "./c4.merpeeps-pack.yml",
30
+ "./c4.merpeeps-pack.yml": "./c4.merpeeps-pack.yml"
31
+ },
32
+ "files": [
33
+ "c4.merpeeps-pack.yml",
34
+ "LICENSE",
35
+ "README.md",
36
+ "package.json"
37
+ ],
38
+ "scripts": {
39
+ "prepack": "node ../../scripts/prepare-domain-pack.mjs c4",
40
+ "release:check": "node ../../oracle/package-consumer-test.mjs merpeeps-pack-c4",
41
+ "prepublishOnly": "npm run release:check"
42
+ },
43
+ "publishConfig": {
44
+ "access": "public",
45
+ "registry": "https://registry.npmjs.org/"
46
+ }
47
+ }