@toolproof-npm/schema 0.1.52 → 0.1.53
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.
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
// Auto-generated from src/genesis/Genesis.json. Do not edit.
|
|
2
|
+
import type { ResourceType } from './types.js';
|
|
3
|
+
|
|
4
|
+
export type GenesisResourceType = {
|
|
5
|
+
"BranchStep": ResourceType;
|
|
6
|
+
"BranchStepIdentity": ResourceType;
|
|
7
|
+
"Conditional": ResourceType;
|
|
8
|
+
"CreationContext": ResourceType;
|
|
9
|
+
"CreationContextWrapper": ResourceType;
|
|
10
|
+
"Described": ResourceType;
|
|
11
|
+
"Documented": ResourceType;
|
|
12
|
+
"Execution": ResourceType;
|
|
13
|
+
"ExecutionIdentity": ResourceType;
|
|
14
|
+
"ExtractionSchema": ResourceType;
|
|
15
|
+
"ExtractionSchemaWrapper": ResourceType;
|
|
16
|
+
"ForStep": ResourceType;
|
|
17
|
+
"ForStepIdentity": ResourceType;
|
|
18
|
+
"IdentityProp": ResourceType;
|
|
19
|
+
"IdentitySchema": ResourceType;
|
|
20
|
+
"IdentitySchemaRef": ResourceType;
|
|
21
|
+
"Job": ResourceType;
|
|
22
|
+
"JobIdentity": ResourceType;
|
|
23
|
+
"JsonData": ResourceType;
|
|
24
|
+
"MeritProp": ResourceType;
|
|
25
|
+
"MeritSchema": ResourceType;
|
|
26
|
+
"MeritSchemaRef": ResourceType;
|
|
27
|
+
"Named": ResourceType;
|
|
28
|
+
"Path": ResourceType;
|
|
29
|
+
"Resource": ResourceType;
|
|
30
|
+
"ResourceBase": ResourceType;
|
|
31
|
+
"ResourceFormat": ResourceType;
|
|
32
|
+
"ResourceFormatIdentity": ResourceType;
|
|
33
|
+
"ResourceIdentity": ResourceType;
|
|
34
|
+
"ResourceKind": ResourceType;
|
|
35
|
+
"ResourceMeta": ResourceType;
|
|
36
|
+
"ResourceMetaBase": ResourceType;
|
|
37
|
+
"ResourceMissing": ResourceType;
|
|
38
|
+
"ResourcePotentialInput": ResourceType;
|
|
39
|
+
"ResourcePotentialOutput": ResourceType;
|
|
40
|
+
"ResourceRoleIdentity": ResourceType;
|
|
41
|
+
"ResourceRoleValue": ResourceType;
|
|
42
|
+
"ResourceType": ResourceType;
|
|
43
|
+
"ResourceTypeIdentity": ResourceType;
|
|
44
|
+
"RoleBindingMap": ResourceType;
|
|
45
|
+
"RoleBindings": ResourceType;
|
|
46
|
+
"RoleBindingsWrapper": ResourceType;
|
|
47
|
+
"RoleMap": ResourceType;
|
|
48
|
+
"Roles": ResourceType;
|
|
49
|
+
"RolesWrapper": ResourceType;
|
|
50
|
+
"StatefulStrategy": ResourceType;
|
|
51
|
+
"StatefulStrategyIdentity": ResourceType;
|
|
52
|
+
"StatelessStrategy": ResourceType;
|
|
53
|
+
"StatelessStrategyIdentity": ResourceType;
|
|
54
|
+
"Step": ResourceType;
|
|
55
|
+
"StepKind": ResourceType;
|
|
56
|
+
"StrategyState": ResourceType;
|
|
57
|
+
"StrategyStateWrapper": ResourceType;
|
|
58
|
+
"Timestamp": ResourceType;
|
|
59
|
+
"WhileStep": ResourceType;
|
|
60
|
+
"WhileStepIdentity": ResourceType;
|
|
61
|
+
"WorkStep": ResourceType;
|
|
62
|
+
"WorkStepIdentity": ResourceType;
|
|
63
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import fs from 'fs';
|
|
2
|
+
import { getConfig } from './_lib/config.js';
|
|
3
|
+
/**
|
|
4
|
+
* Generates a TS type mapping Genesis $defs names -> ResourceType.
|
|
5
|
+
*
|
|
6
|
+
* Output:
|
|
7
|
+
* - src/genesis/generated/types/GenesisResourceType.d.ts
|
|
8
|
+
* - dist/genesis/generated/types/GenesisResourceType.d.ts
|
|
9
|
+
*/
|
|
10
|
+
async function main() {
|
|
11
|
+
const config = getConfig();
|
|
12
|
+
const genesisPath = config.getSourcePath();
|
|
13
|
+
if (!fs.existsSync(genesisPath)) {
|
|
14
|
+
console.error(`Genesis file not found: ${genesisPath}`);
|
|
15
|
+
process.exit(1);
|
|
16
|
+
}
|
|
17
|
+
const raw = fs.readFileSync(genesisPath, 'utf8');
|
|
18
|
+
let parsed;
|
|
19
|
+
try {
|
|
20
|
+
parsed = JSON.parse(raw);
|
|
21
|
+
}
|
|
22
|
+
catch (e) {
|
|
23
|
+
console.error(`Failed to parse JSON: ${genesisPath}`, e);
|
|
24
|
+
process.exit(1);
|
|
25
|
+
}
|
|
26
|
+
const defs = parsed?.extractionSchema?.$defs;
|
|
27
|
+
if (!defs || typeof defs !== 'object' || Array.isArray(defs)) {
|
|
28
|
+
console.error(`Expected extractionSchema.$defs to be an object in: ${genesisPath}`);
|
|
29
|
+
process.exit(1);
|
|
30
|
+
}
|
|
31
|
+
const defNames = Object.keys(defs).sort((a, b) => a.localeCompare(b));
|
|
32
|
+
if (defNames.length === 0) {
|
|
33
|
+
console.error(`No $defs found at extractionSchema.$defs in: ${genesisPath}`);
|
|
34
|
+
process.exit(1);
|
|
35
|
+
}
|
|
36
|
+
const header = '// Auto-generated from src/genesis/Genesis.json. Do not edit.\n';
|
|
37
|
+
const importLine = "import type { ResourceType } from './types.js';\n\n";
|
|
38
|
+
const lines = [];
|
|
39
|
+
lines.push('export type GenesisResourceType = {');
|
|
40
|
+
for (const name of defNames) {
|
|
41
|
+
// Use a string-literal key to handle any non-identifier $defs names safely.
|
|
42
|
+
lines.push(` ${JSON.stringify(name)}: ResourceType;`);
|
|
43
|
+
}
|
|
44
|
+
lines.push('};\n');
|
|
45
|
+
const outName = 'GenesisResourceType.d.ts';
|
|
46
|
+
// Write to src
|
|
47
|
+
const srcOutDir = config.getTypesSrcDir();
|
|
48
|
+
fs.mkdirSync(srcOutDir, { recursive: true });
|
|
49
|
+
const srcOutPath = config.getTypesSrcPath(outName);
|
|
50
|
+
fs.writeFileSync(srcOutPath, header + importLine + lines.join('\n'), 'utf8');
|
|
51
|
+
console.log(`Wrote ${srcOutPath}`);
|
|
52
|
+
// Ensure a runtime-resolvable JS shim exists for NodeNext module resolution
|
|
53
|
+
const srcOutJsPath = config.getTypesSrcPath('GenesisResourceType.js');
|
|
54
|
+
if (!fs.existsSync(srcOutJsPath)) {
|
|
55
|
+
fs.writeFileSync(srcOutJsPath, 'export {}\n', 'utf8');
|
|
56
|
+
console.log(`Wrote ${srcOutJsPath}`);
|
|
57
|
+
}
|
|
58
|
+
// Also copy into dist (consistent with other generators)
|
|
59
|
+
const distOutDir = config.getTypesDistDir();
|
|
60
|
+
fs.mkdirSync(distOutDir, { recursive: true });
|
|
61
|
+
const distOutPath = config.getTypesDistPath(outName);
|
|
62
|
+
fs.writeFileSync(distOutPath, header + importLine + lines.join('\n'), 'utf8');
|
|
63
|
+
console.log(`Wrote ${distOutPath}`);
|
|
64
|
+
const distOutJsPath = config.getTypesDistPath('GenesisResourceType.js');
|
|
65
|
+
fs.writeFileSync(distOutJsPath, 'export {}\n', 'utf8');
|
|
66
|
+
console.log(`Wrote ${distOutJsPath}`);
|
|
67
|
+
}
|
|
68
|
+
main().catch((e) => {
|
|
69
|
+
console.error(e);
|
|
70
|
+
process.exit(1);
|
|
71
|
+
});
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@toolproof-npm/schema",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.53",
|
|
4
4
|
"description": "JSON schemas and TypeScript types for ToolProof",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"toolproof",
|
|
@@ -49,9 +49,10 @@
|
|
|
49
49
|
"extractSubschema": "node ./dist/scripts/extractSubschemaWithDefs.js",
|
|
50
50
|
"resolveRefsInGenesisStory": "pnpm run build:scripts && node ./dist/scripts/resolveRefsInGenesisStory.js",
|
|
51
51
|
"generateTypes": "node ./dist/scripts/generateTypes.js",
|
|
52
|
+
"generateGenesisResourceTypeType": "node ./dist/scripts/generateGenesisResourceTypeType.js",
|
|
52
53
|
"generateResourceTypeType": "node ./dist/scripts/generateResourceTypeType.js",
|
|
53
54
|
"generateResourceEnvelopes": "node ./dist/scripts/generateResourceEnvelopes.js",
|
|
54
55
|
"generateSchemaShims": "node ./dist/scripts/generateSchemaShims.js",
|
|
55
|
-
"update": "rimraf /s /q dist && pnpm run build:scripts && pnpm run rewriteAnchors && pnpm run generateResourceEnvelopes && pnpm run extractSchemas && pnpm run extractSubschema -- --name Job && pnpm run extractSubschema -- --name ResourceFormat && pnpm run extractSubschema -- --name ResourceType && pnpm run extractSubschema -- --name StatelessStrategy && pnpm run extractSubschema -- --name StatefulStrategy && pnpm run generateSchemaShims && pnpm run generateTypes && pnpm run generateResourceTypeType -- --name Job && pnpm run generateResourceTypeType -- --name ResourceFormat && pnpm run generateResourceTypeType -- --name ResourceType && pnpm run generateResourceTypeType -- --name StatelessStrategy && pnpm run build"
|
|
56
|
+
"update": "rimraf /s /q dist && pnpm run build:scripts && pnpm run rewriteAnchors && pnpm run generateResourceEnvelopes && pnpm run extractSchemas && pnpm run extractSubschema -- --name Job && pnpm run extractSubschema -- --name ResourceFormat && pnpm run extractSubschema -- --name ResourceType && pnpm run extractSubschema -- --name StatelessStrategy && pnpm run extractSubschema -- --name StatefulStrategy && pnpm run generateSchemaShims && pnpm run generateTypes && pnpm run generateResourceTypeType -- --name Job && pnpm run generateResourceTypeType -- --name ResourceFormat && pnpm run generateResourceTypeType -- --name ResourceType && pnpm run generateResourceTypeType -- --name StatelessStrategy && pnpm run generateGenesisResourceTypeType && pnpm run build"
|
|
56
57
|
}
|
|
57
58
|
}
|