@crowdstrike/aidr 1.0.2

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.
Files changed (51) hide show
  1. package/.editorconfig +9 -0
  2. package/.github/CODEOWNERS +1 -0
  3. package/.github/workflows/ci.yml +128 -0
  4. package/.pnpmfile.cjs +17 -0
  5. package/.releaserc.json +21 -0
  6. package/LICENSE.txt +21 -0
  7. package/README.md +3 -0
  8. package/biome.json +67 -0
  9. package/dist/chunk.cjs +34 -0
  10. package/dist/index.cjs +356 -0
  11. package/dist/index.d.cts +2347 -0
  12. package/dist/index.d.mts +2347 -0
  13. package/dist/index.mjs +354 -0
  14. package/dist/schemas/ai-guard.cjs +1000 -0
  15. package/dist/schemas/ai-guard.d.cts +1232 -0
  16. package/dist/schemas/ai-guard.d.mts +1232 -0
  17. package/dist/schemas/ai-guard.mjs +907 -0
  18. package/dist/schemas/index.cjs +7 -0
  19. package/dist/schemas/index.d.cts +64 -0
  20. package/dist/schemas/index.d.mts +64 -0
  21. package/dist/schemas/index.mjs +3 -0
  22. package/dist/schemas.cjs +139 -0
  23. package/dist/schemas.mjs +108 -0
  24. package/flake.lock +59 -0
  25. package/flake.nix +26 -0
  26. package/openapi-ts.config.ts +15 -0
  27. package/package.json +55 -0
  28. package/pnpm-workspace.yaml +3 -0
  29. package/scripts/generate-models +15 -0
  30. package/scripts/test +10 -0
  31. package/specs/ai-guard.openapi.json +3721 -0
  32. package/src/client.ts +441 -0
  33. package/src/core/error.ts +78 -0
  34. package/src/index.ts +2 -0
  35. package/src/internal/builtin-types.ts +18 -0
  36. package/src/internal/errors.ts +34 -0
  37. package/src/internal/headers.ts +100 -0
  38. package/src/internal/parse.ts +30 -0
  39. package/src/internal/request-options.ts +57 -0
  40. package/src/internal/types.ts +3 -0
  41. package/src/internal/utils/sleep.ts +3 -0
  42. package/src/internal/utils/values.ts +38 -0
  43. package/src/schemas/ai-guard.ts +1215 -0
  44. package/src/schemas/index.ts +114 -0
  45. package/src/services/ai-guard.ts +27 -0
  46. package/src/types/ai-guard.ts +2276 -0
  47. package/src/types/index.ts +161 -0
  48. package/tests/ai-guard.test.ts +29 -0
  49. package/tsconfig.json +26 -0
  50. package/tsdown.config.mts +14 -0
  51. package/vitest.config.mts +4 -0
@@ -0,0 +1,7 @@
1
+ const require_schemas = require('../schemas.cjs');
2
+
3
+ exports.APIResponseSchema = require_schemas.APIResponseSchema;
4
+ exports.AcceptedResponseSchema = require_schemas.AcceptedResponseSchema;
5
+ exports.ErrorCodeSchema = require_schemas.ErrorCodeSchema;
6
+ exports.ErrorResponseSchema = require_schemas.ErrorResponseSchema;
7
+ exports.SuccessResponseSchema = require_schemas.SuccessResponseSchema;
@@ -0,0 +1,64 @@
1
+ import * as v from "valibot";
2
+
3
+ //#region src/schemas/index.d.ts
4
+ declare const ErrorCodeSchema: v.PicklistSchema<["FieldRequired", "InvalidString", "InvalidNumber", "InvalidInteger", "InvalidObject", "InvalidArray", "InvalidNull", "InvalidBool", "BadFormat", "BadFormatPangeaDuration", "BadFormatDateTime", "BadFormatTime", "BadFormatDate", "BadFormatEmail", "BadFormatHostname", "BadFormatIPv4", "BadFormatIPv6", "BadFormatIPAddress", "BadFormatUUID", "BadFormatURI", "BadFormatURIReference", "BadFormatIRI", "BadFormatIRIReference", "BadFormatJSONPointer", "BadFormatRelativeJSONPointer", "BadFormatRegex", "BadFormatJSONPath", "BadFormatBase64", "DoesNotMatchPattern", "DoesNotMatchPatternProperties", "NotEnumMember", "AboveMaxLength", "BelowMinLength", "AboveMaxItems", "BelowMinItems", "NotMultipleOf", "NotWithinRange", "UnexpectedProperty", "InvalidPropertyName", "AboveMaxProperties", "BelowMinProperties", "NotContains", "ContainsTooMany", "ContainsTooFew", "ItemNotUnique", "UnexpectedAdditionalItem", "InvalidConst", "IsDependentOn", "IsTooBig", "IsTooSmall", "ShouldNotBeValid", "NoUnevaluatedItems", "NoUnevaluatedProperties", "DoesNotExist", "IsReadOnly", "CannotAddToDefault", "MustProvideOne", "MutuallyExclusive", "BadState", "InaccessibleURI", "ProviderDisabled", "ConfigProjectMismatch", "ConfigServiceMismatch", "ConfigNotExist"], undefined>;
5
+ declare const AcceptedResponseSchema: v.ObjectSchema<{
6
+ readonly status: v.LiteralSchema<"Accepted", undefined>;
7
+ readonly result: v.ObjectSchema<{
8
+ readonly ttl_mins: v.NumberSchema<undefined>;
9
+ readonly retry_counter: v.NumberSchema<undefined>;
10
+ readonly location: v.StringSchema<undefined>;
11
+ }, undefined>;
12
+ readonly request_id: v.StringSchema<undefined>;
13
+ readonly request_time: v.StringSchema<undefined>;
14
+ readonly response_time: v.StringSchema<undefined>;
15
+ }, undefined>;
16
+ declare const ErrorResponseSchema: v.ObjectSchema<{
17
+ readonly status: v.StringSchema<undefined>;
18
+ readonly result: v.NullableSchema<v.ArraySchema<v.ObjectSchema<{
19
+ readonly code: v.PicklistSchema<["FieldRequired", "InvalidString", "InvalidNumber", "InvalidInteger", "InvalidObject", "InvalidArray", "InvalidNull", "InvalidBool", "BadFormat", "BadFormatPangeaDuration", "BadFormatDateTime", "BadFormatTime", "BadFormatDate", "BadFormatEmail", "BadFormatHostname", "BadFormatIPv4", "BadFormatIPv6", "BadFormatIPAddress", "BadFormatUUID", "BadFormatURI", "BadFormatURIReference", "BadFormatIRI", "BadFormatIRIReference", "BadFormatJSONPointer", "BadFormatRelativeJSONPointer", "BadFormatRegex", "BadFormatJSONPath", "BadFormatBase64", "DoesNotMatchPattern", "DoesNotMatchPatternProperties", "NotEnumMember", "AboveMaxLength", "BelowMinLength", "AboveMaxItems", "BelowMinItems", "NotMultipleOf", "NotWithinRange", "UnexpectedProperty", "InvalidPropertyName", "AboveMaxProperties", "BelowMinProperties", "NotContains", "ContainsTooMany", "ContainsTooFew", "ItemNotUnique", "UnexpectedAdditionalItem", "InvalidConst", "IsDependentOn", "IsTooBig", "IsTooSmall", "ShouldNotBeValid", "NoUnevaluatedItems", "NoUnevaluatedProperties", "DoesNotExist", "IsReadOnly", "CannotAddToDefault", "MustProvideOne", "MutuallyExclusive", "BadState", "InaccessibleURI", "ProviderDisabled", "ConfigProjectMismatch", "ConfigServiceMismatch", "ConfigNotExist"], undefined>;
20
+ readonly detail: v.StringSchema<undefined>;
21
+ readonly source: v.StringSchema<undefined>;
22
+ readonly path: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
23
+ }, undefined>, undefined>, undefined>;
24
+ readonly request_id: v.StringSchema<undefined>;
25
+ readonly request_time: v.StringSchema<undefined>;
26
+ readonly response_time: v.StringSchema<undefined>;
27
+ }, undefined>;
28
+ declare const SuccessResponseSchema: <T extends v.GenericSchema>(resultSchema: T) => v.ObjectSchema<{
29
+ readonly status: v.LiteralSchema<"Success", undefined>;
30
+ readonly result: T;
31
+ readonly request_id: v.StringSchema<undefined>;
32
+ readonly request_time: v.StringSchema<undefined>;
33
+ readonly response_time: v.StringSchema<undefined>;
34
+ }, undefined>;
35
+ declare const APIResponseSchema: <T extends v.GenericSchema>(resultSchema: T) => v.UnionSchema<[v.ObjectSchema<{
36
+ readonly status: v.LiteralSchema<"Accepted", undefined>;
37
+ readonly result: v.ObjectSchema<{
38
+ readonly ttl_mins: v.NumberSchema<undefined>;
39
+ readonly retry_counter: v.NumberSchema<undefined>;
40
+ readonly location: v.StringSchema<undefined>;
41
+ }, undefined>;
42
+ readonly request_id: v.StringSchema<undefined>;
43
+ readonly request_time: v.StringSchema<undefined>;
44
+ readonly response_time: v.StringSchema<undefined>;
45
+ }, undefined>, v.ObjectSchema<{
46
+ readonly status: v.LiteralSchema<"Success", undefined>;
47
+ readonly result: T;
48
+ readonly request_id: v.StringSchema<undefined>;
49
+ readonly request_time: v.StringSchema<undefined>;
50
+ readonly response_time: v.StringSchema<undefined>;
51
+ }, undefined>, v.ObjectSchema<{
52
+ readonly status: v.StringSchema<undefined>;
53
+ readonly result: v.NullableSchema<v.ArraySchema<v.ObjectSchema<{
54
+ readonly code: v.PicklistSchema<["FieldRequired", "InvalidString", "InvalidNumber", "InvalidInteger", "InvalidObject", "InvalidArray", "InvalidNull", "InvalidBool", "BadFormat", "BadFormatPangeaDuration", "BadFormatDateTime", "BadFormatTime", "BadFormatDate", "BadFormatEmail", "BadFormatHostname", "BadFormatIPv4", "BadFormatIPv6", "BadFormatIPAddress", "BadFormatUUID", "BadFormatURI", "BadFormatURIReference", "BadFormatIRI", "BadFormatIRIReference", "BadFormatJSONPointer", "BadFormatRelativeJSONPointer", "BadFormatRegex", "BadFormatJSONPath", "BadFormatBase64", "DoesNotMatchPattern", "DoesNotMatchPatternProperties", "NotEnumMember", "AboveMaxLength", "BelowMinLength", "AboveMaxItems", "BelowMinItems", "NotMultipleOf", "NotWithinRange", "UnexpectedProperty", "InvalidPropertyName", "AboveMaxProperties", "BelowMinProperties", "NotContains", "ContainsTooMany", "ContainsTooFew", "ItemNotUnique", "UnexpectedAdditionalItem", "InvalidConst", "IsDependentOn", "IsTooBig", "IsTooSmall", "ShouldNotBeValid", "NoUnevaluatedItems", "NoUnevaluatedProperties", "DoesNotExist", "IsReadOnly", "CannotAddToDefault", "MustProvideOne", "MutuallyExclusive", "BadState", "InaccessibleURI", "ProviderDisabled", "ConfigProjectMismatch", "ConfigServiceMismatch", "ConfigNotExist"], undefined>;
55
+ readonly detail: v.StringSchema<undefined>;
56
+ readonly source: v.StringSchema<undefined>;
57
+ readonly path: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
58
+ }, undefined>, undefined>, undefined>;
59
+ readonly request_id: v.StringSchema<undefined>;
60
+ readonly request_time: v.StringSchema<undefined>;
61
+ readonly response_time: v.StringSchema<undefined>;
62
+ }, undefined>], undefined>;
63
+ //#endregion
64
+ export { APIResponseSchema, AcceptedResponseSchema, ErrorCodeSchema, ErrorResponseSchema, SuccessResponseSchema };
@@ -0,0 +1,64 @@
1
+ import * as v from "valibot";
2
+
3
+ //#region src/schemas/index.d.ts
4
+ declare const ErrorCodeSchema: v.PicklistSchema<["FieldRequired", "InvalidString", "InvalidNumber", "InvalidInteger", "InvalidObject", "InvalidArray", "InvalidNull", "InvalidBool", "BadFormat", "BadFormatPangeaDuration", "BadFormatDateTime", "BadFormatTime", "BadFormatDate", "BadFormatEmail", "BadFormatHostname", "BadFormatIPv4", "BadFormatIPv6", "BadFormatIPAddress", "BadFormatUUID", "BadFormatURI", "BadFormatURIReference", "BadFormatIRI", "BadFormatIRIReference", "BadFormatJSONPointer", "BadFormatRelativeJSONPointer", "BadFormatRegex", "BadFormatJSONPath", "BadFormatBase64", "DoesNotMatchPattern", "DoesNotMatchPatternProperties", "NotEnumMember", "AboveMaxLength", "BelowMinLength", "AboveMaxItems", "BelowMinItems", "NotMultipleOf", "NotWithinRange", "UnexpectedProperty", "InvalidPropertyName", "AboveMaxProperties", "BelowMinProperties", "NotContains", "ContainsTooMany", "ContainsTooFew", "ItemNotUnique", "UnexpectedAdditionalItem", "InvalidConst", "IsDependentOn", "IsTooBig", "IsTooSmall", "ShouldNotBeValid", "NoUnevaluatedItems", "NoUnevaluatedProperties", "DoesNotExist", "IsReadOnly", "CannotAddToDefault", "MustProvideOne", "MutuallyExclusive", "BadState", "InaccessibleURI", "ProviderDisabled", "ConfigProjectMismatch", "ConfigServiceMismatch", "ConfigNotExist"], undefined>;
5
+ declare const AcceptedResponseSchema: v.ObjectSchema<{
6
+ readonly status: v.LiteralSchema<"Accepted", undefined>;
7
+ readonly result: v.ObjectSchema<{
8
+ readonly ttl_mins: v.NumberSchema<undefined>;
9
+ readonly retry_counter: v.NumberSchema<undefined>;
10
+ readonly location: v.StringSchema<undefined>;
11
+ }, undefined>;
12
+ readonly request_id: v.StringSchema<undefined>;
13
+ readonly request_time: v.StringSchema<undefined>;
14
+ readonly response_time: v.StringSchema<undefined>;
15
+ }, undefined>;
16
+ declare const ErrorResponseSchema: v.ObjectSchema<{
17
+ readonly status: v.StringSchema<undefined>;
18
+ readonly result: v.NullableSchema<v.ArraySchema<v.ObjectSchema<{
19
+ readonly code: v.PicklistSchema<["FieldRequired", "InvalidString", "InvalidNumber", "InvalidInteger", "InvalidObject", "InvalidArray", "InvalidNull", "InvalidBool", "BadFormat", "BadFormatPangeaDuration", "BadFormatDateTime", "BadFormatTime", "BadFormatDate", "BadFormatEmail", "BadFormatHostname", "BadFormatIPv4", "BadFormatIPv6", "BadFormatIPAddress", "BadFormatUUID", "BadFormatURI", "BadFormatURIReference", "BadFormatIRI", "BadFormatIRIReference", "BadFormatJSONPointer", "BadFormatRelativeJSONPointer", "BadFormatRegex", "BadFormatJSONPath", "BadFormatBase64", "DoesNotMatchPattern", "DoesNotMatchPatternProperties", "NotEnumMember", "AboveMaxLength", "BelowMinLength", "AboveMaxItems", "BelowMinItems", "NotMultipleOf", "NotWithinRange", "UnexpectedProperty", "InvalidPropertyName", "AboveMaxProperties", "BelowMinProperties", "NotContains", "ContainsTooMany", "ContainsTooFew", "ItemNotUnique", "UnexpectedAdditionalItem", "InvalidConst", "IsDependentOn", "IsTooBig", "IsTooSmall", "ShouldNotBeValid", "NoUnevaluatedItems", "NoUnevaluatedProperties", "DoesNotExist", "IsReadOnly", "CannotAddToDefault", "MustProvideOne", "MutuallyExclusive", "BadState", "InaccessibleURI", "ProviderDisabled", "ConfigProjectMismatch", "ConfigServiceMismatch", "ConfigNotExist"], undefined>;
20
+ readonly detail: v.StringSchema<undefined>;
21
+ readonly source: v.StringSchema<undefined>;
22
+ readonly path: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
23
+ }, undefined>, undefined>, undefined>;
24
+ readonly request_id: v.StringSchema<undefined>;
25
+ readonly request_time: v.StringSchema<undefined>;
26
+ readonly response_time: v.StringSchema<undefined>;
27
+ }, undefined>;
28
+ declare const SuccessResponseSchema: <T extends v.GenericSchema>(resultSchema: T) => v.ObjectSchema<{
29
+ readonly status: v.LiteralSchema<"Success", undefined>;
30
+ readonly result: T;
31
+ readonly request_id: v.StringSchema<undefined>;
32
+ readonly request_time: v.StringSchema<undefined>;
33
+ readonly response_time: v.StringSchema<undefined>;
34
+ }, undefined>;
35
+ declare const APIResponseSchema: <T extends v.GenericSchema>(resultSchema: T) => v.UnionSchema<[v.ObjectSchema<{
36
+ readonly status: v.LiteralSchema<"Accepted", undefined>;
37
+ readonly result: v.ObjectSchema<{
38
+ readonly ttl_mins: v.NumberSchema<undefined>;
39
+ readonly retry_counter: v.NumberSchema<undefined>;
40
+ readonly location: v.StringSchema<undefined>;
41
+ }, undefined>;
42
+ readonly request_id: v.StringSchema<undefined>;
43
+ readonly request_time: v.StringSchema<undefined>;
44
+ readonly response_time: v.StringSchema<undefined>;
45
+ }, undefined>, v.ObjectSchema<{
46
+ readonly status: v.LiteralSchema<"Success", undefined>;
47
+ readonly result: T;
48
+ readonly request_id: v.StringSchema<undefined>;
49
+ readonly request_time: v.StringSchema<undefined>;
50
+ readonly response_time: v.StringSchema<undefined>;
51
+ }, undefined>, v.ObjectSchema<{
52
+ readonly status: v.StringSchema<undefined>;
53
+ readonly result: v.NullableSchema<v.ArraySchema<v.ObjectSchema<{
54
+ readonly code: v.PicklistSchema<["FieldRequired", "InvalidString", "InvalidNumber", "InvalidInteger", "InvalidObject", "InvalidArray", "InvalidNull", "InvalidBool", "BadFormat", "BadFormatPangeaDuration", "BadFormatDateTime", "BadFormatTime", "BadFormatDate", "BadFormatEmail", "BadFormatHostname", "BadFormatIPv4", "BadFormatIPv6", "BadFormatIPAddress", "BadFormatUUID", "BadFormatURI", "BadFormatURIReference", "BadFormatIRI", "BadFormatIRIReference", "BadFormatJSONPointer", "BadFormatRelativeJSONPointer", "BadFormatRegex", "BadFormatJSONPath", "BadFormatBase64", "DoesNotMatchPattern", "DoesNotMatchPatternProperties", "NotEnumMember", "AboveMaxLength", "BelowMinLength", "AboveMaxItems", "BelowMinItems", "NotMultipleOf", "NotWithinRange", "UnexpectedProperty", "InvalidPropertyName", "AboveMaxProperties", "BelowMinProperties", "NotContains", "ContainsTooMany", "ContainsTooFew", "ItemNotUnique", "UnexpectedAdditionalItem", "InvalidConst", "IsDependentOn", "IsTooBig", "IsTooSmall", "ShouldNotBeValid", "NoUnevaluatedItems", "NoUnevaluatedProperties", "DoesNotExist", "IsReadOnly", "CannotAddToDefault", "MustProvideOne", "MutuallyExclusive", "BadState", "InaccessibleURI", "ProviderDisabled", "ConfigProjectMismatch", "ConfigServiceMismatch", "ConfigNotExist"], undefined>;
55
+ readonly detail: v.StringSchema<undefined>;
56
+ readonly source: v.StringSchema<undefined>;
57
+ readonly path: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
58
+ }, undefined>, undefined>, undefined>;
59
+ readonly request_id: v.StringSchema<undefined>;
60
+ readonly request_time: v.StringSchema<undefined>;
61
+ readonly response_time: v.StringSchema<undefined>;
62
+ }, undefined>], undefined>;
63
+ //#endregion
64
+ export { APIResponseSchema, AcceptedResponseSchema, ErrorCodeSchema, ErrorResponseSchema, SuccessResponseSchema };
@@ -0,0 +1,3 @@
1
+ import { a as SuccessResponseSchema, i as ErrorResponseSchema, n as AcceptedResponseSchema, r as ErrorCodeSchema, t as APIResponseSchema } from "../schemas.mjs";
2
+
3
+ export { APIResponseSchema, AcceptedResponseSchema, ErrorCodeSchema, ErrorResponseSchema, SuccessResponseSchema };
@@ -0,0 +1,139 @@
1
+ const require_chunk = require('./chunk.cjs');
2
+ let valibot = require("valibot");
3
+ valibot = require_chunk.__toESM(valibot);
4
+
5
+ //#region src/schemas/index.ts
6
+ const BaseAPIResponseSchema = {
7
+ request_id: valibot.string(),
8
+ request_time: valibot.string(),
9
+ response_time: valibot.string(),
10
+ status: valibot.string()
11
+ };
12
+ const ErrorCodeSchema = valibot.picklist([
13
+ "FieldRequired",
14
+ "InvalidString",
15
+ "InvalidNumber",
16
+ "InvalidInteger",
17
+ "InvalidObject",
18
+ "InvalidArray",
19
+ "InvalidNull",
20
+ "InvalidBool",
21
+ "BadFormat",
22
+ "BadFormatPangeaDuration",
23
+ "BadFormatDateTime",
24
+ "BadFormatTime",
25
+ "BadFormatDate",
26
+ "BadFormatEmail",
27
+ "BadFormatHostname",
28
+ "BadFormatIPv4",
29
+ "BadFormatIPv6",
30
+ "BadFormatIPAddress",
31
+ "BadFormatUUID",
32
+ "BadFormatURI",
33
+ "BadFormatURIReference",
34
+ "BadFormatIRI",
35
+ "BadFormatIRIReference",
36
+ "BadFormatJSONPointer",
37
+ "BadFormatRelativeJSONPointer",
38
+ "BadFormatRegex",
39
+ "BadFormatJSONPath",
40
+ "BadFormatBase64",
41
+ "DoesNotMatchPattern",
42
+ "DoesNotMatchPatternProperties",
43
+ "NotEnumMember",
44
+ "AboveMaxLength",
45
+ "BelowMinLength",
46
+ "AboveMaxItems",
47
+ "BelowMinItems",
48
+ "NotMultipleOf",
49
+ "NotWithinRange",
50
+ "UnexpectedProperty",
51
+ "InvalidPropertyName",
52
+ "AboveMaxProperties",
53
+ "BelowMinProperties",
54
+ "NotContains",
55
+ "ContainsTooMany",
56
+ "ContainsTooFew",
57
+ "ItemNotUnique",
58
+ "UnexpectedAdditionalItem",
59
+ "InvalidConst",
60
+ "IsDependentOn",
61
+ "IsTooBig",
62
+ "IsTooSmall",
63
+ "ShouldNotBeValid",
64
+ "NoUnevaluatedItems",
65
+ "NoUnevaluatedProperties",
66
+ "DoesNotExist",
67
+ "IsReadOnly",
68
+ "CannotAddToDefault",
69
+ "MustProvideOne",
70
+ "MutuallyExclusive",
71
+ "BadState",
72
+ "InaccessibleURI",
73
+ "ProviderDisabled",
74
+ "ConfigProjectMismatch",
75
+ "ConfigServiceMismatch",
76
+ "ConfigNotExist"
77
+ ]);
78
+ const ErrorDetailSchema = valibot.object({
79
+ code: ErrorCodeSchema,
80
+ detail: valibot.string(),
81
+ source: valibot.string(),
82
+ path: valibot.optional(valibot.string())
83
+ });
84
+ const AcceptedResponseSchema = valibot.object({
85
+ ...BaseAPIResponseSchema,
86
+ status: valibot.literal("Accepted"),
87
+ result: valibot.object({
88
+ ttl_mins: valibot.number(),
89
+ retry_counter: valibot.number(),
90
+ location: valibot.string()
91
+ })
92
+ });
93
+ const ErrorResponseSchema = valibot.object({
94
+ ...BaseAPIResponseSchema,
95
+ status: valibot.string(),
96
+ result: valibot.nullable(valibot.array(ErrorDetailSchema))
97
+ });
98
+ const SuccessResponseSchema = (resultSchema) => valibot.object({
99
+ ...BaseAPIResponseSchema,
100
+ status: valibot.literal("Success"),
101
+ result: resultSchema
102
+ });
103
+ const APIResponseSchema = (resultSchema) => valibot.union([
104
+ AcceptedResponseSchema,
105
+ SuccessResponseSchema(resultSchema),
106
+ ErrorResponseSchema
107
+ ]);
108
+
109
+ //#endregion
110
+ Object.defineProperty(exports, 'APIResponseSchema', {
111
+ enumerable: true,
112
+ get: function () {
113
+ return APIResponseSchema;
114
+ }
115
+ });
116
+ Object.defineProperty(exports, 'AcceptedResponseSchema', {
117
+ enumerable: true,
118
+ get: function () {
119
+ return AcceptedResponseSchema;
120
+ }
121
+ });
122
+ Object.defineProperty(exports, 'ErrorCodeSchema', {
123
+ enumerable: true,
124
+ get: function () {
125
+ return ErrorCodeSchema;
126
+ }
127
+ });
128
+ Object.defineProperty(exports, 'ErrorResponseSchema', {
129
+ enumerable: true,
130
+ get: function () {
131
+ return ErrorResponseSchema;
132
+ }
133
+ });
134
+ Object.defineProperty(exports, 'SuccessResponseSchema', {
135
+ enumerable: true,
136
+ get: function () {
137
+ return SuccessResponseSchema;
138
+ }
139
+ });
@@ -0,0 +1,108 @@
1
+ import * as v from "valibot";
2
+
3
+ //#region src/schemas/index.ts
4
+ const BaseAPIResponseSchema = {
5
+ request_id: v.string(),
6
+ request_time: v.string(),
7
+ response_time: v.string(),
8
+ status: v.string()
9
+ };
10
+ const ErrorCodeSchema = v.picklist([
11
+ "FieldRequired",
12
+ "InvalidString",
13
+ "InvalidNumber",
14
+ "InvalidInteger",
15
+ "InvalidObject",
16
+ "InvalidArray",
17
+ "InvalidNull",
18
+ "InvalidBool",
19
+ "BadFormat",
20
+ "BadFormatPangeaDuration",
21
+ "BadFormatDateTime",
22
+ "BadFormatTime",
23
+ "BadFormatDate",
24
+ "BadFormatEmail",
25
+ "BadFormatHostname",
26
+ "BadFormatIPv4",
27
+ "BadFormatIPv6",
28
+ "BadFormatIPAddress",
29
+ "BadFormatUUID",
30
+ "BadFormatURI",
31
+ "BadFormatURIReference",
32
+ "BadFormatIRI",
33
+ "BadFormatIRIReference",
34
+ "BadFormatJSONPointer",
35
+ "BadFormatRelativeJSONPointer",
36
+ "BadFormatRegex",
37
+ "BadFormatJSONPath",
38
+ "BadFormatBase64",
39
+ "DoesNotMatchPattern",
40
+ "DoesNotMatchPatternProperties",
41
+ "NotEnumMember",
42
+ "AboveMaxLength",
43
+ "BelowMinLength",
44
+ "AboveMaxItems",
45
+ "BelowMinItems",
46
+ "NotMultipleOf",
47
+ "NotWithinRange",
48
+ "UnexpectedProperty",
49
+ "InvalidPropertyName",
50
+ "AboveMaxProperties",
51
+ "BelowMinProperties",
52
+ "NotContains",
53
+ "ContainsTooMany",
54
+ "ContainsTooFew",
55
+ "ItemNotUnique",
56
+ "UnexpectedAdditionalItem",
57
+ "InvalidConst",
58
+ "IsDependentOn",
59
+ "IsTooBig",
60
+ "IsTooSmall",
61
+ "ShouldNotBeValid",
62
+ "NoUnevaluatedItems",
63
+ "NoUnevaluatedProperties",
64
+ "DoesNotExist",
65
+ "IsReadOnly",
66
+ "CannotAddToDefault",
67
+ "MustProvideOne",
68
+ "MutuallyExclusive",
69
+ "BadState",
70
+ "InaccessibleURI",
71
+ "ProviderDisabled",
72
+ "ConfigProjectMismatch",
73
+ "ConfigServiceMismatch",
74
+ "ConfigNotExist"
75
+ ]);
76
+ const ErrorDetailSchema = v.object({
77
+ code: ErrorCodeSchema,
78
+ detail: v.string(),
79
+ source: v.string(),
80
+ path: v.optional(v.string())
81
+ });
82
+ const AcceptedResponseSchema = v.object({
83
+ ...BaseAPIResponseSchema,
84
+ status: v.literal("Accepted"),
85
+ result: v.object({
86
+ ttl_mins: v.number(),
87
+ retry_counter: v.number(),
88
+ location: v.string()
89
+ })
90
+ });
91
+ const ErrorResponseSchema = v.object({
92
+ ...BaseAPIResponseSchema,
93
+ status: v.string(),
94
+ result: v.nullable(v.array(ErrorDetailSchema))
95
+ });
96
+ const SuccessResponseSchema = (resultSchema) => v.object({
97
+ ...BaseAPIResponseSchema,
98
+ status: v.literal("Success"),
99
+ result: resultSchema
100
+ });
101
+ const APIResponseSchema = (resultSchema) => v.union([
102
+ AcceptedResponseSchema,
103
+ SuccessResponseSchema(resultSchema),
104
+ ErrorResponseSchema
105
+ ]);
106
+
107
+ //#endregion
108
+ export { SuccessResponseSchema as a, ErrorResponseSchema as i, AcceptedResponseSchema as n, ErrorCodeSchema as r, APIResponseSchema as t };
package/flake.lock ADDED
@@ -0,0 +1,59 @@
1
+ {
2
+ "nodes": {
3
+ "flake-utils": {
4
+ "inputs": {
5
+ "systems": "systems"
6
+ },
7
+ "locked": {
8
+ "lastModified": 1731533236,
9
+ "narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=",
10
+ "owner": "numtide",
11
+ "repo": "flake-utils",
12
+ "rev": "11707dc2f618dd54ca8739b309ec4fc024de578b",
13
+ "type": "github"
14
+ },
15
+ "original": {
16
+ "owner": "numtide",
17
+ "repo": "flake-utils",
18
+ "type": "github"
19
+ }
20
+ },
21
+ "nixpkgs": {
22
+ "locked": {
23
+ "lastModified": 1764517877,
24
+ "narHash": "sha256-pp3uT4hHijIC8JUK5MEqeAWmParJrgBVzHLNfJDZxg4=",
25
+ "rev": "2d293cbfa5a793b4c50d17c05ef9e385b90edf6c",
26
+ "revCount": 904649,
27
+ "type": "tarball",
28
+ "url": "https://api.flakehub.com/f/pinned/NixOS/nixpkgs/0.1.904649%2Brev-2d293cbfa5a793b4c50d17c05ef9e385b90edf6c/019ad7f2-e8f3-79e9-ad92-dd7a45c069d3/source.tar.gz"
29
+ },
30
+ "original": {
31
+ "type": "tarball",
32
+ "url": "https://flakehub.com/f/NixOS/nixpkgs/0.1"
33
+ }
34
+ },
35
+ "root": {
36
+ "inputs": {
37
+ "flake-utils": "flake-utils",
38
+ "nixpkgs": "nixpkgs"
39
+ }
40
+ },
41
+ "systems": {
42
+ "locked": {
43
+ "lastModified": 1681028828,
44
+ "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
45
+ "owner": "nix-systems",
46
+ "repo": "default",
47
+ "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
48
+ "type": "github"
49
+ },
50
+ "original": {
51
+ "owner": "nix-systems",
52
+ "repo": "default",
53
+ "type": "github"
54
+ }
55
+ }
56
+ },
57
+ "root": "root",
58
+ "version": 7
59
+ }
package/flake.nix ADDED
@@ -0,0 +1,26 @@
1
+ {
2
+ inputs = {
3
+ nixpkgs.url = "https://flakehub.com/f/NixOS/nixpkgs/0.1";
4
+ flake-utils.url = "github:numtide/flake-utils";
5
+ };
6
+
7
+ outputs = {
8
+ self,
9
+ nixpkgs,
10
+ flake-utils,
11
+ }:
12
+ flake-utils.lib.simpleFlake {
13
+ inherit self nixpkgs;
14
+ name = "aidr-typescript";
15
+ shell = {pkgs ? import <nixpkgs>}:
16
+ pkgs.mkShellNoCC {
17
+ packages = with pkgs; [
18
+ pnpm
19
+ ];
20
+
21
+ env = {};
22
+
23
+ shellHook = '''';
24
+ };
25
+ };
26
+ }
@@ -0,0 +1,15 @@
1
+ export default {
2
+ plugins: [
3
+ {
4
+ name: 'valibot',
5
+ definitions: { case: 'PascalCase', name: '{{name}}Schema' },
6
+ metadata: false,
7
+ requests: { case: 'PascalCase', name: '{{name}}RequestSchema' },
8
+ responses: { case: 'PascalCase', name: '{{name}}ResponseSchema' },
9
+ },
10
+ {
11
+ name: '@hey-api/sdk',
12
+ validator: true,
13
+ },
14
+ ],
15
+ };
package/package.json ADDED
@@ -0,0 +1,55 @@
1
+ {
2
+ "name": "@crowdstrike/aidr",
3
+ "version": "1.0.2",
4
+ "description": "TypeScript SDK for CrowdStrike AIDR",
5
+ "license": "MIT",
6
+ "repository": {
7
+ "type": "git",
8
+ "url": "git+https://github.com/CrowdStrike/aidr-typescript.git"
9
+ },
10
+ "publishConfig": {
11
+ "access": "public"
12
+ },
13
+ "type": "commonjs",
14
+ "types": "dist/index.d.cts",
15
+ "main": "dist/index.cjs",
16
+ "exports": {
17
+ ".": {
18
+ "import": "./dist/index.mjs",
19
+ "require": "./dist/index.cjs"
20
+ },
21
+ "./*.mjs": {
22
+ "default": "./dist/*.mjs"
23
+ },
24
+ "./*.cjs": {
25
+ "default": "./dist/*.cjs"
26
+ },
27
+ "./*": {
28
+ "import": "./dist/*.mjs",
29
+ "require": "./dist/*.cjs"
30
+ }
31
+ },
32
+ "scripts": {
33
+ "test": "vitest run",
34
+ "build": "tsdown && tsc --noEmit",
35
+ "prepare": "pnpm build",
36
+ "lint": "biome check"
37
+ },
38
+ "dependencies": {
39
+ "valibot": "^1.2.0"
40
+ },
41
+ "devDependencies": {
42
+ "@biomejs/biome": "2.3.5",
43
+ "@hey-api/openapi-ts": "0.88.0",
44
+ "@semantic-release/npm": "13.1.3",
45
+ "@stoplight/prism-cli": "5.14.2",
46
+ "@types/node": "24.10.1",
47
+ "conventional-changelog-conventionalcommits": "9.1.0",
48
+ "semantic-release": "25.0.2",
49
+ "start-server-and-test": "2.1.3",
50
+ "tsdown": "0.16.7",
51
+ "typescript": "5.9.3",
52
+ "vite-tsconfig-paths": "5.1.4",
53
+ "vitest": "4.0.13"
54
+ }
55
+ }
@@ -0,0 +1,3 @@
1
+ overrides:
2
+ # <https://github.com/advisories/GHSA-mh29-5h37-fv8m>
3
+ js-yaml@<3.14.2: "^3.14.2"
@@ -0,0 +1,15 @@
1
+ #!/usr/bin/env bash
2
+
3
+ set -e
4
+
5
+ cd -- "$(dirname -- "$0")/.."
6
+
7
+ if [ $# -eq 0 ]; then
8
+ echo "Usage: $0 <path-to-openapi-spec>"
9
+ exit 1
10
+ fi
11
+
12
+ pnpx @hey-api/openapi-ts \
13
+ -f ./openapi-ts.config.ts \
14
+ -i $1 \
15
+ -o out
package/scripts/test ADDED
@@ -0,0 +1,10 @@
1
+ #!/usr/bin/env bash
2
+
3
+ set -e
4
+
5
+ cd -- "$(dirname -- "$0")/.."
6
+
7
+ pnpx start-server-and-test --expect 404 \
8
+ "pnpx @stoplight/prism-cli mock -d --json-schema-faker-fillProperties=false specs/ai-guard.openapi.json" \
9
+ 4010 \
10
+ "pnpm test tests/ai-guard.test.ts"