@agent-teams/feature-module-standard 0.2.3 → 0.3.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/CHANGELOG.md +27 -0
- package/README.md +29 -20
- package/dist/features/conformance-fixtures/testing/conformance-case-inputs.d.ts +53 -0
- package/dist/features/conformance-fixtures/testing/conformance-case-inputs.d.ts.map +1 -0
- package/dist/features/conformance-fixtures/testing/conformance-case-inputs.js +70 -0
- package/dist/features/conformance-fixtures/testing/conformance-case-inputs.js.map +1 -0
- package/dist/features/conformance-fixtures/testing/conformance-cases-later.d.ts +3 -0
- package/dist/features/conformance-fixtures/testing/conformance-cases-later.d.ts.map +1 -0
- package/dist/features/conformance-fixtures/testing/conformance-cases-later.js +170 -0
- package/dist/features/conformance-fixtures/testing/conformance-cases-later.js.map +1 -0
- package/dist/features/conformance-fixtures/testing/conformance-cases.d.ts +3 -16
- package/dist/features/conformance-fixtures/testing/conformance-cases.d.ts.map +1 -1
- package/dist/features/conformance-fixtures/testing/conformance-cases.js +102 -215
- package/dist/features/conformance-fixtures/testing/conformance-cases.js.map +1 -1
- package/dist/features/conformance-fixtures/testing/example-sources.d.ts.map +1 -1
- package/dist/features/conformance-fixtures/testing/example-sources.js +12 -8
- package/dist/features/conformance-fixtures/testing/example-sources.js.map +1 -1
- package/dist/features/conformance-fixtures/testing/example-tree.d.ts +8 -8
- package/dist/features/conformance-fixtures/testing/example-tree.d.ts.map +1 -1
- package/dist/features/conformance-fixtures/testing/example-tree.js +39 -27
- package/dist/features/conformance-fixtures/testing/example-tree.js.map +1 -1
- package/dist/features/feature-dependencies/application/check-feature-dependencies.d.ts +2 -2
- package/dist/features/feature-dependencies/application/check-feature-dependencies.d.ts.map +1 -1
- package/dist/features/feature-dependencies/application/check-feature-dependencies.js +88 -56
- package/dist/features/feature-dependencies/application/check-feature-dependencies.js.map +1 -1
- package/dist/features/feature-dependencies/application/feature-graphs.d.ts.map +1 -1
- package/dist/features/feature-dependencies/application/feature-graphs.js +1 -1
- package/dist/features/feature-dependencies/application/feature-graphs.js.map +1 -1
- package/dist/features/feature-dependencies/application/layer-direction.d.ts +2 -2
- package/dist/features/feature-dependencies/application/layer-direction.d.ts.map +1 -1
- package/dist/features/feature-dependencies/application/layer-direction.js +17 -11
- package/dist/features/feature-dependencies/application/layer-direction.js.map +1 -1
- package/dist/features/feature-layout/application/analyze-feature-tree.d.ts +1 -1
- package/dist/features/feature-layout/application/analyze-feature-tree.d.ts.map +1 -1
- package/dist/features/feature-layout/application/analyze-feature-tree.js +62 -28
- package/dist/features/feature-layout/application/analyze-feature-tree.js.map +1 -1
- package/dist/features/feature-layout/application/find-overlapping-roots.d.ts.map +1 -1
- package/dist/features/feature-layout/application/find-overlapping-roots.js +3 -2
- package/dist/features/feature-layout/application/find-overlapping-roots.js.map +1 -1
- package/dist/features/feature-layout/application/infer-directory-layout.d.ts +2 -2
- package/dist/features/feature-layout/application/infer-directory-layout.d.ts.map +1 -1
- package/dist/features/feature-layout/application/infer-directory-layout.js +3 -4
- package/dist/features/feature-layout/application/infer-directory-layout.js.map +1 -1
- package/dist/features/feature-model/domain/model.d.ts +10 -10
- package/dist/features/feature-model/domain/model.d.ts.map +1 -1
- package/dist/features/feature-model/domain/model.js +39 -13
- package/dist/features/feature-model/domain/model.js.map +1 -1
- package/dist/features/module-check/application/check-feature-module.d.ts +1 -1
- package/dist/features/module-check/application/check-feature-module.d.ts.map +1 -1
- package/dist/features/module-check/application/check-feature-module.js +24 -12
- package/dist/features/module-check/application/check-feature-module.js.map +1 -1
- package/dist/features/node-runner/application/run-feature-module-check.d.ts +4 -4
- package/dist/features/node-runner/application/run-feature-module-check.d.ts.map +1 -1
- package/dist/features/node-runner/application/run-feature-module-check.js +58 -24
- package/dist/features/node-runner/application/run-feature-module-check.js.map +1 -1
- package/dist/features/node-runner/composition/check-feature-module-on-disk.d.ts +1 -1
- package/dist/features/node-runner/composition/check-feature-module-on-disk.d.ts.map +1 -1
- package/dist/features/node-runner/composition/check-feature-module-on-disk.js +12 -5
- package/dist/features/node-runner/composition/check-feature-module-on-disk.js.map +1 -1
- package/dist/fixtures.d.ts +4 -4
- package/dist/fixtures.d.ts.map +1 -1
- package/dist/fixtures.js +3 -3
- package/dist/fixtures.js.map +1 -1
- package/dist/index.d.ts +12 -12
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +7 -7
- package/dist/index.js.map +1 -1
- package/dist/node.d.ts +3 -3
- package/dist/node.d.ts.map +1 -1
- package/dist/node.js +2 -2
- package/dist/node.js.map +1 -1
- package/package.json +6 -6
|
@@ -1,237 +1,124 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
|
|
4
|
-
export { ERROR_CODES, WARNING_CODES };
|
|
5
|
-
const warnings = new Set(WARNING_CODES);
|
|
6
|
-
const define = (id, source, description, expect, change = {}) => {
|
|
7
|
-
const base = exampleModule();
|
|
8
|
-
const input = {
|
|
9
|
-
...base, ...change.input,
|
|
10
|
-
files: [...base.files, ...(change.files ?? [])],
|
|
11
|
-
imports: [...base.imports.filter((record) => !(change.drop?.(record) ?? false)), ...(change.imports ?? [])],
|
|
12
|
-
};
|
|
13
|
-
return { id, source, description, input, expect, ok: expect.every((code) => warnings.has(code)) };
|
|
14
|
-
};
|
|
15
|
-
const f = fileOf;
|
|
16
|
-
const ex = 'Sub-features: Examples';
|
|
17
|
-
const type = 'type-only';
|
|
18
|
-
const orders = `${FEATURES_ROOT}/orders`;
|
|
19
|
-
const odCoupons = 'orders/discounts/coupons';
|
|
20
|
-
const billingApi = `${FEATURES_ROOT}/billing/application/internal-api.ts`;
|
|
21
|
-
const testRoot = `${TEST_FEATURES_ROOT}/orders`;
|
|
22
|
-
const discountsTest = `${testRoot}/features/discounts/discount.test.ts`;
|
|
23
|
-
const billingKit = `${FEATURES_ROOT}/billing/application/kit.ts`;
|
|
24
|
-
// A repository whose layout is not the default declares its roots and role mapping itself.
|
|
25
|
-
const reports = 'src/capabilities/reports';
|
|
26
|
-
const billing2 = 'src/features/billing';
|
|
27
|
-
const reportsApi = `${reports}/api.ts`;
|
|
28
|
-
const reportsAdapter = `${reports}/adapters/store.ts`;
|
|
29
|
-
const billingApi2 = `${billing2}/api.ts`;
|
|
30
|
-
const files = [reportsApi, `${reports}/module.ts`, reportsAdapter, billingApi2, `${billing2}/contracts.ts`];
|
|
31
|
-
const v1Files = [`${FEATURES_ROOT}/legacy/domain/model.ts`, `${FEATURES_ROOT}/legacy/features/helper.ts`];
|
|
32
|
-
const profileCase = (id, expect, imports, description) => ({
|
|
33
|
-
id, source: 'Abstract repository layout', description, expect, ok: expect.length === 0,
|
|
34
|
-
input: {
|
|
35
|
-
files, imports, featureRoots: [reports, billing2],
|
|
36
|
-
roleRoots: [
|
|
37
|
-
{ root: reportsApi, role: 'application' }, { root: `${reports}/module.ts`, role: 'composition' },
|
|
38
|
-
{ root: `${reports}/adapters`, role: 'adapters' }, { root: billingApi2, role: 'application' },
|
|
39
|
-
{ root: `${billing2}/contracts.ts`, role: 'contracts' },
|
|
40
|
-
],
|
|
41
|
-
surfaces: { public: [reportsApi, billingApi2] },
|
|
42
|
-
},
|
|
43
|
-
});
|
|
44
|
-
const withApi = { files: [billingApi], input: { surfaces: { ...exampleModule().surfaces, internalApi: [billingApi] } } };
|
|
1
|
+
import { define, f, ex, type, orders, odCoupons, MODULE_COMPOSITION, TEST_FEATURES_ROOT, exampleRoots, importOf, } from "./conformance-case-inputs.js";
|
|
2
|
+
import { laterConformanceCases } from "./conformance-cases-later.js";
|
|
3
|
+
export { ERROR_CODES, WARNING_CODES } from "./conformance-case-inputs.js";
|
|
45
4
|
export const conformanceCases = [
|
|
46
|
-
define(
|
|
47
|
-
define(
|
|
48
|
-
|
|
49
|
-
define('parent-and-sub-feature-use-each-other', ex, 'The upward edge is outside the cycle graph.', [], {
|
|
50
|
-
imports: [importOf(f('orders', 'composition'), f('orders/discounts', 'public')), importOf(f('orders/discounts', 'composition'), f('orders', 'public'))],
|
|
51
|
-
}),
|
|
52
|
-
define('grandchild-not-visible-to-ancestor', ex, 'A feature cannot use a sub-feature of its sub-feature.', ['not-visible'], { imports: [importOf(f('orders', 'composition'), f(odCoupons, 'public'))] }),
|
|
53
|
-
define('lateral-use-between-siblings', ex, 'Siblings use each other through public entrypoints.', [], { imports: [importOf(f('orders/pricing', 'composition'), f('orders/discounts', 'public'))] }),
|
|
54
|
-
define('lateral-cycle', ex, 'Siblings that use each other form a cycle.', ['feature-cycle'], {
|
|
55
|
-
imports: [importOf(f('orders/pricing', 'composition'), f('orders/discounts', 'public')), importOf(f('orders/discounts', 'composition'), f('orders/pricing', 'public'))],
|
|
56
|
-
}),
|
|
57
|
-
define('deep-import', ex, 'A sibling cannot import the domain of another feature.', ['deep-import'], { imports: [importOf(f('orders/pricing', 'composition'), f('orders/discounts', 'domain'))] }),
|
|
58
|
-
define('descendant-uses-top-level-feature', ex, 'A deep feature uses a top-level feature.', [], { imports: [importOf(f(odCoupons, 'composition'), f('billing', 'public'))] }),
|
|
59
|
-
define('sub-feature-not-visible-outside-its-parent', ex, 'A top-level feature cannot use a sub-feature of another.', ['not-visible'], { imports: [importOf(f('billing', 'composition'), f('orders/pricing', 'public'))] }),
|
|
60
|
-
define('declared-republication', ex, 'A parent republishes the public entrypoint of its direct sub-feature as declared.', [], {
|
|
61
|
-
imports: [importOf(f('billing', 'composition'), f('orders', 'public')), importOf(f('orders', 'public'), f('orders/pricing', 'public'), 'runtime', true)],
|
|
62
|
-
input: { republications: [{ from: 'orders', to: 'orders/pricing', surface: 'public' }] },
|
|
63
|
-
}),
|
|
64
|
-
define('republication-skips-a-level', ex, 'A feature cannot republish from a grandchild.', ['republication-skips-level'], {
|
|
65
|
-
imports: [importOf(f('orders', 'public'), f(odCoupons, 'public'), 'runtime', true)],
|
|
66
|
-
input: { republications: [{ from: 'orders', to: 'orders/pricing', surface: 'public' }] },
|
|
67
|
-
}),
|
|
68
|
-
define('undeclared-republication', ex, 'A republication without a declaration is rejected.', ['republication-undeclared'], { imports: [importOf(f('orders', 'public'), f('orders/pricing', 'public'), 'runtime', true)] }),
|
|
69
|
-
define('republication-declared-from-a-grandchild', ex, 'A declaration must name a direct sub-feature.', ['republication-invalid'], { input: { republications: [{ from: 'orders', to: odCoupons, surface: 'public' }] } }),
|
|
70
|
-
define('load-time-cycle-through-republication', ex, 'Public contracts and the parent that republishes them import each other at load time.', ['load-cycle'], {
|
|
71
|
-
imports: [importOf(f('orders/discounts', 'public'), f('orders', 'public')), importOf(f('orders', 'public'), f('orders/discounts', 'public'), 'runtime', true)],
|
|
72
|
-
input: { republications: [{ from: 'orders', to: 'orders/discounts', surface: 'public' }] },
|
|
73
|
-
}),
|
|
74
|
-
define('type-only-upward-import-is-no-load-cycle', ex, 'The same shape with a type-only upward import conforms.', [], {
|
|
75
|
-
imports: [importOf(f('orders/discounts', 'public'), f('orders', 'public'), type), importOf(f('orders', 'public'), f('orders/discounts', 'public'), 'runtime', true)],
|
|
76
|
-
input: { republications: [{ from: 'orders', to: 'orders/discounts', surface: 'public' }] },
|
|
77
|
-
}),
|
|
78
|
-
define('module-composition-cannot-wire-a-sub-feature', ex, 'Only the parent wires a sub-feature.', ['assembly-misplaced'], { imports: [importOf(MODULE_COMPOSITION, f('orders/discounts', 'group'))] }),
|
|
79
|
-
define('grandparent-cannot-wire-a-grandchild', ex, 'Only the direct parent wires a sub-feature.', ['assembly-misplaced'], { imports: [importOf(f('orders', 'composition'), f(odCoupons, 'group'))] }),
|
|
80
|
-
define('parent-must-wire-its-sub-feature', ex, 'A sub-feature that exposes a composition surface is wired by its parent.', ['assembly-missing'], {
|
|
81
|
-
drop: (record) => record.from === f('orders/discounts', 'composition') && record.to === f(odCoupons, 'group'),
|
|
82
|
-
}),
|
|
83
|
-
define('sibling-of-ancestor', ex, 'A deep feature uses a sibling of its ancestor.', [], { imports: [importOf(f(odCoupons, 'composition'), f('orders/pricing', 'public'))] }),
|
|
84
|
-
define('sub-feature-hidden-from-sibling-subtree', ex, 'A sibling cannot use a sub-feature of another sibling.', ['not-visible'], { imports: [importOf(f('orders/pricing', 'composition'), f(odCoupons, 'public'))] }),
|
|
85
|
-
define('cycle-closed-by-an-upward-edge', ex, 'The only cycle closes through the upward edge.', [], {
|
|
86
|
-
imports: [importOf(f('orders/pricing', 'composition'), f('orders/discounts', 'public')), importOf(f('orders/discounts', 'composition'), f('orders', 'public')), importOf(f('orders', 'composition'), f('orders/pricing', 'public'))],
|
|
87
|
-
}),
|
|
88
|
-
define('lateral-and-downward-cycle', ex, 'A cycle of lateral and downward use edges is rejected.', ['feature-cycle'], {
|
|
89
|
-
imports: [importOf(f('orders/discounts', 'composition'), f('billing', 'public')), importOf(f('billing', 'composition'), f('orders', 'public')), importOf(f('orders', 'composition'), f('orders/discounts', 'public'))],
|
|
90
|
-
}),
|
|
91
|
-
define('type-only-cycle-counts', ex, 'Type-only references count in the feature dependency graph.', ['feature-cycle'], {
|
|
92
|
-
imports: [importOf(f('orders/pricing', 'composition'), f('orders/discounts', 'public'), type), importOf(f('orders/discounts', 'composition'), f('orders/pricing', 'public'), type)],
|
|
93
|
-
}),
|
|
94
|
-
define('same-name-under-different-parents', ex, 'Names are unique only among the sub-features of one parent.', []),
|
|
95
|
-
define('misplaced-sub-feature-test', 'Test ownership', 'Tests of a sub-feature do not live in its parent test root.', ['test-misplaced'], { input: { testFiles: [`${TEST_FEATURES_ROOT}/orders/discounts/discount.test.ts`] } }),
|
|
96
|
-
define('mirrored-sub-feature-test', 'Test ownership', 'Tests of a sub-feature live in its own mirrored test root.', [], { input: { testFiles: [`${TEST_FEATURES_ROOT}/orders/features/discounts/discount.test.ts`] } }),
|
|
97
|
-
define('test-of-no-feature', 'Test ownership', 'A test outside every feature test root is unowned.', ['test-unowned'], { input: { testFiles: [`${TEST_FEATURES_ROOT}/ghost/ghost.test.ts`] } }),
|
|
98
|
-
define('file-in-the-container', ex, 'A source file directly in a features container is rejected.', ['container-file'], { files: [`${orders}/features/helper.ts`] }),
|
|
99
|
-
define('empty-container', ex, 'An empty container is rejected.', ['container-empty'], { input: { emptyDirectories: [`${orders}/features/pricing/features`] } }),
|
|
100
|
-
define('unmapped-entry', ex, 'A direct entry that is no role directory, container or mapped file is rejected.', ['entry-unmapped'], { files: [`${orders}/helpers/clock.ts`] }),
|
|
101
|
-
define('mapped-file-is-allowed', ex, 'A file the profile maps directly below a feature root is allowed.', [], { files: [`${orders}/README.md`], input: { mappedFiles: ['README.md'] } }),
|
|
102
|
-
define('sub-feature-root-off-the-container', ex, 'A declared sub-feature root must sit in its parent container.', ['feature-root-placement'], {
|
|
103
|
-
input: { featureRoots: [...exampleRoots, `${orders}/extra/sub`] },
|
|
104
|
-
}),
|
|
105
|
-
define('duplicate-feature-root', ex, 'A feature root declared twice is rejected.', ['feature-duplicate'], { input: { featureRoots: [...exampleRoots, orders] } }),
|
|
106
|
-
define('undeclared-feature-directory', ex, 'A directory of the container that no profile declares is rejected.', ['feature-undeclared'], {
|
|
107
|
-
files: [`${orders}/features/ghost/domain/x.ts`], input: { featureRoots: exampleRoots },
|
|
108
|
-
}),
|
|
109
|
-
define('composition-uses-a-visible-composition-contract', ex, 'Feature composition uses the composition contract of a visible feature.', [], { imports: [importOf(f('billing', 'composition'), f('orders', 'contract'))] }),
|
|
110
|
-
define('application-cannot-use-a-composition-contract', ex, 'Only composition code depends on a composition contract.', ['composition-contract-layer'], { imports: [importOf(f('billing', 'application'), f('orders', 'contract'))] }),
|
|
111
|
-
define('domain-cannot-use-its-own-composition-contract', 'Composition contracts', 'No inner code depends on a composition contract, its own feature included.', ['composition-contract-layer'], { imports: [importOf(f('orders', 'domain'), f('orders', 'contract'))] }),
|
|
112
|
-
define('sub-feature-composition-uses-parent-contract', ex, 'A sub-feature composition uses the composition contract of its parent.', [], { imports: [importOf(f('orders/discounts', 'composition'), f('orders', 'contract'))] }),
|
|
113
|
-
define('module-composition-cannot-use-a-hidden-composition-contract', ex, 'Module composition reaches a sub-feature only through what its parent republishes.', ['not-visible'], { imports: [importOf(MODULE_COMPOSITION, f('orders/discounts', 'contract'))] }),
|
|
114
|
-
define('composition-contract-of-an-invisible-feature', 'Composition contracts', 'A composition contract of a feature that is not visible is rejected.', ['not-visible'], { imports: [importOf(f('orders/pricing', 'composition'), f(odCoupons, 'contract'))] }),
|
|
115
|
-
define('declared-composition-contract-republication', ex, 'A parent republishes the composition contract of its direct sub-feature as declared.', [], {
|
|
116
|
-
imports: [importOf(f('orders', 'contract'), f('orders/discounts', 'contract'), 'runtime', true)],
|
|
117
|
-
input: { republications: [{ from: 'orders', to: 'orders/discounts', surface: 'composition-contract' }] },
|
|
118
|
-
}),
|
|
119
|
-
define('domain-cannot-import-contracts', 'Aggregate and internal-feature ownership', 'Domain code never imports contracts, its own included.', ['layer-direction'], { imports: [importOf(f('orders', 'domain'), f('orders', 'public'))] }),
|
|
120
|
-
define('application-uses-an-internal-api', 'Aggregate and internal-feature ownership', 'Application code uses the curated internal API of another feature.', [], { ...withApi, imports: [importOf(f('orders', 'application'), billingApi)] }),
|
|
121
|
-
define('domain-cannot-use-an-application-internal-api', 'Aggregate and internal-feature ownership', 'Domain code uses only the domain internal API of another feature.', ['layer-direction'], { ...withApi, imports: [importOf(f('orders', 'domain'), billingApi)] }),
|
|
122
|
-
define('adapters-reach-siblings-through-the-core', 'Aggregate and internal-feature ownership', 'An adapter does not import another feature directly.', ['layer-direction'], {
|
|
123
|
-
files: [`${FEATURES_ROOT}/billing/adapters/gateway.ts`], imports: [importOf(`${FEATURES_ROOT}/billing/adapters/gateway.ts`, f('orders', 'public'))],
|
|
124
|
-
}),
|
|
125
|
-
define('undeclared-use-edge', 'Sub-features: Edges', 'With a declared feature graph, an undeclared use edge is rejected.', ['use-undeclared'], {
|
|
126
|
-
imports: [importOf(f('orders', 'composition'), f('orders/discounts', 'public'))], input: { useEdges: [] },
|
|
127
|
-
}),
|
|
128
|
-
define('declared-use-edge', 'Sub-features: Edges', 'A declared use edge is accepted.', [], {
|
|
129
|
-
imports: [importOf(f('orders', 'composition'), f('orders/discounts', 'public'))], input: { useEdges: [{ from: 'orders', to: 'orders/discounts' }] },
|
|
130
|
-
}),
|
|
131
|
-
define('declared-graph-cycle', 'Sub-features: Dependency graph and cycles', 'A cycle in the declared graph is rejected before any import exists.', ['feature-cycle'], {
|
|
132
|
-
input: { useEdges: [{ from: 'orders/pricing', to: 'orders/discounts' }, { from: 'orders/discounts', to: 'orders/pricing' }] },
|
|
133
|
-
}),
|
|
134
|
-
define('surface-without-a-feature', 'Sub-features: Visibility', 'A surface file that belongs to no feature is rejected.', ['surface-unowned'], {
|
|
135
|
-
input: { surfaces: { ...exampleModule().surfaces, public: [...(exampleModule().surfaces?.public ?? []), MODULE_COMPOSITION] } },
|
|
136
|
-
}),
|
|
137
|
-
define('depth-warning', ex, 'A feature past the declared depth is a warning, not a failure.', ['depth-warning'], { input: { depthWarning: 2 } }),
|
|
138
|
-
define('composition-contract-outside-composition', 'Composition contracts', 'A composition contract is composition code of its feature.', ['composition-contract-misplaced'], {
|
|
139
|
-
files: [`${orders}/application/wiring.ts`],
|
|
140
|
-
input: { surfaces: { ...exampleModule().surfaces, compositionContract: [...(exampleModule().surfaces?.compositionContract ?? []), `${orders}/application/wiring.ts`] } },
|
|
141
|
-
}),
|
|
142
|
-
define('republication-of-another-surface', 'Growth guardrails 13', 'A republication re-exports the same surface of its parent, not the other one.', ['republication-mismatch'], {
|
|
143
|
-
imports: [importOf(f('orders', 'public'), f('orders/pricing', 'contract'), 'runtime', true)],
|
|
144
|
-
}),
|
|
145
|
-
define('test-uses-the-internals-of-its-own-feature', 'Test ownership', 'A test of a sub-feature uses its own domain.', [], {
|
|
146
|
-
input: { testFiles: [discountsTest] }, imports: [importOf(discountsTest, f('orders/discounts', 'domain'))],
|
|
147
|
-
}),
|
|
148
|
-
define('test-of-the-parent-uses-a-sub-feature-domain', 'Test ownership', 'A test in the test root of orders may not use the internals of orders/discounts.', ['deep-import'], {
|
|
149
|
-
input: { testFiles: [`${testRoot}/orders.test.ts`] }, imports: [importOf(`${testRoot}/orders.test.ts`, f('orders/discounts', 'domain'))],
|
|
150
|
-
}),
|
|
151
|
-
define('test-uses-a-visible-sibling-entrypoint', 'Test ownership', 'A test of a sub-feature uses the public entrypoint of a visible sibling.', [], {
|
|
152
|
-
input: { testFiles: [discountsTest] }, imports: [importOf(discountsTest, f('orders/pricing', 'public'))],
|
|
153
|
-
}),
|
|
154
|
-
define('test-of-another-feature-cannot-see-a-sub-feature', 'Test ownership', 'A test of billing may not use a sub-feature of orders.', ['not-visible'], {
|
|
155
|
-
input: { testFiles: [`${TEST_FEATURES_ROOT}/billing/billing.test.ts`] },
|
|
156
|
-
imports: [importOf(`${TEST_FEATURES_ROOT}/billing/billing.test.ts`, f('orders/pricing', 'public'))],
|
|
157
|
-
}),
|
|
158
|
-
define('test-uses-a-testing-surface', 'Test ownership', 'Test code uses the testing surface of a visible feature.', [], {
|
|
159
|
-
files: [billingKit], input: { testFiles: [discountsTest], surfaces: { ...exampleModule().surfaces, testing: [billingKit] } },
|
|
160
|
-
imports: [importOf(discountsTest, billingKit)],
|
|
161
|
-
}),
|
|
162
|
-
define('cycle-through-a-deep-import', 'Sub-features: Dependency graph and cycles', 'A deep import is rejected and still closes a cycle.', ['deep-import', 'feature-cycle'], {
|
|
163
|
-
imports: [importOf(f('orders/pricing', 'composition'), f('orders/discounts', 'domain')), importOf(f('orders/discounts', 'composition'), f('orders/pricing', 'public'))],
|
|
164
|
-
}),
|
|
165
|
-
define('contracts-cannot-use-a-composition-contract', 'Composition contracts', 'Code of the contracts role never depends on a composition contract.', ['composition-contract-layer'], {
|
|
166
|
-
imports: [importOf(f('billing', 'public'), f('orders', 'contract'))],
|
|
5
|
+
define("module-conforms", ex, "The example tree, wired as the standard requires, conforms.", []),
|
|
6
|
+
define("upward-use", ex, "A sub-feature uses the public entrypoint of its parent.", [], {
|
|
7
|
+
imports: [importOf(f("orders/discounts", "composition"), f("orders", "public"))],
|
|
167
8
|
}),
|
|
168
|
-
define(
|
|
169
|
-
|
|
9
|
+
define("downward-use", ex, "A parent uses the public entrypoint of its direct sub-feature.", [], {
|
|
10
|
+
imports: [importOf(f("orders", "composition"), f("orders/discounts", "public"))],
|
|
170
11
|
}),
|
|
171
|
-
define(
|
|
172
|
-
|
|
12
|
+
define("parent-and-sub-feature-use-each-other", ex, "The upward edge is outside the cycle graph.", [], {
|
|
13
|
+
imports: [
|
|
14
|
+
importOf(f("orders", "composition"), f("orders/discounts", "public")),
|
|
15
|
+
importOf(f("orders/discounts", "composition"), f("orders", "public")),
|
|
16
|
+
],
|
|
173
17
|
}),
|
|
174
|
-
define(
|
|
175
|
-
|
|
18
|
+
define("grandchild-not-visible-to-ancestor", ex, "A feature cannot use a sub-feature of its sub-feature.", ["not-visible"], { imports: [importOf(f("orders", "composition"), f(odCoupons, "public"))] }),
|
|
19
|
+
define("lateral-use-between-siblings", ex, "Siblings use each other through public entrypoints.", [], { imports: [importOf(f("orders/pricing", "composition"), f("orders/discounts", "public"))] }),
|
|
20
|
+
define("lateral-cycle", ex, "Siblings that use each other form a cycle.", ["feature-cycle"], {
|
|
21
|
+
imports: [
|
|
22
|
+
importOf(f("orders/pricing", "composition"), f("orders/discounts", "public")),
|
|
23
|
+
importOf(f("orders/discounts", "composition"), f("orders/pricing", "public")),
|
|
24
|
+
],
|
|
176
25
|
}),
|
|
177
|
-
define(
|
|
178
|
-
|
|
26
|
+
define("deep-import", ex, "A sibling cannot import the domain of another feature.", ["deep-import"], { imports: [importOf(f("orders/pricing", "composition"), f("orders/discounts", "domain"))] }),
|
|
27
|
+
define("descendant-uses-top-level-feature", ex, "A deep feature uses a top-level feature.", [], {
|
|
28
|
+
imports: [importOf(f(odCoupons, "composition"), f("billing", "public"))],
|
|
179
29
|
}),
|
|
180
|
-
define(
|
|
181
|
-
|
|
30
|
+
define("sub-feature-not-visible-outside-its-parent", ex, "A top-level feature cannot use a sub-feature of another.", ["not-visible"], { imports: [importOf(f("billing", "composition"), f("orders/pricing", "public"))] }),
|
|
31
|
+
define("declared-republication", ex, "A parent republishes the public entrypoint of its direct sub-feature as declared.", [], {
|
|
32
|
+
imports: [
|
|
33
|
+
importOf(f("billing", "composition"), f("orders", "public")),
|
|
34
|
+
importOf(f("orders", "public"), f("orders/pricing", "public"), "runtime", true),
|
|
35
|
+
],
|
|
36
|
+
input: { republications: [{ from: "orders", to: "orders/pricing", surface: "public" }] },
|
|
182
37
|
}),
|
|
183
|
-
{
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
expect: ['composition-contract-layer', 'deep-import', 'deep-import'],
|
|
187
|
-
input: { ...exampleModule(false), imports: [...exampleModule().imports, importOf(MODULE_COMPOSITION, f('orders', 'contract'))] },
|
|
188
|
-
},
|
|
189
|
-
define('lateral-reexport-is-no-republication', 'Growth guardrails 13', 'A sibling cannot republish the contracts of another sibling.', ['republication-not-sub-feature'], {
|
|
190
|
-
imports: [importOf(f('orders/pricing', 'public'), f('orders/discounts', 'public'), 'runtime', true)],
|
|
38
|
+
define("republication-skips-a-level", ex, "A feature cannot republish from a grandchild.", ["republication-skips-level"], {
|
|
39
|
+
imports: [importOf(f("orders", "public"), f(odCoupons, "public"), "runtime", true)],
|
|
40
|
+
input: { republications: [{ from: "orders", to: "orders/pricing", surface: "public" }] },
|
|
191
41
|
}),
|
|
192
|
-
define(
|
|
193
|
-
|
|
42
|
+
define("undeclared-republication", ex, "A republication without a declaration is rejected.", ["republication-undeclared"], { imports: [importOf(f("orders", "public"), f("orders/pricing", "public"), "runtime", true)] }),
|
|
43
|
+
define("republication-declared-from-a-grandchild", ex, "A declaration must name a direct sub-feature.", ["republication-invalid"], { input: { republications: [{ from: "orders", to: odCoupons, surface: "public" }] } }),
|
|
44
|
+
define("load-time-cycle-through-republication", ex, "Public contracts and the parent that republishes them import each other at load time.", ["load-cycle"], {
|
|
45
|
+
imports: [
|
|
46
|
+
importOf(f("orders/discounts", "public"), f("orders", "public")),
|
|
47
|
+
importOf(f("orders", "public"), f("orders/discounts", "public"), "runtime", true),
|
|
48
|
+
],
|
|
49
|
+
input: { republications: [{ from: "orders", to: "orders/discounts", surface: "public" }] },
|
|
194
50
|
}),
|
|
195
|
-
define(
|
|
51
|
+
define("type-only-upward-import-is-no-load-cycle", ex, "The same shape with a type-only upward import conforms.", [], {
|
|
196
52
|
imports: [
|
|
197
|
-
importOf(f(
|
|
198
|
-
importOf(f(
|
|
199
|
-
importOf(f('billing', 'composition'), f('orders', 'public')),
|
|
53
|
+
importOf(f("orders/discounts", "public"), f("orders", "public"), type),
|
|
54
|
+
importOf(f("orders", "public"), f("orders/discounts", "public"), "runtime", true),
|
|
200
55
|
],
|
|
201
|
-
input: { republications: [{ from:
|
|
56
|
+
input: { republications: [{ from: "orders", to: "orders/discounts", surface: "public" }] },
|
|
202
57
|
}),
|
|
203
|
-
define(
|
|
204
|
-
|
|
58
|
+
define("module-composition-cannot-wire-a-sub-feature", ex, "Only the parent wires a sub-feature.", ["assembly-misplaced"], { imports: [importOf(MODULE_COMPOSITION, f("orders/discounts", "group"))] }),
|
|
59
|
+
define("grandparent-cannot-wire-a-grandchild", ex, "Only the direct parent wires a sub-feature.", ["assembly-misplaced"], { imports: [importOf(f("orders", "composition"), f(odCoupons, "group"))] }),
|
|
60
|
+
define("parent-must-wire-its-sub-feature", ex, "A sub-feature that exposes a composition surface is wired by its parent.", ["assembly-missing"], {
|
|
61
|
+
drop: (record) => record.from === f("orders/discounts", "composition") && record.to === f(odCoupons, "group"),
|
|
205
62
|
}),
|
|
206
|
-
define(
|
|
207
|
-
|
|
63
|
+
define("sibling-of-ancestor", ex, "A deep feature uses a sibling of its ancestor.", [], {
|
|
64
|
+
imports: [importOf(f(odCoupons, "composition"), f("orders/pricing", "public"))],
|
|
208
65
|
}),
|
|
209
|
-
define(
|
|
210
|
-
|
|
66
|
+
define("sub-feature-hidden-from-sibling-subtree", ex, "A sibling cannot use a sub-feature of another sibling.", ["not-visible"], { imports: [importOf(f("orders/pricing", "composition"), f(odCoupons, "public"))] }),
|
|
67
|
+
define("cycle-closed-by-an-upward-edge", ex, "The only cycle closes through the upward edge.", [], {
|
|
68
|
+
imports: [
|
|
69
|
+
importOf(f("orders/pricing", "composition"), f("orders/discounts", "public")),
|
|
70
|
+
importOf(f("orders/discounts", "composition"), f("orders", "public")),
|
|
71
|
+
importOf(f("orders", "composition"), f("orders/pricing", "public")),
|
|
72
|
+
],
|
|
211
73
|
}),
|
|
212
|
-
define(
|
|
213
|
-
|
|
74
|
+
define("lateral-and-downward-cycle", ex, "A cycle of lateral and downward use edges is rejected.", ["feature-cycle"], {
|
|
75
|
+
imports: [
|
|
76
|
+
importOf(f("orders/discounts", "composition"), f("billing", "public")),
|
|
77
|
+
importOf(f("billing", "composition"), f("orders", "public")),
|
|
78
|
+
importOf(f("orders", "composition"), f("orders/discounts", "public")),
|
|
79
|
+
],
|
|
214
80
|
}),
|
|
215
|
-
define(
|
|
216
|
-
|
|
81
|
+
define("type-only-cycle-counts", ex, "Type-only references count in the feature dependency graph.", ["feature-cycle"], {
|
|
82
|
+
imports: [
|
|
83
|
+
importOf(f("orders/pricing", "composition"), f("orders/discounts", "public"), type),
|
|
84
|
+
importOf(f("orders/discounts", "composition"), f("orders/pricing", "public"), type),
|
|
85
|
+
],
|
|
217
86
|
}),
|
|
218
|
-
define(
|
|
219
|
-
|
|
220
|
-
|
|
87
|
+
define("same-name-under-different-parents", ex, "Names are unique only among the sub-features of one parent.", []),
|
|
88
|
+
define("misplaced-sub-feature-test", "Test ownership", "Tests of a sub-feature do not live in its parent test root.", ["test-misplaced"], { input: { testFiles: [`${TEST_FEATURES_ROOT}/orders/discounts/discount.test.ts`] } }),
|
|
89
|
+
define("mirrored-sub-feature-test", "Test ownership", "Tests of a sub-feature live in its own mirrored test root.", [], { input: { testFiles: [`${TEST_FEATURES_ROOT}/orders/features/discounts/discount.test.ts`] } }),
|
|
90
|
+
define("test-of-no-feature", "Test ownership", "A test outside every feature test root is unowned.", ["test-unowned"], { input: { testFiles: [`${TEST_FEATURES_ROOT}/ghost/ghost.test.ts`] } }),
|
|
91
|
+
define("file-in-the-container", ex, "A source file directly in a features container is rejected.", ["container-file"], { files: [`${orders}/features/helper.ts`] }),
|
|
92
|
+
define("empty-container", ex, "An empty container is rejected.", ["container-empty"], {
|
|
93
|
+
input: { emptyDirectories: [`${orders}/features/pricing/features`] },
|
|
94
|
+
}),
|
|
95
|
+
define("unmapped-entry", ex, "A direct entry that is no role directory, container or mapped file is rejected.", ["entry-unmapped"], { files: [`${orders}/helpers/clock.ts`] }),
|
|
96
|
+
define("mapped-file-is-allowed", ex, "A file the profile maps directly below a feature root is allowed.", [], { files: [`${orders}/README.md`], input: { mappedFiles: ["README.md"] } }),
|
|
97
|
+
define("sub-feature-root-off-the-container", ex, "A declared sub-feature root must sit in its parent container.", ["feature-root-placement"], {
|
|
98
|
+
input: { featureRoots: [...exampleRoots, `${orders}/extra/sub`] },
|
|
221
99
|
}),
|
|
222
|
-
define(
|
|
223
|
-
{
|
|
224
|
-
|
|
225
|
-
|
|
100
|
+
define("duplicate-feature-root", ex, "A feature root declared twice is rejected.", ["feature-duplicate"], { input: { featureRoots: [...exampleRoots, orders] } }),
|
|
101
|
+
define("undeclared-feature-directory", ex, "A directory of the container that no profile declares is rejected.", ["feature-undeclared"], {
|
|
102
|
+
files: [`${orders}/features/ghost/domain/x.ts`],
|
|
103
|
+
input: { featureRoots: exampleRoots },
|
|
104
|
+
}),
|
|
105
|
+
define("composition-uses-a-visible-composition-contract", ex, "Feature composition uses the composition contract of a visible feature.", [], { imports: [importOf(f("billing", "composition"), f("orders", "contract"))] }),
|
|
106
|
+
define("application-cannot-use-a-composition-contract", ex, "Only composition code depends on a composition contract.", ["composition-contract-layer"], { imports: [importOf(f("billing", "application"), f("orders", "contract"))] }),
|
|
107
|
+
define("domain-cannot-use-its-own-composition-contract", "Composition contracts", "No inner code depends on a composition contract, its own feature included.", ["composition-contract-layer"], { imports: [importOf(f("orders", "domain"), f("orders", "contract"))] }),
|
|
108
|
+
define("sub-feature-composition-uses-parent-contract", ex, "A sub-feature composition uses the composition contract of its parent.", [], { imports: [importOf(f("orders/discounts", "composition"), f("orders", "contract"))] }),
|
|
109
|
+
define("module-composition-cannot-use-a-hidden-composition-contract", ex, "Module composition reaches a sub-feature only through what its parent republishes.", ["not-visible"], { imports: [importOf(MODULE_COMPOSITION, f("orders/discounts", "contract"))] }),
|
|
110
|
+
define("composition-contract-of-an-invisible-feature", "Composition contracts", "A composition contract of a feature that is not visible is rejected.", ["not-visible"], { imports: [importOf(f("orders/pricing", "composition"), f(odCoupons, "contract"))] }),
|
|
111
|
+
define("declared-composition-contract-republication", ex, "A parent republishes the composition contract of its direct sub-feature as declared.", [], {
|
|
112
|
+
imports: [
|
|
113
|
+
importOf(f("orders", "contract"), f("orders/discounts", "contract"), "runtime", true),
|
|
114
|
+
],
|
|
226
115
|
input: {
|
|
227
|
-
|
|
228
|
-
|
|
116
|
+
republications: [
|
|
117
|
+
{ from: "orders", to: "orders/discounts", surface: "composition-contract" },
|
|
118
|
+
],
|
|
229
119
|
},
|
|
230
|
-
},
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
profileCase('profile-mapped-adapter-direction', ['layer-direction'], [importOf(reportsAdapter, billingApi2)], 'An adapter in a feature directory still reaches siblings only through its application core.'),
|
|
234
|
-
profileCase('profile-mapped-deep-import', ['deep-import', 'layer-direction'], [importOf(billingApi2, reportsAdapter)], 'A file mapped to a role is not a public entrypoint unless the profile says so.'),
|
|
235
|
-
profileCase('profile-mapped-cycle', ['feature-cycle', 'load-cycle'], [importOf(billingApi2, reportsApi), importOf(reportsApi, billingApi2)], 'Features under different roots form a cycle like any others.'),
|
|
120
|
+
}),
|
|
121
|
+
define("domain-cannot-import-contracts", "Aggregate and internal-feature ownership", "Domain code never imports contracts, its own included.", ["layer-direction"], { imports: [importOf(f("orders", "domain"), f("orders", "public"))] }),
|
|
122
|
+
...laterConformanceCases,
|
|
236
123
|
];
|
|
237
124
|
//# sourceMappingURL=conformance-cases.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"conformance-cases.js","sourceRoot":"","sources":["../../../../src/features/conformance-fixtures/testing/conformance-cases.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"conformance-cases.js","sourceRoot":"","sources":["../../../../src/features/conformance-fixtures/testing/conformance-cases.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"example-sources.d.ts","sourceRoot":"","sources":["../../../../src/features/conformance-fixtures/testing/example-sources.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"example-sources.d.ts","sourceRoot":"","sources":["../../../../src/features/conformance-fixtures/testing/example-sources.ts"],"names":[],"mappings":"AAyBA;;;;GAIG;AACH,wBAAgB,cAAc,IAAI,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAYjE"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { exampleModule } from
|
|
2
|
-
const segments = (path) => path.split(
|
|
1
|
+
import { exampleModule } from "./example-tree.js";
|
|
2
|
+
const segments = (path) => path.split("/");
|
|
3
3
|
// Relative specifier from one repository file to another, with the extension kept.
|
|
4
4
|
function specifier(from, to) {
|
|
5
5
|
const base = segments(from).slice(0, -1);
|
|
@@ -8,15 +8,15 @@ function specifier(from, to) {
|
|
|
8
8
|
while (shared < base.length && shared < target.length - 1 && base[shared] === target[shared]) {
|
|
9
9
|
shared += 1;
|
|
10
10
|
}
|
|
11
|
-
const up = base.slice(shared).map(() =>
|
|
12
|
-
return [...(up.length === 0 ? [
|
|
11
|
+
const up = base.slice(shared).map(() => "..");
|
|
12
|
+
return [...(up.length === 0 ? ["."] : up), ...target.slice(shared)].join("/");
|
|
13
13
|
}
|
|
14
14
|
const statement = (record) => {
|
|
15
15
|
const to = `'${specifier(record.from, record.to)}'`;
|
|
16
16
|
if (record.reexport === true) {
|
|
17
17
|
return `export * from ${to};`;
|
|
18
18
|
}
|
|
19
|
-
return record.mode ===
|
|
19
|
+
return record.mode === "type-only" ? `import type {} from ${to};` : `import ${to};`;
|
|
20
20
|
};
|
|
21
21
|
/**
|
|
22
22
|
* The example tree as real source files, path to text: `import '...'`, `export * from '...'` and `import type {} from '...'`
|
|
@@ -25,9 +25,13 @@ const statement = (record) => {
|
|
|
25
25
|
*/
|
|
26
26
|
export function exampleSources() {
|
|
27
27
|
const { files, imports } = exampleModule();
|
|
28
|
-
return Object.fromEntries(files.map((file) => [
|
|
28
|
+
return Object.fromEntries(files.map((file) => [
|
|
29
|
+
file,
|
|
30
|
+
[
|
|
29
31
|
...imports.filter((record) => record.from === file).map(statement),
|
|
30
|
-
`export const origin = '${file}';`,
|
|
31
|
-
|
|
32
|
+
`export const origin = '${file}';`,
|
|
33
|
+
"",
|
|
34
|
+
].join("\n"),
|
|
35
|
+
]));
|
|
32
36
|
}
|
|
33
37
|
//# sourceMappingURL=example-sources.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"example-sources.js","sourceRoot":"","sources":["../../../../src/features/conformance-fixtures/testing/example-sources.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAElD,MAAM,QAAQ,GAAG,CAAC,IAAY,EAAY,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AAE7D,mFAAmF;AACnF,SAAS,SAAS,CAAC,IAAY,EAAE,EAAU;IACzC,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACzC,MAAM,MAAM,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;IAC5B,IAAI,MAAM,GAAG,CAAC,CAAC;IACf,OAAO,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,MAAM,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"example-sources.js","sourceRoot":"","sources":["../../../../src/features/conformance-fixtures/testing/example-sources.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAElD,MAAM,QAAQ,GAAG,CAAC,IAAY,EAAY,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AAE7D,mFAAmF;AACnF,SAAS,SAAS,CAAC,IAAY,EAAE,EAAU;IACzC,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACzC,MAAM,MAAM,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;IAC5B,IAAI,MAAM,GAAG,CAAC,CAAC;IACf,OAAO,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,MAAM,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;QAC7F,MAAM,IAAI,CAAC,CAAC;IACd,CAAC;IACD,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;IAC9C,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAChF,CAAC;AAED,MAAM,SAAS,GAAG,CAAC,MAAoB,EAAU,EAAE;IACjD,MAAM,EAAE,GAAG,IAAI,SAAS,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC;IACpD,IAAI,MAAM,CAAC,QAAQ,KAAK,IAAI,EAAE,CAAC;QAC7B,OAAO,iBAAiB,EAAE,GAAG,CAAC;IAChC,CAAC;IACD,OAAO,MAAM,CAAC,IAAI,KAAK,WAAW,CAAC,CAAC,CAAC,uBAAuB,EAAE,GAAG,CAAC,CAAC,CAAC,UAAU,EAAE,GAAG,CAAC;AACtF,CAAC,CAAC;AAEF;;;;GAIG;AACH,MAAM,UAAU,cAAc;IAC5B,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,aAAa,EAAE,CAAC;IAC3C,OAAO,MAAM,CAAC,WAAW,CACvB,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC;QAClB,IAAI;QACJ;YACE,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC;YAClE,0BAA0B,IAAI,IAAI;YAClC,EAAE;SACH,CAAC,IAAI,CAAC,IAAI,CAAC;KACb,CAAC,CACH,CAAC;AACJ,CAAC"}
|
|
@@ -1,19 +1,19 @@
|
|
|
1
|
-
import type { FeatureModuleInput, ImportMode, ImportRecord, LayerRole } from
|
|
1
|
+
import type { FeatureModuleInput, ImportMode, ImportRecord, LayerRole } from "../../feature-model/domain/model.js";
|
|
2
2
|
/** The informative example tree of Feature Module Standard v1.1, section "Sub-features", as one valid module. */
|
|
3
3
|
export declare const FEATURES_ROOT = "src/features";
|
|
4
4
|
export declare const TEST_FEATURES_ROOT = "tests/features";
|
|
5
5
|
declare const roots: {
|
|
6
|
-
readonly orders:
|
|
7
|
-
readonly
|
|
8
|
-
readonly
|
|
9
|
-
readonly
|
|
10
|
-
readonly billing:
|
|
11
|
-
readonly
|
|
6
|
+
readonly orders: "orders";
|
|
7
|
+
readonly "orders/pricing": "orders/features/pricing";
|
|
8
|
+
readonly "orders/discounts": "orders/features/discounts";
|
|
9
|
+
readonly "orders/discounts/coupons": "orders/features/discounts/features/coupons";
|
|
10
|
+
readonly billing: "billing";
|
|
11
|
+
readonly "billing/coupons": "billing/features/coupons";
|
|
12
12
|
};
|
|
13
13
|
export type ExampleFeature = keyof typeof roots;
|
|
14
14
|
/** The roots of the example features, for cases that declare them. */
|
|
15
15
|
export declare const exampleRoots: readonly string[];
|
|
16
|
-
declare const parts: readonly [
|
|
16
|
+
declare const parts: readonly ["public", "domain", "application", "composition", "contract", "group"];
|
|
17
17
|
type Part = (typeof parts)[number];
|
|
18
18
|
/** The file of one part of an example feature: its public entrypoint, composition code, composition contract and so on. */
|
|
19
19
|
export declare const fileOf: (feature: ExampleFeature, part: Part) => string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"example-tree.d.ts","sourceRoot":"","sources":["../../../../src/features/conformance-fixtures/testing/example-tree.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"example-tree.d.ts","sourceRoot":"","sources":["../../../../src/features/conformance-fixtures/testing/example-tree.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,kBAAkB,EAClB,UAAU,EACV,YAAY,EACZ,SAAS,EACV,MAAM,qCAAqC,CAAC;AAE7C,iHAAiH;AACjH,eAAO,MAAM,aAAa,iBAAiB,CAAC;AAC5C,eAAO,MAAM,kBAAkB,mBAAmB,CAAC;AAGnD,QAAA,MAAM,KAAK;aACT,MAAM,EAAE,QAAQ;aAChB,gBAAgB,EAAE,yBAAyB;aAC3C,kBAAkB,EAAE,2BAA2B;aAC/C,0BAA0B,EAAE,4CAA4C;aACxE,OAAO,EAAE,SAAS;aAClB,iBAAiB,EAAE,0BAA0B;CACrC,CAAC;AACX,MAAM,MAAM,cAAc,GAAG,MAAM,OAAO,KAAK,CAAC;AAChD,sEAAsE;AACtE,eAAO,MAAM,YAAY,EAAE,SAAS,MAAM,EAEzC,CAAC;AAEF,QAAA,MAAM,KAAK,YAAI,QAAQ,EAAE,QAAQ,EAAE,aAAa,EAAE,aAAa,EAAE,UAAU,EAAE,OAAO,CAAU,CAAC;AAC/F,KAAK,IAAI,GAAG,CAAC,OAAO,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC;AAUnC,2HAA2H;AAC3H,eAAO,MAAM,MAAM,YAAa,cAAc,QAAQ,IAAI,KAAG,MACJ,CAAC;AAE1D,eAAO,MAAM,kBAAkB,kBAAkB,CAAC;AAClD,eAAO,MAAM,eAAe,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAM/D,CAAC;AAEF,eAAO,MAAM,QAAQ,SACb,MAAM,MACR,MAAM,SACJ,UAAU,yBAEf,YAAgF,CAAC;AAMpF,6HAA6H;AAC7H,wBAAgB,aAAa,CAAC,sBAAsB,UAAO,GAAG,kBAAkB,CA+B/E"}
|