@millstone/synapse-cli 0.4.0 → 0.5.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/dist/commands/format.js +2 -2
- package/dist/commands/format.js.map +1 -1
- package/dist/commands/generate-pdf.js +2 -2
- package/dist/commands/generate-pdf.js.map +1 -1
- package/dist/commands/migrate.js +3 -3
- package/dist/commands/migrate.js.map +1 -1
- package/dist/commands/scaffold.d.ts +1 -2
- package/dist/commands/scaffold.d.ts.map +1 -1
- package/dist/commands/scaffold.js +8 -8
- package/dist/commands/scaffold.js.map +1 -1
- package/dist/commands/validate.d.ts.map +1 -1
- package/dist/commands/validate.js +11 -6
- package/dist/commands/validate.js.map +1 -1
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/dist/lib/bodyRules.d.ts +2 -3
- package/dist/lib/bodyRules.d.ts.map +1 -1
- package/dist/lib/bodyRules.js.map +1 -1
- package/dist/lib/config.d.ts +3 -4
- package/dist/lib/config.d.ts.map +1 -1
- package/dist/lib/config.js +8 -4
- package/dist/lib/config.js.map +1 -1
- package/dist/lib/homepage.js +2 -2
- package/dist/lib/homepage.js.map +1 -1
- package/dist/lib/naming.d.ts +3 -4
- package/dist/lib/naming.d.ts.map +1 -1
- package/dist/lib/naming.js +9 -6
- package/dist/lib/naming.js.map +1 -1
- package/dist/lib/schemas.d.ts +3 -5
- package/dist/lib/schemas.d.ts.map +1 -1
- package/dist/lib/schemas.js +5 -4
- package/dist/lib/schemas.js.map +1 -1
- package/dist/lib/templateLint.d.ts.map +1 -1
- package/dist/lib/templateLint.js +4 -17
- package/dist/lib/templateLint.js.map +1 -1
- package/dist/lib/type-registry.d.ts +39 -0
- package/dist/lib/type-registry.d.ts.map +1 -0
- package/dist/lib/type-registry.js +163 -0
- package/dist/lib/type-registry.js.map +1 -0
- package/package.json +5 -6
- package/dist/lib/types.generated.d.ts +0 -54
- package/dist/lib/types.generated.d.ts.map +0 -1
- package/dist/lib/types.generated.js +0 -144
- package/dist/lib/types.generated.js.map +0 -1
|
@@ -0,0 +1,163 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Dynamic type registry - discovers document types at runtime from schema files.
|
|
3
|
+
* Replaces the static types.generated.ts with runtime schema discovery.
|
|
4
|
+
*/
|
|
5
|
+
import fsExtra from 'fs-extra';
|
|
6
|
+
import * as path from 'path';
|
|
7
|
+
import { createRequire } from 'module';
|
|
8
|
+
const fs = fsExtra;
|
|
9
|
+
// Cache for discovered types
|
|
10
|
+
let _typeRegistry = null;
|
|
11
|
+
/**
|
|
12
|
+
* Resolve the frontmatter schema directory using a cascade:
|
|
13
|
+
* 1. Local project: {cwd}/schemas/frontmatter/
|
|
14
|
+
* 2. @millstone/synapse-schemas npm package
|
|
15
|
+
* 3. Error with helpful message
|
|
16
|
+
*/
|
|
17
|
+
function getSchemaDir() {
|
|
18
|
+
// Priority 1: Local project override
|
|
19
|
+
const localPaths = [
|
|
20
|
+
path.resolve(process.cwd(), 'schemas/frontmatter'),
|
|
21
|
+
path.resolve(process.cwd(), '../schemas/frontmatter'),
|
|
22
|
+
path.resolve(process.cwd(), '../../schemas/frontmatter'),
|
|
23
|
+
];
|
|
24
|
+
for (const schemaPath of localPaths) {
|
|
25
|
+
if (fs.existsSync(schemaPath)) {
|
|
26
|
+
try {
|
|
27
|
+
const files = fs.readdirSync(schemaPath);
|
|
28
|
+
const hasSchemas = files.some((f) => f.endsWith('.schema.json'));
|
|
29
|
+
if (hasSchemas) {
|
|
30
|
+
return schemaPath;
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
catch {
|
|
34
|
+
continue;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
// Priority 2: @millstone/synapse-schemas package
|
|
39
|
+
try {
|
|
40
|
+
const require = createRequire(import.meta.url);
|
|
41
|
+
const pkgPath = require.resolve('@millstone/synapse-schemas/package.json');
|
|
42
|
+
const pkgDir = path.dirname(pkgPath);
|
|
43
|
+
const frontmatterDir = path.join(pkgDir, 'frontmatter');
|
|
44
|
+
if (fs.existsSync(frontmatterDir)) {
|
|
45
|
+
return frontmatterDir;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
catch {
|
|
49
|
+
// Package not installed
|
|
50
|
+
}
|
|
51
|
+
// Priority 3: Error with helpful message
|
|
52
|
+
throw new Error('Could not find frontmatter schemas. Either place schemas in {projectRoot}/schemas/frontmatter/ ' +
|
|
53
|
+
'or install the @millstone/synapse-schemas package: npm install @millstone/synapse-schemas');
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Discover all document types by scanning schema files.
|
|
57
|
+
* Reads x-synapse metadata from each schema for folder/displayLabel/cmsCollection.
|
|
58
|
+
*/
|
|
59
|
+
function discoverTypes() {
|
|
60
|
+
const schemaDir = getSchemaDir();
|
|
61
|
+
const files = fs.readdirSync(schemaDir);
|
|
62
|
+
const registry = {};
|
|
63
|
+
for (const file of files) {
|
|
64
|
+
if (!file.endsWith('.schema.json') || file === 'base.schema.json')
|
|
65
|
+
continue;
|
|
66
|
+
const schemaPath = path.join(schemaDir, file);
|
|
67
|
+
try {
|
|
68
|
+
const content = fs.readFileSync(schemaPath, 'utf-8');
|
|
69
|
+
const schema = JSON.parse(content);
|
|
70
|
+
// Extract type from properties.type.const
|
|
71
|
+
const type = schema.properties?.type?.const;
|
|
72
|
+
if (!type) {
|
|
73
|
+
// Also check inside allOf for the const
|
|
74
|
+
const allOfType = schema.allOf?.find((item) => item.properties?.type?.const);
|
|
75
|
+
if (!allOfType)
|
|
76
|
+
continue;
|
|
77
|
+
// Skip - schema doesn't define a type const
|
|
78
|
+
continue;
|
|
79
|
+
}
|
|
80
|
+
// Extract x-synapse metadata
|
|
81
|
+
const xSynapse = schema['x-synapse'];
|
|
82
|
+
if (xSynapse) {
|
|
83
|
+
registry[type] = {
|
|
84
|
+
folder: xSynapse.folder,
|
|
85
|
+
displayLabel: xSynapse.displayLabel,
|
|
86
|
+
cmsCollection: xSynapse.cmsCollection,
|
|
87
|
+
};
|
|
88
|
+
}
|
|
89
|
+
else {
|
|
90
|
+
// Derive defaults if no x-synapse metadata
|
|
91
|
+
registry[type] = {
|
|
92
|
+
folder: type,
|
|
93
|
+
displayLabel: type.charAt(0).toUpperCase() + type.slice(1),
|
|
94
|
+
cmsCollection: type + 's',
|
|
95
|
+
};
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
catch {
|
|
99
|
+
// Skip files that can't be parsed
|
|
100
|
+
continue;
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
return registry;
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* Get the full type registry. Cached after first call.
|
|
107
|
+
*/
|
|
108
|
+
export function getTypeRegistry() {
|
|
109
|
+
if (!_typeRegistry) {
|
|
110
|
+
_typeRegistry = discoverTypes();
|
|
111
|
+
}
|
|
112
|
+
return _typeRegistry;
|
|
113
|
+
}
|
|
114
|
+
/**
|
|
115
|
+
* Get all known document types as a sorted array.
|
|
116
|
+
*/
|
|
117
|
+
export function getDocTypes() {
|
|
118
|
+
return Object.keys(getTypeRegistry()).sort();
|
|
119
|
+
}
|
|
120
|
+
/**
|
|
121
|
+
* Check if a value is a known document type.
|
|
122
|
+
*/
|
|
123
|
+
export function isKnownDocType(value) {
|
|
124
|
+
return value in getTypeRegistry();
|
|
125
|
+
}
|
|
126
|
+
/**
|
|
127
|
+
* Get the expected content folder for a document type.
|
|
128
|
+
* Returns path like "content/90_Architecture/ADRs"
|
|
129
|
+
*/
|
|
130
|
+
export function getExpectedFolder(type) {
|
|
131
|
+
const registry = getTypeRegistry();
|
|
132
|
+
const meta = registry[type];
|
|
133
|
+
if (!meta)
|
|
134
|
+
throw new Error(`Unknown document type: ${type}`);
|
|
135
|
+
return `content/${meta.folder}`;
|
|
136
|
+
}
|
|
137
|
+
/**
|
|
138
|
+
* Get the display label for a document type.
|
|
139
|
+
*/
|
|
140
|
+
export function getDisplayLabel(type) {
|
|
141
|
+
const registry = getTypeRegistry();
|
|
142
|
+
const meta = registry[type];
|
|
143
|
+
if (!meta)
|
|
144
|
+
throw new Error(`Unknown document type: ${type}`);
|
|
145
|
+
return meta.displayLabel;
|
|
146
|
+
}
|
|
147
|
+
/**
|
|
148
|
+
* Get the CMS collection name for a document type.
|
|
149
|
+
*/
|
|
150
|
+
export function getCmsCollection(type) {
|
|
151
|
+
const registry = getTypeRegistry();
|
|
152
|
+
const meta = registry[type];
|
|
153
|
+
if (!meta)
|
|
154
|
+
throw new Error(`Unknown document type: ${type}`);
|
|
155
|
+
return meta.cmsCollection;
|
|
156
|
+
}
|
|
157
|
+
/**
|
|
158
|
+
* Clear the type registry cache. Useful for testing.
|
|
159
|
+
*/
|
|
160
|
+
export function clearTypeRegistryCache() {
|
|
161
|
+
_typeRegistry = null;
|
|
162
|
+
}
|
|
163
|
+
//# sourceMappingURL=type-registry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"type-registry.js","sourceRoot":"","sources":["../../src/lib/type-registry.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@millstone/synapse-cli",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.5.0",
|
|
4
4
|
"description": "Synapse documentation framework CLI",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -15,15 +15,14 @@
|
|
|
15
15
|
"README.md"
|
|
16
16
|
],
|
|
17
17
|
"scripts": {
|
|
18
|
-
"
|
|
19
|
-
"
|
|
20
|
-
"
|
|
18
|
+
"check:types": "tsc --noEmit",
|
|
19
|
+
"build": "tsc",
|
|
20
|
+
"dev": "tsc --watch",
|
|
21
|
+
"test": "NODE_OPTIONS=--experimental-vm-modules jest --coverage",
|
|
21
22
|
"test:unit": "NODE_OPTIONS=--experimental-vm-modules jest --coverage",
|
|
22
23
|
"test:integration": "npm test",
|
|
23
24
|
"coverage": "NODE_OPTIONS=--experimental-vm-modules jest --coverage",
|
|
24
25
|
"coverage:report": "NODE_OPTIONS=--experimental-vm-modules jest --coverage --coverageReporters=text --coverageReporters=html",
|
|
25
|
-
"generate:types": "tsx scripts/generate-types.ts",
|
|
26
|
-
"check:types": "tsx scripts/check-types.ts",
|
|
27
26
|
"install-hooks": "git config core.hooksPath .githooks",
|
|
28
27
|
"prepublishOnly": "npm run build"
|
|
29
28
|
},
|
|
@@ -1,54 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* THIS FILE IS AUTO-GENERATED FROM SCHEMA FILES
|
|
3
|
-
* DO NOT EDIT DIRECTLY - Edit schemas in content/schemas/ instead
|
|
4
|
-
* Generated on: 2025-10-30T22:56:15.267Z
|
|
5
|
-
*/
|
|
6
|
-
/**
|
|
7
|
-
* All available document types derived from schema files
|
|
8
|
-
*/
|
|
9
|
-
export declare const DOC_TYPES: readonly ["adr", "agreement", "capability", "meeting", "policy", "prd", "process", "reference", "runbook", "scorecard", "sop", "sow", "standard", "system", "tdd"];
|
|
10
|
-
/**
|
|
11
|
-
* Union type of all document types
|
|
12
|
-
*/
|
|
13
|
-
export type DocType = typeof DOC_TYPES[number];
|
|
14
|
-
/**
|
|
15
|
-
* Type guard to check if a string is a valid DocType
|
|
16
|
-
*/
|
|
17
|
-
export declare function isDocType(value: string): value is DocType;
|
|
18
|
-
/**
|
|
19
|
-
* Get all document types as a mutable array
|
|
20
|
-
*/
|
|
21
|
-
export declare function getDocTypes(): DocType[];
|
|
22
|
-
/**
|
|
23
|
-
* Template metadata for each document type
|
|
24
|
-
*/
|
|
25
|
-
export interface TemplateMetadata {
|
|
26
|
-
folder: string;
|
|
27
|
-
displayLabel: string;
|
|
28
|
-
cmsCollection: string;
|
|
29
|
-
}
|
|
30
|
-
/**
|
|
31
|
-
* Registry of all template metadata
|
|
32
|
-
*/
|
|
33
|
-
export declare const TEMPLATE_REGISTRY: Record<DocType, TemplateMetadata>;
|
|
34
|
-
/**
|
|
35
|
-
* Get the expected folder for a document type
|
|
36
|
-
*/
|
|
37
|
-
export declare function getExpectedFolder(type: DocType): string;
|
|
38
|
-
/**
|
|
39
|
-
* Get the display label for a document type
|
|
40
|
-
*/
|
|
41
|
-
export declare function getDisplayLabel(type: DocType): string;
|
|
42
|
-
/**
|
|
43
|
-
* Get the CMS collection name for a document type
|
|
44
|
-
*/
|
|
45
|
-
export declare function getCmsCollection(type: DocType): string;
|
|
46
|
-
/**
|
|
47
|
-
* Metadata about the generated types
|
|
48
|
-
*/
|
|
49
|
-
export declare const SCHEMA_METADATA: {
|
|
50
|
-
readonly generatedAt: "2025-10-30T22:56:15.267Z";
|
|
51
|
-
readonly schemaCount: 15;
|
|
52
|
-
readonly types: readonly ["adr", "agreement", "capability", "meeting", "policy", "prd", "process", "reference", "runbook", "scorecard", "sop", "sow", "standard", "system", "tdd"];
|
|
53
|
-
};
|
|
54
|
-
//# sourceMappingURL=types.generated.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.generated.d.ts","sourceRoot":"","sources":["../../src/lib/types.generated.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;GAEG;AACH,eAAO,MAAM,SAAS,oKAgBZ,CAAC;AAEX;;GAEG;AACH,MAAM,MAAM,OAAO,GAAG,OAAO,SAAS,CAAC,MAAM,CAAC,CAAC;AAE/C;;GAEG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,IAAI,OAAO,CAEzD;AAED;;GAEG;AACH,wBAAgB,WAAW,IAAI,OAAO,EAAE,CAEvC;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;CACvB;AAED;;GAEG;AACH,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,OAAO,EAAE,gBAAgB,CA4E/D,CAAC;AAEF;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,OAAO,GAAG,MAAM,CAEvD;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,OAAO,GAAG,MAAM,CAErD;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,OAAO,GAAG,MAAM,CAEtD;AAED;;GAEG;AACH,eAAO,MAAM,eAAe;;;;CAIlB,CAAC"}
|
|
@@ -1,144 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* THIS FILE IS AUTO-GENERATED FROM SCHEMA FILES
|
|
3
|
-
* DO NOT EDIT DIRECTLY - Edit schemas in content/schemas/ instead
|
|
4
|
-
* Generated on: 2025-10-30T22:56:15.267Z
|
|
5
|
-
*/
|
|
6
|
-
/**
|
|
7
|
-
* All available document types derived from schema files
|
|
8
|
-
*/
|
|
9
|
-
export const DOC_TYPES = [
|
|
10
|
-
'adr',
|
|
11
|
-
'agreement',
|
|
12
|
-
'capability',
|
|
13
|
-
'meeting',
|
|
14
|
-
'policy',
|
|
15
|
-
'prd',
|
|
16
|
-
'process',
|
|
17
|
-
'reference',
|
|
18
|
-
'runbook',
|
|
19
|
-
'scorecard',
|
|
20
|
-
'sop',
|
|
21
|
-
'sow',
|
|
22
|
-
'standard',
|
|
23
|
-
'system',
|
|
24
|
-
'tdd'
|
|
25
|
-
];
|
|
26
|
-
/**
|
|
27
|
-
* Type guard to check if a string is a valid DocType
|
|
28
|
-
*/
|
|
29
|
-
export function isDocType(value) {
|
|
30
|
-
return DOC_TYPES.includes(value);
|
|
31
|
-
}
|
|
32
|
-
/**
|
|
33
|
-
* Get all document types as a mutable array
|
|
34
|
-
*/
|
|
35
|
-
export function getDocTypes() {
|
|
36
|
-
return [...DOC_TYPES];
|
|
37
|
-
}
|
|
38
|
-
/**
|
|
39
|
-
* Registry of all template metadata
|
|
40
|
-
*/
|
|
41
|
-
export const TEMPLATE_REGISTRY = {
|
|
42
|
-
'adr': {
|
|
43
|
-
folder: '90_Architecture/ADRs',
|
|
44
|
-
displayLabel: 'ADR',
|
|
45
|
-
cmsCollection: 'adrs'
|
|
46
|
-
},
|
|
47
|
-
'agreement': {
|
|
48
|
-
folder: '120_Legal/agreements',
|
|
49
|
-
displayLabel: 'Agreement',
|
|
50
|
-
cmsCollection: 'agreements'
|
|
51
|
-
},
|
|
52
|
-
'capability': {
|
|
53
|
-
folder: '110_Capabilities',
|
|
54
|
-
displayLabel: 'Capability',
|
|
55
|
-
cmsCollection: 'capabilities'
|
|
56
|
-
},
|
|
57
|
-
'meeting': {
|
|
58
|
-
folder: '60_Meetings',
|
|
59
|
-
displayLabel: 'Meeting',
|
|
60
|
-
cmsCollection: 'meetings'
|
|
61
|
-
},
|
|
62
|
-
'policy': {
|
|
63
|
-
folder: '10_Policies',
|
|
64
|
-
displayLabel: 'Policy',
|
|
65
|
-
cmsCollection: 'policies'
|
|
66
|
-
},
|
|
67
|
-
'prd': {
|
|
68
|
-
folder: '100_Products/PRDs',
|
|
69
|
-
displayLabel: 'PRD',
|
|
70
|
-
cmsCollection: 'prds'
|
|
71
|
-
},
|
|
72
|
-
'process': {
|
|
73
|
-
folder: '30_Processes',
|
|
74
|
-
displayLabel: 'Process',
|
|
75
|
-
cmsCollection: 'processes'
|
|
76
|
-
},
|
|
77
|
-
'reference': {
|
|
78
|
-
folder: '200_References',
|
|
79
|
-
displayLabel: 'Reference',
|
|
80
|
-
cmsCollection: 'references'
|
|
81
|
-
},
|
|
82
|
-
'runbook': {
|
|
83
|
-
folder: '50_Runbooks',
|
|
84
|
-
displayLabel: 'Runbook',
|
|
85
|
-
cmsCollection: 'runbooks'
|
|
86
|
-
},
|
|
87
|
-
'scorecard': {
|
|
88
|
-
folder: '80_Scorecards',
|
|
89
|
-
displayLabel: 'Scorecard',
|
|
90
|
-
cmsCollection: 'scorecards'
|
|
91
|
-
},
|
|
92
|
-
'sop': {
|
|
93
|
-
folder: '40_SOPs',
|
|
94
|
-
displayLabel: 'SOP',
|
|
95
|
-
cmsCollection: 'sops'
|
|
96
|
-
},
|
|
97
|
-
'sow': {
|
|
98
|
-
folder: '120_Legal/SOWs',
|
|
99
|
-
displayLabel: 'SOW',
|
|
100
|
-
cmsCollection: 'sows'
|
|
101
|
-
},
|
|
102
|
-
'standard': {
|
|
103
|
-
folder: '20_Standards',
|
|
104
|
-
displayLabel: 'Standard',
|
|
105
|
-
cmsCollection: 'standards'
|
|
106
|
-
},
|
|
107
|
-
'system': {
|
|
108
|
-
folder: '70_Systems',
|
|
109
|
-
displayLabel: 'System',
|
|
110
|
-
cmsCollection: 'systems'
|
|
111
|
-
},
|
|
112
|
-
'tdd': {
|
|
113
|
-
folder: '90_Architecture/TDDs',
|
|
114
|
-
displayLabel: 'TDD',
|
|
115
|
-
cmsCollection: 'tdds'
|
|
116
|
-
}
|
|
117
|
-
};
|
|
118
|
-
/**
|
|
119
|
-
* Get the expected folder for a document type
|
|
120
|
-
*/
|
|
121
|
-
export function getExpectedFolder(type) {
|
|
122
|
-
return `content/${TEMPLATE_REGISTRY[type].folder}`;
|
|
123
|
-
}
|
|
124
|
-
/**
|
|
125
|
-
* Get the display label for a document type
|
|
126
|
-
*/
|
|
127
|
-
export function getDisplayLabel(type) {
|
|
128
|
-
return TEMPLATE_REGISTRY[type].displayLabel;
|
|
129
|
-
}
|
|
130
|
-
/**
|
|
131
|
-
* Get the CMS collection name for a document type
|
|
132
|
-
*/
|
|
133
|
-
export function getCmsCollection(type) {
|
|
134
|
-
return TEMPLATE_REGISTRY[type].cmsCollection;
|
|
135
|
-
}
|
|
136
|
-
/**
|
|
137
|
-
* Metadata about the generated types
|
|
138
|
-
*/
|
|
139
|
-
export const SCHEMA_METADATA = {
|
|
140
|
-
generatedAt: '2025-10-30T22:56:15.267Z',
|
|
141
|
-
schemaCount: 15,
|
|
142
|
-
types: DOC_TYPES
|
|
143
|
-
};
|
|
144
|
-
//# sourceMappingURL=types.generated.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.generated.js","sourceRoot":"","sources":["../../src/lib/types.generated.ts"],"names":[],"mappings":"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"}
|