@beehexa/hexasync-template-engine 2608.20.18 → 2608.20.32
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/index.d.ts +66 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +68 -0
- package/dist/index.js.map +1 -0
- package/package.json +12 -12
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* One import surface over the template packages (Story 6.2).
|
|
3
|
+
*
|
|
4
|
+
* ### What this is for
|
|
5
|
+
*
|
|
6
|
+
* The editor, the CLI and any agent must not diverge in what they compute. Every one of them can already import the
|
|
7
|
+
* packages directly, and that is exactly the problem: nothing stops two consumers answering one question two ways.
|
|
8
|
+
* This feature has spent a session finding that happen — a catalogue-unavailable state answered three different ways
|
|
9
|
+
* across three stories, a drift guard comparing a hand-copied literal instead of the rule, one gate measuring key
|
|
10
|
+
* presence while the rule it certified used three-way presence, and the extension and the CLI disagreeing in opposite
|
|
11
|
+
* directions about a webhook's steps.
|
|
12
|
+
*
|
|
13
|
+
* So this file is deliberately the most boring file in the repository: **re-exports and nothing else**.
|
|
14
|
+
*
|
|
15
|
+
* ### It contributes NOTHING of its own (AC-1)
|
|
16
|
+
*
|
|
17
|
+
* No rule, no schema, no computation, not one line of logic. If a question deserves an answer, it belongs in the
|
|
18
|
+
* package that owns the question — adding it here would create a second place to look, which is the very failure the
|
|
19
|
+
* facade exists to prevent. `src/__tests__/facade.spec.ts` asserts that by reading this file: any statement that is
|
|
20
|
+
* not a re-export fails the build.
|
|
21
|
+
*
|
|
22
|
+
* ### The answers are IDENTICAL, not merely equivalent (AC-2)
|
|
23
|
+
*
|
|
24
|
+
* Because these are re-exports, `engine.VALIDATION_RULES` and `validate.VALIDATION_RULES` are the same object, and
|
|
25
|
+
* `engine.composeProject` is the same function. The test asserts identity (`===`), which is a stronger claim than
|
|
26
|
+
* "produces the same result" and cannot drift.
|
|
27
|
+
*
|
|
28
|
+
* ### Why one namespace per package, rather than one flat surface
|
|
29
|
+
*
|
|
30
|
+
* ⛔ A flat `export *` does not compile, and what stops it is worth keeping visible. Four names are exported by two
|
|
31
|
+
* packages each:
|
|
32
|
+
*
|
|
33
|
+
* | name | owned by |
|
|
34
|
+
* | --- | --- |
|
|
35
|
+
* | `renderMermaid`, `renderMarkdown`, `NodeLocation` | `worker-flow` **and** `frontend-flow` |
|
|
36
|
+
* | `ComponentProvenance` | `index` **and** `report-model` |
|
|
37
|
+
*
|
|
38
|
+
* They are not duplicates. `workerFlow.renderMermaid` takes a `WorkerFlow` and `frontendFlow.renderMermaid` takes a
|
|
39
|
+
* `FrontendWorkflowFlow` — the same concept named per runtime, which is **AD-21** keeping the worker and frontend
|
|
40
|
+
* runtimes apart. Flattening them would either erase that boundary or pick a winner arbitrarily, and this feature has
|
|
41
|
+
* already paid for tooling that could not tell the two runtimes apart. So the facade preserves the boundary and makes
|
|
42
|
+
* the owning package visible at the call site: `validate.VALIDATION_RULES`, `workerFlow.WORKER_STAGES`.
|
|
43
|
+
*
|
|
44
|
+
* That also serves the purpose better than a flat surface would. The point is not fewer imports — it is *one*
|
|
45
|
+
* computation per question, and a call site that names its owner is a call site you can check.
|
|
46
|
+
*
|
|
47
|
+
* ### It adds no dependency of its own (AC-3)
|
|
48
|
+
*
|
|
49
|
+
* No schema-validation library, nothing platform-specific. The manifest depends only on `core`-layer packages, so the
|
|
50
|
+
* repository's existing dependency-cruiser gate — which reads `hexasync.layer` from each manifest — enforces this
|
|
51
|
+
* rather than a bespoke test: a core package may not reach for the host, the filesystem or the shell, and may not
|
|
52
|
+
* depend on an adapter. The two adapters (`io-node`, `report-render`) are therefore **absent by design**; a consumer
|
|
53
|
+
* that needs a filesystem or HTML brings its own.
|
|
54
|
+
*/
|
|
55
|
+
export * as model from '@beehexa/hexasync-template-model';
|
|
56
|
+
export * as ports from '@beehexa/hexasync-template-ports';
|
|
57
|
+
export * as schema from '@beehexa/hexasync-template-schema';
|
|
58
|
+
export * as assets from '@beehexa/hexasync-template-assets';
|
|
59
|
+
export * as index from '@beehexa/hexasync-template-index';
|
|
60
|
+
export * as compose from '@beehexa/hexasync-template-compose';
|
|
61
|
+
export * as validate from '@beehexa/hexasync-template-validate';
|
|
62
|
+
export * as context from '@beehexa/hexasync-template-context';
|
|
63
|
+
export * as workerFlow from '@beehexa/hexasync-template-worker-flow';
|
|
64
|
+
export * as frontendFlow from '@beehexa/hexasync-template-frontend-flow';
|
|
65
|
+
export * as reportModel from '@beehexa/hexasync-template-report-model';
|
|
66
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqDG;AACH,OAAO,KAAK,KAAK,MAAM,kCAAkC,CAAC;AAC1D,OAAO,KAAK,KAAK,MAAM,kCAAkC,CAAC;AAC1D,OAAO,KAAK,MAAM,MAAM,mCAAmC,CAAC;AAC5D,OAAO,KAAK,MAAM,MAAM,mCAAmC,CAAC;AAC5D,OAAO,KAAK,KAAK,MAAM,kCAAkC,CAAC;AAC1D,OAAO,KAAK,OAAO,MAAM,oCAAoC,CAAC;AAC9D,OAAO,KAAK,QAAQ,MAAM,qCAAqC,CAAC;AAGhE,OAAO,KAAK,OAAO,MAAM,oCAAoC,CAAC;AAC9D,OAAO,KAAK,UAAU,MAAM,wCAAwC,CAAC;AACrE,OAAO,KAAK,YAAY,MAAM,0CAA0C,CAAC;AACzE,OAAO,KAAK,WAAW,MAAM,yCAAyC,CAAC"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* One import surface over the template packages (Story 6.2).
|
|
3
|
+
*
|
|
4
|
+
* ### What this is for
|
|
5
|
+
*
|
|
6
|
+
* The editor, the CLI and any agent must not diverge in what they compute. Every one of them can already import the
|
|
7
|
+
* packages directly, and that is exactly the problem: nothing stops two consumers answering one question two ways.
|
|
8
|
+
* This feature has spent a session finding that happen — a catalogue-unavailable state answered three different ways
|
|
9
|
+
* across three stories, a drift guard comparing a hand-copied literal instead of the rule, one gate measuring key
|
|
10
|
+
* presence while the rule it certified used three-way presence, and the extension and the CLI disagreeing in opposite
|
|
11
|
+
* directions about a webhook's steps.
|
|
12
|
+
*
|
|
13
|
+
* So this file is deliberately the most boring file in the repository: **re-exports and nothing else**.
|
|
14
|
+
*
|
|
15
|
+
* ### It contributes NOTHING of its own (AC-1)
|
|
16
|
+
*
|
|
17
|
+
* No rule, no schema, no computation, not one line of logic. If a question deserves an answer, it belongs in the
|
|
18
|
+
* package that owns the question — adding it here would create a second place to look, which is the very failure the
|
|
19
|
+
* facade exists to prevent. `src/__tests__/facade.spec.ts` asserts that by reading this file: any statement that is
|
|
20
|
+
* not a re-export fails the build.
|
|
21
|
+
*
|
|
22
|
+
* ### The answers are IDENTICAL, not merely equivalent (AC-2)
|
|
23
|
+
*
|
|
24
|
+
* Because these are re-exports, `engine.VALIDATION_RULES` and `validate.VALIDATION_RULES` are the same object, and
|
|
25
|
+
* `engine.composeProject` is the same function. The test asserts identity (`===`), which is a stronger claim than
|
|
26
|
+
* "produces the same result" and cannot drift.
|
|
27
|
+
*
|
|
28
|
+
* ### Why one namespace per package, rather than one flat surface
|
|
29
|
+
*
|
|
30
|
+
* ⛔ A flat `export *` does not compile, and what stops it is worth keeping visible. Four names are exported by two
|
|
31
|
+
* packages each:
|
|
32
|
+
*
|
|
33
|
+
* | name | owned by |
|
|
34
|
+
* | --- | --- |
|
|
35
|
+
* | `renderMermaid`, `renderMarkdown`, `NodeLocation` | `worker-flow` **and** `frontend-flow` |
|
|
36
|
+
* | `ComponentProvenance` | `index` **and** `report-model` |
|
|
37
|
+
*
|
|
38
|
+
* They are not duplicates. `workerFlow.renderMermaid` takes a `WorkerFlow` and `frontendFlow.renderMermaid` takes a
|
|
39
|
+
* `FrontendWorkflowFlow` — the same concept named per runtime, which is **AD-21** keeping the worker and frontend
|
|
40
|
+
* runtimes apart. Flattening them would either erase that boundary or pick a winner arbitrarily, and this feature has
|
|
41
|
+
* already paid for tooling that could not tell the two runtimes apart. So the facade preserves the boundary and makes
|
|
42
|
+
* the owning package visible at the call site: `validate.VALIDATION_RULES`, `workerFlow.WORKER_STAGES`.
|
|
43
|
+
*
|
|
44
|
+
* That also serves the purpose better than a flat surface would. The point is not fewer imports — it is *one*
|
|
45
|
+
* computation per question, and a call site that names its owner is a call site you can check.
|
|
46
|
+
*
|
|
47
|
+
* ### It adds no dependency of its own (AC-3)
|
|
48
|
+
*
|
|
49
|
+
* No schema-validation library, nothing platform-specific. The manifest depends only on `core`-layer packages, so the
|
|
50
|
+
* repository's existing dependency-cruiser gate — which reads `hexasync.layer` from each manifest — enforces this
|
|
51
|
+
* rather than a bespoke test: a core package may not reach for the host, the filesystem or the shell, and may not
|
|
52
|
+
* depend on an adapter. The two adapters (`io-node`, `report-render`) are therefore **absent by design**; a consumer
|
|
53
|
+
* that needs a filesystem or HTML brings its own.
|
|
54
|
+
*/
|
|
55
|
+
export * as model from '@beehexa/hexasync-template-model';
|
|
56
|
+
export * as ports from '@beehexa/hexasync-template-ports';
|
|
57
|
+
export * as schema from '@beehexa/hexasync-template-schema';
|
|
58
|
+
export * as assets from '@beehexa/hexasync-template-assets';
|
|
59
|
+
export * as index from '@beehexa/hexasync-template-index';
|
|
60
|
+
export * as compose from '@beehexa/hexasync-template-compose';
|
|
61
|
+
export * as validate from '@beehexa/hexasync-template-validate';
|
|
62
|
+
// Story 8.1: the authoring context engine. Behind the facade from its first commit, so no consumer ever learns to
|
|
63
|
+
// import it directly and has to be migrated later.
|
|
64
|
+
export * as context from '@beehexa/hexasync-template-context';
|
|
65
|
+
export * as workerFlow from '@beehexa/hexasync-template-worker-flow';
|
|
66
|
+
export * as frontendFlow from '@beehexa/hexasync-template-frontend-flow';
|
|
67
|
+
export * as reportModel from '@beehexa/hexasync-template-report-model';
|
|
68
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqDG;AACH,OAAO,KAAK,KAAK,MAAM,kCAAkC,CAAC;AAC1D,OAAO,KAAK,KAAK,MAAM,kCAAkC,CAAC;AAC1D,OAAO,KAAK,MAAM,MAAM,mCAAmC,CAAC;AAC5D,OAAO,KAAK,MAAM,MAAM,mCAAmC,CAAC;AAC5D,OAAO,KAAK,KAAK,MAAM,kCAAkC,CAAC;AAC1D,OAAO,KAAK,OAAO,MAAM,oCAAoC,CAAC;AAC9D,OAAO,KAAK,QAAQ,MAAM,qCAAqC,CAAC;AAChE,kHAAkH;AAClH,mDAAmD;AACnD,OAAO,KAAK,OAAO,MAAM,oCAAoC,CAAC;AAC9D,OAAO,KAAK,UAAU,MAAM,wCAAwC,CAAC;AACrE,OAAO,KAAK,YAAY,MAAM,0CAA0C,CAAC;AACzE,OAAO,KAAK,WAAW,MAAM,yCAAyC,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@beehexa/hexasync-template-engine",
|
|
3
|
-
"version": "2608.20.
|
|
3
|
+
"version": "2608.20.32",
|
|
4
4
|
"description": "One import surface over the template packages, so the editor, the CLI and any agent compute the same answers.",
|
|
5
5
|
"license": "SEE LICENSE IN ../../LICENSE",
|
|
6
6
|
"type": "module",
|
|
@@ -20,17 +20,17 @@
|
|
|
20
20
|
"build": "tsc -p tsconfig.build.json"
|
|
21
21
|
},
|
|
22
22
|
"dependencies": {
|
|
23
|
-
"@beehexa/hexasync-template-assets": "2608.20.
|
|
24
|
-
"@beehexa/hexasync-template-compose": "2608.20.
|
|
25
|
-
"@beehexa/hexasync-template-context": "2608.20.
|
|
26
|
-
"@beehexa/hexasync-template-frontend-flow": "2608.20.
|
|
27
|
-
"@beehexa/hexasync-template-index": "2608.20.
|
|
28
|
-
"@beehexa/hexasync-template-model": "2608.20.
|
|
29
|
-
"@beehexa/hexasync-template-ports": "2608.20.
|
|
30
|
-
"@beehexa/hexasync-template-report-model": "2608.20.
|
|
31
|
-
"@beehexa/hexasync-template-schema": "2608.20.
|
|
32
|
-
"@beehexa/hexasync-template-validate": "2608.20.
|
|
33
|
-
"@beehexa/hexasync-template-worker-flow": "2608.20.
|
|
23
|
+
"@beehexa/hexasync-template-assets": "2608.20.32",
|
|
24
|
+
"@beehexa/hexasync-template-compose": "2608.20.32",
|
|
25
|
+
"@beehexa/hexasync-template-context": "2608.20.32",
|
|
26
|
+
"@beehexa/hexasync-template-frontend-flow": "2608.20.32",
|
|
27
|
+
"@beehexa/hexasync-template-index": "2608.20.32",
|
|
28
|
+
"@beehexa/hexasync-template-model": "2608.20.32",
|
|
29
|
+
"@beehexa/hexasync-template-ports": "2608.20.32",
|
|
30
|
+
"@beehexa/hexasync-template-report-model": "2608.20.32",
|
|
31
|
+
"@beehexa/hexasync-template-schema": "2608.20.32",
|
|
32
|
+
"@beehexa/hexasync-template-validate": "2608.20.32",
|
|
33
|
+
"@beehexa/hexasync-template-worker-flow": "2608.20.32"
|
|
34
34
|
},
|
|
35
35
|
"hexasync": {
|
|
36
36
|
"layer": "core"
|