@toolproof-npm/schema 0.1.29 → 0.1.30
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/README.md +59 -59
- package/dist/_lib/test.js +6 -6
- package/dist/_lib/types/ResourceData_Job.d.ts +1 -1
- package/dist/_lib/types/types.d.ts +11 -11
- package/dist/index.d.ts +2 -2
- package/dist/index.js +1 -1
- package/dist/schemas/Genesis.json +8 -8
- package/dist/schemas/Job.json +3 -3
- package/dist/scripts/brandFactories.d.ts +3 -3
- package/dist/scripts/brandFactories.js +3 -3
- package/dist/scripts/generateTypes.js +3 -3
- package/package.json +50 -45
package/README.md
CHANGED
|
@@ -1,59 +1,59 @@
|
|
|
1
|
-
# @toolproof-npm/schema
|
|
2
|
-
|
|
3
|
-
JSON schemas and TypeScript types for ToolProof...
|
|
4
|
-
|
|
5
|
-
## Installation
|
|
6
|
-
|
|
7
|
-
```bash
|
|
8
|
-
pnpm add @toolproof-npm/schema
|
|
9
|
-
# or
|
|
10
|
-
npm install @toolproof-npm/schema
|
|
11
|
-
# or
|
|
12
|
-
yarn add @toolproof-npm/schema
|
|
13
|
-
```
|
|
14
|
-
|
|
15
|
-
## Usage
|
|
16
|
-
|
|
17
|
-
### Import Schemas and Types
|
|
18
|
-
|
|
19
|
-
```typescript
|
|
20
|
-
import { /* schemas and types */ } from '@toolproof-npm/schema';
|
|
21
|
-
```
|
|
22
|
-
|
|
23
|
-
## Features
|
|
24
|
-
|
|
25
|
-
- JSON Schema definitions with $defs subschemas
|
|
26
|
-
- Generated TypeScript types from JSON schemas
|
|
27
|
-
- Runtime schema validation support
|
|
28
|
-
- Extractors for non-JSON resource types
|
|
29
|
-
- Schema bundling utilities
|
|
30
|
-
|
|
31
|
-
## Development
|
|
32
|
-
|
|
33
|
-
### Generate Types
|
|
34
|
-
|
|
35
|
-
```bash
|
|
36
|
-
pnpm run generateTypes
|
|
37
|
-
```
|
|
38
|
-
|
|
39
|
-
### Build
|
|
40
|
-
|
|
41
|
-
```bash
|
|
42
|
-
pnpm run build
|
|
43
|
-
```
|
|
44
|
-
|
|
45
|
-
### Update (Clean build + generate types)
|
|
46
|
-
|
|
47
|
-
```bash
|
|
48
|
-
pnpm run update
|
|
49
|
-
```
|
|
50
|
-
|
|
51
|
-
## Requirements
|
|
52
|
-
|
|
53
|
-
- Node.js 16+
|
|
54
|
-
- TypeScript 4.5+ (for TypeScript projects)
|
|
55
|
-
|
|
56
|
-
## License
|
|
57
|
-
|
|
58
|
-
MIT
|
|
59
|
-
|
|
1
|
+
# @toolproof-npm/schema
|
|
2
|
+
|
|
3
|
+
JSON schemas and TypeScript types for ToolProof...
|
|
4
|
+
|
|
5
|
+
## Installation
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
pnpm add @toolproof-npm/schema
|
|
9
|
+
# or
|
|
10
|
+
npm install @toolproof-npm/schema
|
|
11
|
+
# or
|
|
12
|
+
yarn add @toolproof-npm/schema
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
## Usage
|
|
16
|
+
|
|
17
|
+
### Import Schemas and Types
|
|
18
|
+
|
|
19
|
+
```typescript
|
|
20
|
+
import { /* schemas and types */ } from '@toolproof-npm/schema';
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
## Features
|
|
24
|
+
|
|
25
|
+
- JSON Schema definitions with $defs subschemas
|
|
26
|
+
- Generated TypeScript types from JSON schemas
|
|
27
|
+
- Runtime schema validation support
|
|
28
|
+
- Extractors for non-JSON resource types
|
|
29
|
+
- Schema bundling utilities
|
|
30
|
+
|
|
31
|
+
## Development
|
|
32
|
+
|
|
33
|
+
### Generate Types
|
|
34
|
+
|
|
35
|
+
```bash
|
|
36
|
+
pnpm run generateTypes
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
### Build
|
|
40
|
+
|
|
41
|
+
```bash
|
|
42
|
+
pnpm run build
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
### Update (Clean build + generate types)
|
|
46
|
+
|
|
47
|
+
```bash
|
|
48
|
+
pnpm run update
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
## Requirements
|
|
52
|
+
|
|
53
|
+
- Node.js 16+
|
|
54
|
+
- TypeScript 4.5+ (for TypeScript projects)
|
|
55
|
+
|
|
56
|
+
## License
|
|
57
|
+
|
|
58
|
+
MIT
|
|
59
|
+
|
package/dist/_lib/test.js
CHANGED
|
@@ -5,14 +5,14 @@ const Job = {
|
|
|
5
5
|
uri: 'uri',
|
|
6
6
|
roles: {
|
|
7
7
|
inputMap: {
|
|
8
|
-
'
|
|
8
|
+
'ROLE-1234': {
|
|
9
9
|
resourceTypeId: 'RT-1234',
|
|
10
10
|
name: 'name',
|
|
11
11
|
description: 'description'
|
|
12
12
|
}
|
|
13
13
|
},
|
|
14
14
|
outputMap: {
|
|
15
|
-
'
|
|
15
|
+
'ROLE-5678': {
|
|
16
16
|
resourceTypeId: 'RT-5678',
|
|
17
17
|
name: 'name',
|
|
18
18
|
description: 'description'
|
|
@@ -69,7 +69,7 @@ const resourceDataJobAlpha = {
|
|
|
69
69
|
id: 'RESOURCE-1',
|
|
70
70
|
resourceTypeId: 'RT-ID',
|
|
71
71
|
creationContext: {
|
|
72
|
-
|
|
72
|
+
resourceRoleId: 'ROLE-ID',
|
|
73
73
|
executionId: 'EXECUTION-ID',
|
|
74
74
|
},
|
|
75
75
|
kind: 'realized',
|
|
@@ -83,7 +83,7 @@ const resourceDataJobAlpha2 = {
|
|
|
83
83
|
id: 'RESOURCE-3',
|
|
84
84
|
resourceTypeId: 'RT-ID',
|
|
85
85
|
creationContext: {
|
|
86
|
-
|
|
86
|
+
resourceRoleId: 'ROLE-ID',
|
|
87
87
|
executionId: 'EXECUTION-ID',
|
|
88
88
|
},
|
|
89
89
|
kind: 'realized',
|
|
@@ -97,7 +97,7 @@ const resourceDataJobAlpha3 = {
|
|
|
97
97
|
id: 'RESOURCE-2',
|
|
98
98
|
resourceTypeId: 'RT-ID',
|
|
99
99
|
creationContext: {
|
|
100
|
-
|
|
100
|
+
resourceRoleId: 'ROLE-ID',
|
|
101
101
|
executionId: 'EXECUTION-ID',
|
|
102
102
|
},
|
|
103
103
|
kind: 'realized',
|
|
@@ -110,7 +110,7 @@ const resourceDataJobBeta = {
|
|
|
110
110
|
id: 'RESOURCE-4',
|
|
111
111
|
resourceTypeId: 'RT-ID',
|
|
112
112
|
creationContext: {
|
|
113
|
-
|
|
113
|
+
resourceRoleId: 'ROLE-ID',
|
|
114
114
|
executionId: 'EXECUTION-ID',
|
|
115
115
|
},
|
|
116
116
|
kind: 'realized',
|
|
@@ -41,7 +41,7 @@ export interface CreationContext {
|
|
|
41
41
|
}
|
|
42
42
|
export interface ResourceSocket {
|
|
43
43
|
executionId: string;
|
|
44
|
-
|
|
44
|
+
resourceRoleId: string;
|
|
45
45
|
}
|
|
46
46
|
export interface ResourceKind {
|
|
47
47
|
kind: "potential-input" | "potential-output" | "realized";
|
|
@@ -39,7 +39,7 @@ export type CombinedEntry =
|
|
|
39
39
|
| ResourceMeta
|
|
40
40
|
| ResourcePotentialInput
|
|
41
41
|
| ResourcePotentialOutput
|
|
42
|
-
|
|
|
42
|
+
| ResourceRoleId
|
|
43
43
|
| ResourceRoleValue
|
|
44
44
|
| ResourceSocket
|
|
45
45
|
| ResourceTypeData
|
|
@@ -74,7 +74,7 @@ export type CombinedEntry =
|
|
|
74
74
|
| Job_RolesInner
|
|
75
75
|
| Job_RoleMap
|
|
76
76
|
| Job_ResourceRoleValue
|
|
77
|
-
|
|
|
77
|
+
| Job_ResourceRoleId
|
|
78
78
|
| Job_ResourceTypeId;
|
|
79
79
|
/**
|
|
80
80
|
* This interface was referenced by `GenesisJson`'s JSON-Schema
|
|
@@ -129,9 +129,9 @@ export type WorkStepId = string;
|
|
|
129
129
|
export type BranchStepId = string;
|
|
130
130
|
/**
|
|
131
131
|
* This interface was referenced by `GenesisJson`'s JSON-Schema
|
|
132
|
-
* via the `definition` "
|
|
132
|
+
* via the `definition` "ResourceRoleId".
|
|
133
133
|
*/
|
|
134
|
-
export type
|
|
134
|
+
export type ResourceRoleId = string;
|
|
135
135
|
/**
|
|
136
136
|
* This interface was referenced by `GenesisJson`'s JSON-Schema
|
|
137
137
|
* via the `definition` "Documented".
|
|
@@ -268,9 +268,9 @@ export type Job_ResourceRoleValue = {
|
|
|
268
268
|
export type Job_ResourceTypeId = string;
|
|
269
269
|
/**
|
|
270
270
|
* This interface was referenced by `undefined`'s JSON-Schema
|
|
271
|
-
* via the `definition` "
|
|
271
|
+
* via the `definition` "ResourceRoleId".
|
|
272
272
|
*/
|
|
273
|
-
export type
|
|
273
|
+
export type Job_ResourceRoleId = string;
|
|
274
274
|
/**
|
|
275
275
|
* This interface was referenced by `GenesisJson`'s JSON-Schema
|
|
276
276
|
* via the `definition` "JsonValue".
|
|
@@ -478,7 +478,7 @@ export interface RoleBindingsInner {
|
|
|
478
478
|
* This interface was referenced by `GenesisJson`'s JSON-Schema
|
|
479
479
|
* via the `definition` "RoleBindingMap".
|
|
480
480
|
*/
|
|
481
|
-
export type RoleBindingMap = Record<
|
|
481
|
+
export type RoleBindingMap = Record<RoleId, ResourceId>;
|
|
482
482
|
/**
|
|
483
483
|
* This interface was referenced by `GenesisJson`'s JSON-Schema
|
|
484
484
|
* via the `definition` "CanonicalRef".
|
|
@@ -499,7 +499,7 @@ export interface CreationContext {
|
|
|
499
499
|
*/
|
|
500
500
|
export interface ResourceSocket {
|
|
501
501
|
executionId: ExecutionId;
|
|
502
|
-
|
|
502
|
+
resourceRoleId: ResourceRoleId;
|
|
503
503
|
}
|
|
504
504
|
/**
|
|
505
505
|
* This interface was referenced by `GenesisJson`'s JSON-Schema
|
|
@@ -600,7 +600,7 @@ export interface PendingRef {
|
|
|
600
600
|
}
|
|
601
601
|
export interface ResourceSocket1 {
|
|
602
602
|
executionId: ExecutionId;
|
|
603
|
-
|
|
603
|
+
resourceRoleId: ResourceRoleId;
|
|
604
604
|
}
|
|
605
605
|
/**
|
|
606
606
|
* This interface was referenced by `GenesisJson`'s JSON-Schema
|
|
@@ -620,7 +620,7 @@ export interface Timestamp {
|
|
|
620
620
|
* This interface was referenced by `GenesisJson`'s JSON-Schema
|
|
621
621
|
* via the `definition` "ResourceMap".
|
|
622
622
|
*/
|
|
623
|
-
export type ResourceMap = Record<ExecutionId, Record<
|
|
623
|
+
export type ResourceMap = Record<ExecutionId, Record<RoleId, ResourcePotentialInput | ResourcePotentialOutput | ResourceData>>;
|
|
624
624
|
/**
|
|
625
625
|
* This interface was referenced by `GenesisJson`'s JSON-Schema
|
|
626
626
|
* via the `definition` "RoleBindingsOuter".
|
|
@@ -632,7 +632,7 @@ export interface RoleBindingsOuter1 {
|
|
|
632
632
|
* This interface was referenced by `GenesisJson`'s JSON-Schema
|
|
633
633
|
* via the `definition` "RoleMap".
|
|
634
634
|
*/
|
|
635
|
-
export type RoleMap = Record<
|
|
635
|
+
export type RoleMap = Record<RoleId, RoleLiteral>;
|
|
636
636
|
/**
|
|
637
637
|
* This interface was referenced by `GenesisJson`'s JSON-Schema
|
|
638
638
|
* via the `definition` "RolesInner".
|
package/dist/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export { default as GenesisSchema } from './schemas/Genesis.js';
|
|
2
2
|
export { default as JobSchema } from './schemas/Job.js';
|
|
3
3
|
export type { ResourceData_Job as ResourceData_JobJson } from './_lib/types/ResourceData_Job.js';
|
|
4
|
-
export type { Identifiable as IdentifiableJson, Documented as DocumentedJson, IdentifiableDocumented as IdentifiableDocumentedJson, ResourceFormatId as ResourceFormatIdJson, ResourceFormatMeta as ResourceFormatMetaJson, ResourceFormatData as ResourceFormatDataJson, ExtractionSchema as ExtractionSchemaJson, ExtractionSchemaValue as ExtractionSchemaValueJson, IdentityProp as IdentityPropJson, MeritProp as MeritPropJson, ResourceTypeId as ResourceTypeIdJson, ResourceTypeMeta as ResourceTypeMetaJson, ResourceTypeData as ResourceTypeDataJson,
|
|
5
|
-
export { unsafeBrand, asResourceTypeId,
|
|
4
|
+
export type { Identifiable as IdentifiableJson, Documented as DocumentedJson, IdentifiableDocumented as IdentifiableDocumentedJson, ResourceFormatId as ResourceFormatIdJson, ResourceFormatMeta as ResourceFormatMetaJson, ResourceFormatData as ResourceFormatDataJson, ExtractionSchema as ExtractionSchemaJson, ExtractionSchemaValue as ExtractionSchemaValueJson, IdentityProp as IdentityPropJson, MeritProp as MeritPropJson, ResourceTypeId as ResourceTypeIdJson, ResourceTypeMeta as ResourceTypeMetaJson, ResourceTypeData as ResourceTypeDataJson, ResourceRoleId as ResourceRoleIdJson, ResourceRoleValue as ResourceRoleValueJson, ExecutionId as ExecutionIdJson, Execution as ExecutionJson, ConditionalWrapper as ConditionalWrapperJson, RoleMap as RoleMapJson, RolesOuter as RolesOuterJson, RoleBindingMap as RoleBindingMapJson, RoleBindingsOuter as RoleBindingsOuterJson, ResourceId as ResourceIdJson, WorkStepId as WorkStepIdJson, BranchStepId as BranchStepIdJson, WhileStepId as WhileStepIdJson, ForStepId as ForStepIdJson, WorkStep as WorkStepJson, BranchStep as BranchStepJson, WhileStep as WhileStepJson, ForStep as ForStepJson, StepId as StepIdJson, Step as StepJson, ResourceSocket as ResourceSocketJson, ResourcePotentialInput as ResourcePotentialInputJson, ResourcePotentialOutput as ResourcePotentialOutputJson, ResourceMeta as ResourceMetaJson, ResourceData as ResourceDataJson, ResourceMap as ResourceMapJson, WorkflowId as WorkflowIdJson, Workflow as WorkflowJson, WorkflowSpecId as WorkflowSpecIdJson, WorkflowSpec as WorkflowSpecJson, Job as JobJson, JsonValue as JsonValueJson, } from './_lib/types/types.js';
|
|
5
|
+
export { unsafeBrand, asResourceTypeId, asRoleId, asExecutionId, asResourceId, asWorkStepId, asBranchStepId, asForStepId, asResourceFormatId, asWhileStepId, asWorkflowId, asWorkflowSpecId, asResourceTypeIds, asRoleIds, asExecutionIds, asResourceIds, asWorkStepIds, asBranchStepIds, asForStepIds, asResourceFormatIds, asWhileStepIds, asWorkflowIds, asWorkflowSpecIds, } from './scripts/brandFactories.js';
|
package/dist/index.js
CHANGED
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
export { default as GenesisSchema } from './schemas/Genesis.js';
|
|
3
3
|
export { default as JobSchema } from './schemas/Job.js';
|
|
4
4
|
// Re-export brand factories so consumers can construct branded IDs at runtime.
|
|
5
|
-
export { unsafeBrand, asResourceTypeId,
|
|
5
|
+
export { unsafeBrand, asResourceTypeId, asRoleId, asExecutionId, asResourceId, asWorkStepId, asBranchStepId, asForStepId, asResourceFormatId, asWhileStepId, asWorkflowId, asWorkflowSpecId, asResourceTypeIds, asRoleIds, asExecutionIds, asResourceIds, asWorkStepIds, asBranchStepIds, asForStepIds, asResourceFormatIds, asWhileStepIds, asWorkflowIds, asWorkflowSpecIds, } from './scripts/brandFactories.js';
|
|
@@ -722,7 +722,7 @@
|
|
|
722
722
|
]
|
|
723
723
|
},
|
|
724
724
|
"propertyNames": {
|
|
725
|
-
"$ref": "#/$defs/
|
|
725
|
+
"$ref": "#/$defs/ResourceRoleId"
|
|
726
726
|
}
|
|
727
727
|
},
|
|
728
728
|
"$anchor": "ResourceMap",
|
|
@@ -798,10 +798,10 @@
|
|
|
798
798
|
"unevaluatedProperties": false,
|
|
799
799
|
"$anchor": "ResourcePotentialOutput"
|
|
800
800
|
},
|
|
801
|
-
"
|
|
801
|
+
"ResourceRoleId": {
|
|
802
802
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
803
803
|
"type": "string",
|
|
804
|
-
"$anchor": "
|
|
804
|
+
"$anchor": "ResourceRoleId",
|
|
805
805
|
"pattern": "^RR-.+$"
|
|
806
806
|
},
|
|
807
807
|
"ResourceRoleValue": {
|
|
@@ -831,12 +831,12 @@
|
|
|
831
831
|
"executionId": {
|
|
832
832
|
"$ref": "#/$defs/ExecutionId"
|
|
833
833
|
},
|
|
834
|
-
"
|
|
835
|
-
"$ref": "#/$defs/
|
|
834
|
+
"resourceRoleId": {
|
|
835
|
+
"$ref": "#/$defs/ResourceRoleId"
|
|
836
836
|
}
|
|
837
837
|
},
|
|
838
838
|
"required": [
|
|
839
|
-
"
|
|
839
|
+
"resourceRoleId",
|
|
840
840
|
"executionId"
|
|
841
841
|
],
|
|
842
842
|
"$anchor": "ResourceSocket"
|
|
@@ -900,7 +900,7 @@
|
|
|
900
900
|
},
|
|
901
901
|
"$anchor": "RoleBindingMap",
|
|
902
902
|
"propertyNames": {
|
|
903
|
-
"$ref": "#/$defs/
|
|
903
|
+
"$ref": "#/$defs/ResourceRoleId"
|
|
904
904
|
}
|
|
905
905
|
},
|
|
906
906
|
"RoleBindingsInner": {
|
|
@@ -942,7 +942,7 @@
|
|
|
942
942
|
},
|
|
943
943
|
"$anchor": "RoleMap",
|
|
944
944
|
"propertyNames": {
|
|
945
|
-
"$ref": "#/$defs/
|
|
945
|
+
"$ref": "#/$defs/ResourceRoleId"
|
|
946
946
|
}
|
|
947
947
|
},
|
|
948
948
|
"RolesInner": {
|
package/dist/schemas/Job.json
CHANGED
|
@@ -122,7 +122,7 @@
|
|
|
122
122
|
},
|
|
123
123
|
"$anchor": "RoleMap",
|
|
124
124
|
"propertyNames": {
|
|
125
|
-
"$ref": "#/$defs/
|
|
125
|
+
"$ref": "#/$defs/ResourceRoleId"
|
|
126
126
|
}
|
|
127
127
|
},
|
|
128
128
|
"ResourceRoleValue": {
|
|
@@ -145,10 +145,10 @@
|
|
|
145
145
|
],
|
|
146
146
|
"$anchor": "ResourceRoleValue"
|
|
147
147
|
},
|
|
148
|
-
"
|
|
148
|
+
"ResourceRoleId": {
|
|
149
149
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
150
150
|
"type": "string",
|
|
151
|
-
"$anchor": "
|
|
151
|
+
"$anchor": "ResourceRoleId",
|
|
152
152
|
"pattern": "^RR-.+$"
|
|
153
153
|
},
|
|
154
154
|
"ResourceTypeId": {
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import type { ExecutionId, ResourceId, WorkStepId, BranchStepId, ForStepId, ResourceFormatId, ResourceTypeId,
|
|
1
|
+
import type { ExecutionId, ResourceId, WorkStepId, BranchStepId, ForStepId, ResourceFormatId, ResourceTypeId, ResourceRoleId, WhileStepId, WorkflowId, WorkflowSpecId } from "../_lib/types/types.js";
|
|
2
2
|
/** Generic unsafe brand helper when a bespoke factory is not available. */
|
|
3
3
|
export declare function unsafeBrand<T extends string>(s: string): T;
|
|
4
4
|
export declare const asResourceTypeId: (s: string) => string;
|
|
5
|
-
export declare const
|
|
5
|
+
export declare const asRoleId: (s: string) => string;
|
|
6
6
|
export declare const asExecutionId: (s: string) => string;
|
|
7
7
|
export declare const asResourceId: (s: string) => string;
|
|
8
8
|
export declare const asWorkStepId: (s: string) => string;
|
|
@@ -13,7 +13,7 @@ export declare const asWhileStepId: (s: string) => string;
|
|
|
13
13
|
export declare const asWorkflowId: (s: string) => string;
|
|
14
14
|
export declare const asWorkflowSpecId: (s: string) => string;
|
|
15
15
|
export declare const asResourceTypeIds: (xs: string[]) => ResourceTypeId[];
|
|
16
|
-
export declare const
|
|
16
|
+
export declare const asRoleIds: (xs: string[]) => ResourceRoleId[];
|
|
17
17
|
export declare const asExecutionIds: (xs: string[]) => ExecutionId[];
|
|
18
18
|
export declare const asResourceIds: (xs: string[]) => ResourceId[];
|
|
19
19
|
export declare const asWorkStepIds: (xs: string[]) => WorkStepId[];
|
|
@@ -22,10 +22,10 @@ export function unsafeBrand(s) {
|
|
|
22
22
|
const RE_RT_ID = /^RT-.+$/;
|
|
23
23
|
const RE_SIGNATURE_ID = /^SIGNATURE-.+$/;
|
|
24
24
|
const RE_JOB_ID = /^JOB-.+$/;
|
|
25
|
-
const
|
|
25
|
+
const RE_ROLE_ID = /^ROLE-.+$/;
|
|
26
26
|
// Factories for each Id-like type
|
|
27
27
|
export const asResourceTypeId = makeFactory("ResourceTypeId", RE_RT_ID);
|
|
28
|
-
export const
|
|
28
|
+
export const asRoleId = makeFactory("RoleId", RE_ROLE_ID);
|
|
29
29
|
// IDs without strict regex patterns in the current schemas: keep unchecked casts.
|
|
30
30
|
export const asExecutionId = makeFactory("ExecutionId");
|
|
31
31
|
export const asResourceId = makeFactory("ResourceId");
|
|
@@ -38,7 +38,7 @@ export const asWorkflowId = makeFactory("WorkflowId");
|
|
|
38
38
|
export const asWorkflowSpecId = makeFactory("WorkflowSpecId");
|
|
39
39
|
// Batch helpers
|
|
40
40
|
export const asResourceTypeIds = (xs) => xs.map(asResourceTypeId);
|
|
41
|
-
export const
|
|
41
|
+
export const asRoleIds = (xs) => xs.map(asRoleId);
|
|
42
42
|
export const asExecutionIds = (xs) => xs.map(asExecutionId);
|
|
43
43
|
export const asResourceIds = (xs) => xs.map(asResourceId);
|
|
44
44
|
export const asWorkStepIds = (xs) => xs.map(asWorkStepId);
|
|
@@ -331,9 +331,9 @@ async function main() {
|
|
|
331
331
|
});
|
|
332
332
|
// Post-process map-like interfaces to enforce key constraints via template literal Id types.
|
|
333
333
|
// Replace index-signature interfaces with Record<IdType, ValueType> so object literal keys are checked.
|
|
334
|
-
ts = ts.replace(/export interface RoleMap\s*{[^}]*}/g, 'export type RoleMap = Record<
|
|
335
|
-
ts = ts.replace(/export interface RoleBindingMap\s*{[^}]*}/g, 'export type RoleBindingMap = Record<
|
|
336
|
-
ts = ts.replace(/export interface ResourceMap\s*\{[^}]*\{[^}]*\}[^}]*\}/gs, 'export type ResourceMap = Record<ExecutionId, Record<
|
|
334
|
+
ts = ts.replace(/export interface RoleMap\s*{[^}]*}/g, 'export type RoleMap = Record<RoleId, RoleLiteral>;');
|
|
335
|
+
ts = ts.replace(/export interface RoleBindingMap\s*{[^}]*}/g, 'export type RoleBindingMap = Record<RoleId, ResourceId>;');
|
|
336
|
+
ts = ts.replace(/export interface ResourceMap\s*\{[^}]*\{[^}]*\}[^}]*\}/gs, 'export type ResourceMap = Record<ExecutionId, Record<RoleId, ResourcePotentialInput | ResourcePotentialOutput | ResourceData>>;');
|
|
337
337
|
parts.push(ts);
|
|
338
338
|
let output = parts.join('\n');
|
|
339
339
|
// Final guard: strip any lingering `[k: string]: unknown;` that might have been
|
package/package.json
CHANGED
|
@@ -1,48 +1,53 @@
|
|
|
1
1
|
{
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
"
|
|
7
|
-
"
|
|
8
|
-
"
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
"
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
"
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
"
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
"extractSchemas": "node ./dist/scripts/extractSchemas.js",
|
|
30
|
-
"extractSubschema": "node ./dist/scripts/extractSubschemaWithDefs.js",
|
|
31
|
-
"generateTypes": "node ./dist/scripts/generateTypes.js",
|
|
32
|
-
"generateResourceData": "node ./dist/scripts/generateResourceData.js",
|
|
33
|
-
"update": "rimraf /s /q dist && pnpm run build:scripts && pnpm run extractSchemas -- --in src/genesis/Genesis.json --out src/schemas/Genesis.json --id 'https://schemas.toolproof.com/v0/Genesis.json' && pnpm run extractSubschema -- --name Job && pnpm run generateTypes && pnpm run generateResourceData -- --name Job && pnpm run build"
|
|
34
|
-
},
|
|
35
|
-
"files": [
|
|
36
|
-
"dist",
|
|
37
|
-
"README.md"
|
|
38
|
-
],
|
|
39
|
-
"devDependencies": {
|
|
40
|
-
"@apidevtools/json-schema-ref-parser": "^14.2.1",
|
|
41
|
-
"@types/node": "^20.8.1",
|
|
42
|
-
"ajv-cli": "^5.0.0",
|
|
43
|
-
"ajv-formats": "^3.0.1",
|
|
44
|
-
"json-schema-to-typescript": "^15.0.4",
|
|
45
|
-
"rimraf": "^5.0.0",
|
|
46
|
-
"typescript": "^5.0.0"
|
|
2
|
+
"name": "@toolproof-npm/schema",
|
|
3
|
+
"version": "0.1.30",
|
|
4
|
+
"description": "JSON schemas and TypeScript types for ToolProof",
|
|
5
|
+
"keywords": [
|
|
6
|
+
"toolproof",
|
|
7
|
+
"schemas",
|
|
8
|
+
"json-schema",
|
|
9
|
+
"typescript"
|
|
10
|
+
],
|
|
11
|
+
"author": "ToolProof Team",
|
|
12
|
+
"license": "MIT",
|
|
13
|
+
"repository": {
|
|
14
|
+
"type": "git",
|
|
15
|
+
"url": "https://github.com/ToolProof/core.git",
|
|
16
|
+
"directory": "packages/_schemas"
|
|
17
|
+
},
|
|
18
|
+
"homepage": "https://github.com/ToolProof/core#readme",
|
|
19
|
+
"bugs": {
|
|
20
|
+
"url": "https://github.com/ToolProof/core/issues"
|
|
21
|
+
},
|
|
22
|
+
"type": "module",
|
|
23
|
+
"main": "dist/index.js",
|
|
24
|
+
"types": "dist/index.d.ts",
|
|
25
|
+
"exports": {
|
|
26
|
+
".": {
|
|
27
|
+
"import": "./dist/index.js",
|
|
28
|
+
"types": "./dist/index.d.ts"
|
|
47
29
|
}
|
|
30
|
+
},
|
|
31
|
+
"files": [
|
|
32
|
+
"dist",
|
|
33
|
+
"README.md"
|
|
34
|
+
],
|
|
35
|
+
"devDependencies": {
|
|
36
|
+
"@apidevtools/json-schema-ref-parser": "^14.2.1",
|
|
37
|
+
"@types/node": "^20.8.1",
|
|
38
|
+
"ajv-cli": "^5.0.0",
|
|
39
|
+
"ajv-formats": "^3.0.1",
|
|
40
|
+
"json-schema-to-typescript": "^15.0.4",
|
|
41
|
+
"rimraf": "^5.0.0",
|
|
42
|
+
"typescript": "^5.0.0"
|
|
43
|
+
},
|
|
44
|
+
"scripts": {
|
|
45
|
+
"build": "tsc -b",
|
|
46
|
+
"build:scripts": "tsc -p tsconfig.scripts.json",
|
|
47
|
+
"extractSchemas": "node ./dist/scripts/extractSchemas.js",
|
|
48
|
+
"extractSubschema": "node ./dist/scripts/extractSubschemaWithDefs.js",
|
|
49
|
+
"generateTypes": "node ./dist/scripts/generateTypes.js",
|
|
50
|
+
"generateResourceData": "node ./dist/scripts/generateResourceData.js",
|
|
51
|
+
"update": "rimraf /s /q dist && pnpm run build:scripts && pnpm run extractSchemas -- --in src/genesis/Genesis.json --out src/schemas/Genesis.json --id 'https://schemas.toolproof.com/v0/Genesis.json' && pnpm run extractSubschema -- --name Job && pnpm run generateTypes && pnpm run generateResourceData -- --name Job && pnpm run build"
|
|
52
|
+
}
|
|
48
53
|
}
|