justus 0.4.1 → 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.
Files changed (120) hide show
  1. package/README.md +78 -0
  2. package/dist/dts-generator.cjs +36 -22
  3. package/dist/dts-generator.cjs.map +1 -1
  4. package/dist/dts-generator.d.ts +1 -1
  5. package/dist/dts-generator.mjs +15 -22
  6. package/dist/dts-generator.mjs.map +1 -1
  7. package/dist/errors.cjs +3 -3
  8. package/dist/errors.cjs.map +1 -1
  9. package/dist/errors.mjs +3 -3
  10. package/dist/errors.mjs.map +1 -1
  11. package/dist/extra/arn.cjs +98 -0
  12. package/dist/extra/arn.cjs.map +6 -0
  13. package/dist/extra/arn.d.ts +71 -0
  14. package/dist/extra/arn.mjs +68 -0
  15. package/dist/extra/arn.mjs.map +6 -0
  16. package/dist/extra/ean13.cjs +52 -0
  17. package/dist/extra/ean13.cjs.map +6 -0
  18. package/dist/extra/ean13.d.ts +9 -0
  19. package/dist/extra/ean13.mjs +26 -0
  20. package/dist/extra/ean13.mjs.map +6 -0
  21. package/dist/{validators → extra}/url.cjs +10 -10
  22. package/dist/extra/url.cjs.map +6 -0
  23. package/dist/{validators → extra}/url.d.ts +4 -5
  24. package/dist/{validators → extra}/url.mjs +8 -9
  25. package/dist/{validators → extra}/url.mjs.map +3 -3
  26. package/dist/extra/uuid.cjs +45 -0
  27. package/dist/extra/uuid.cjs.map +6 -0
  28. package/dist/extra/uuid.d.ts +10 -0
  29. package/dist/extra/uuid.mjs +18 -0
  30. package/dist/extra/uuid.mjs.map +6 -0
  31. package/dist/index.cjs +0 -5
  32. package/dist/index.cjs.map +1 -1
  33. package/dist/index.d.ts +18 -19
  34. package/dist/index.mjs +12 -15
  35. package/dist/index.mjs.map +1 -1
  36. package/dist/registry.cjs +44 -0
  37. package/dist/registry.cjs.map +6 -0
  38. package/dist/registry.d.ts +16 -0
  39. package/dist/registry.mjs +19 -0
  40. package/dist/registry.mjs.map +6 -0
  41. package/dist/schema.cjs +3 -5
  42. package/dist/schema.cjs.map +1 -1
  43. package/dist/schema.d.ts +6 -5
  44. package/dist/schema.mjs +3 -4
  45. package/dist/schema.mjs.map +1 -1
  46. package/dist/types.cjs.map +1 -1
  47. package/dist/types.d.ts +38 -12
  48. package/dist/types.mjs.map +1 -1
  49. package/dist/utilities.cjs +5 -7
  50. package/dist/utilities.cjs.map +1 -1
  51. package/dist/utilities.mjs +5 -7
  52. package/dist/utilities.mjs.map +1 -1
  53. package/dist/validators/array.cjs +4 -2
  54. package/dist/validators/array.cjs.map +1 -1
  55. package/dist/validators/array.d.ts +3 -4
  56. package/dist/validators/array.mjs +3 -2
  57. package/dist/validators/array.mjs.map +1 -1
  58. package/dist/validators/boolean.cjs +6 -4
  59. package/dist/validators/boolean.cjs.map +1 -1
  60. package/dist/validators/boolean.d.ts +2 -3
  61. package/dist/validators/boolean.mjs +4 -3
  62. package/dist/validators/boolean.mjs.map +1 -1
  63. package/dist/validators/constant.cjs +4 -5
  64. package/dist/validators/constant.cjs.map +1 -1
  65. package/dist/validators/constant.d.ts +0 -2
  66. package/dist/validators/constant.mjs +3 -3
  67. package/dist/validators/constant.mjs.map +1 -1
  68. package/dist/validators/date.cjs +8 -10
  69. package/dist/validators/date.cjs.map +1 -1
  70. package/dist/validators/date.d.ts +3 -4
  71. package/dist/validators/date.mjs +6 -9
  72. package/dist/validators/date.mjs.map +1 -1
  73. package/dist/validators/number.cjs +6 -4
  74. package/dist/validators/number.cjs.map +1 -1
  75. package/dist/validators/number.d.ts +5 -6
  76. package/dist/validators/number.mjs +4 -3
  77. package/dist/validators/number.mjs.map +1 -1
  78. package/dist/validators/object.cjs +7 -4
  79. package/dist/validators/object.cjs.map +1 -1
  80. package/dist/validators/object.d.ts +6 -7
  81. package/dist/validators/object.mjs +7 -9
  82. package/dist/validators/object.mjs.map +1 -1
  83. package/dist/validators/optional.cjs.map +1 -1
  84. package/dist/validators/optional.d.ts +5 -4
  85. package/dist/validators/optional.mjs.map +1 -1
  86. package/dist/validators/string.cjs +6 -4
  87. package/dist/validators/string.cjs.map +1 -1
  88. package/dist/validators/string.d.ts +5 -6
  89. package/dist/validators/string.mjs +4 -3
  90. package/dist/validators/string.mjs.map +1 -1
  91. package/dist/validators/tuple.cjs +3 -2
  92. package/dist/validators/tuple.cjs.map +1 -1
  93. package/dist/validators/tuple.d.ts +3 -3
  94. package/dist/validators/tuple.mjs +3 -2
  95. package/dist/validators/tuple.mjs.map +1 -1
  96. package/dist/validators/union.cjs.map +1 -1
  97. package/dist/validators/union.d.ts +9 -7
  98. package/dist/validators/union.mjs.map +1 -1
  99. package/package.json +46 -6
  100. package/src/dts-generator.ts +17 -27
  101. package/src/extra/arn.ts +151 -0
  102. package/src/extra/ean13.ts +31 -0
  103. package/src/{validators → extra}/url.ts +6 -8
  104. package/src/extra/uuid.ts +18 -0
  105. package/src/index.ts +18 -19
  106. package/src/registry.ts +28 -0
  107. package/src/schema.ts +10 -11
  108. package/src/types.ts +80 -11
  109. package/src/utilities.ts +5 -9
  110. package/src/validators/array.ts +3 -3
  111. package/src/validators/boolean.ts +2 -2
  112. package/src/validators/constant.ts +3 -2
  113. package/src/validators/date.ts +9 -9
  114. package/src/validators/number.ts +6 -7
  115. package/src/validators/object.ts +15 -14
  116. package/src/validators/optional.ts +9 -7
  117. package/src/validators/string.ts +6 -6
  118. package/src/validators/tuple.ts +20 -6
  119. package/src/validators/union.ts +35 -10
  120. package/dist/validators/url.cjs.map +0 -6
package/README.md CHANGED
@@ -15,6 +15,7 @@ used to ensure that an object is _**correct**_ and from which _**proper**_
15
15
  typing can be inferred.
16
16
 
17
17
  * [Quick Start](#quick-start)
18
+ * [Inferring Types](#inferring-types)
18
19
  * Validators
19
20
  * [Strings](#string-validator)
20
21
  * [Numbers](#number-validator)
@@ -27,6 +28,7 @@ typing can be inferred.
27
28
  * [Objects](#object-validator) (yes, this is the important one!!!)
28
29
  * [Optionals](#optional-validator)
29
30
  * [Any of, all of](#union-validators)
31
+ * [Extra Validators](#extra-validators)
30
32
  * [Validation Options](#validation-options)
31
33
  * [A (slightly more) complex example](#a-complex-example)
32
34
  * [Generating DTS files](#generating-dts-files)
@@ -85,6 +87,62 @@ const validated = validate({
85
87
  ... you get the drill! See below in each _validator_ for their shorthand syntax.
86
88
 
87
89
 
90
+ Inferring Types
91
+ ---------------
92
+
93
+ It is sometimes useful to have access to the inferred types produced by the
94
+ validation function. The `InferValidation` type does just that:
95
+
96
+ ```typescript
97
+ const myTypeValidator = object({
98
+ /* a required string, with minimum length of 1 character */
99
+ foo: string({ minLength: 1 }),
100
+ /* an optional number, defaulted to 12345 */
101
+ bar: optional(number, 12345),
102
+ /* an optional date, without default */
103
+ baz: optional(date),
104
+ } as const)
105
+
106
+ type MyValidatedType = InferValidation<typeof myTypeValidator>
107
+ // here "MyValidatedType" will have the following shape:
108
+ // {
109
+ // foo: string, // plain "string"
110
+ // bar: number, // optional _with_ a default
111
+ // baz?: Date | undefined , // optional _without_ a default
112
+ // }
113
+ ```
114
+
115
+ Similarly, it might be useful to have access to a minimal type required as a
116
+ validation input. This obviously differs from the input for several reasons,
117
+ like:
118
+
119
+ * optionals with default: on input we should represent `optional(type, default)`
120
+ as `type`, but on input this should be `type | undefined`
121
+ * type conversions: the `date` validator converts numbers or strings always
122
+ into `Date` objects, but the input type should be `Date | string | number`
123
+
124
+ The `InferInput` helps in this case:
125
+
126
+ ```typescript
127
+ const myTypeValidator = object({
128
+ /* a required string, with minimum length of 1 character */
129
+ foo: string({ minLength: 1 }),
130
+ /* an optional number, defaulted to 12345 */
131
+ bar: optional(number, 12345),
132
+ /* an optional date, without default */
133
+ baz: optional(date),
134
+ } as const)
135
+
136
+ type MyInputType = InferInput<typeof myTypeValidator>
137
+ // here "MyInputType" will have the following shape:
138
+ // {
139
+ // foo: string, // plain string
140
+ // bar?: number | undefined, // optional, as it has a default
141
+ // baz?: Date | string | number | undefined, // optional, also parsed from string, number
142
+ // }
143
+ ```
144
+
145
+
88
146
  String Validator
89
147
  ----------------
90
148
 
@@ -680,6 +738,26 @@ result // <-- its type will be "number | string"
680
738
  ```
681
739
 
682
740
 
741
+ Extra Validators
742
+ ----------------
743
+
744
+ A number of _extra_ validators are also included, but not exported by default
745
+ in order to reduce the bundle size when Justus is bundled in client apps.
746
+
747
+ Those are:
748
+
749
+ * `arn`: Validate an ARN (Amazon Resource Name) as a string
750
+ * `import { arn } from 'justus/extra/arn'`
751
+ * `parseArn`: Validate an ARN (Amazon Resource Name) and parse its components
752
+ * `import { parseArn } from 'justus/extra/arn'`
753
+ * `ean13`: Validate a standard _EAN-13_ barcode number (as a string)
754
+ * `import { ean13 } from 'justus/extra/ean13'`
755
+ * `url`: Validate a string URL and converts it into a proper `URL` object
756
+ * `import { url } from 'justus/extra/url'`
757
+ * `uuid`: Validate a string UUID plain and simple
758
+ * `import { uuid } from 'justus/extra/uuid'`
759
+
760
+
683
761
  Validation Options
684
762
  ------------------
685
763
 
@@ -35,7 +35,21 @@ __export(dts_generator_exports, {
35
35
  });
36
36
  module.exports = __toCommonJS(dts_generator_exports);
37
37
  var import_typescript = __toESM(require("typescript"));
38
- var import_index = require("./index.cjs");
38
+ var import_errors = require("./errors.cjs");
39
+ var import_url = require("./extra/url.cjs");
40
+ var import_utilities = require("./utilities.cjs");
41
+ var import_any = require("./validators/any.cjs");
42
+ var import_array = require("./validators/array.cjs");
43
+ var import_boolean = require("./validators/boolean.cjs");
44
+ var import_constant = require("./validators/constant.cjs");
45
+ var import_date = require("./validators/date.cjs");
46
+ var import_never = require("./validators/never.cjs");
47
+ var import_number = require("./validators/number.cjs");
48
+ var import_object = require("./validators/object.cjs");
49
+ var import_optional = require("./validators/optional.cjs");
50
+ var import_string = require("./validators/string.cjs");
51
+ var import_tuple = require("./validators/tuple.cjs");
52
+ var import_union = require("./validators/union.cjs");
39
53
  var generators = /* @__PURE__ */ new Map();
40
54
  function registerTypeGenerator(validator, generator) {
41
55
  generators.set(validator, generator);
@@ -44,7 +58,7 @@ function generateTypes(validations) {
44
58
  const validators = /* @__PURE__ */ new Map();
45
59
  const references = /* @__PURE__ */ new Map();
46
60
  Object.entries(validations).forEach(([name, validation]) => {
47
- const validator = (0, import_index.getValidator)(validation);
61
+ const validator = (0, import_utilities.getValidator)(validation);
48
62
  if (!references.has(validator))
49
63
  references.set(validator, name);
50
64
  validators.set(name, validator);
@@ -71,7 +85,7 @@ function generateTypeNode(validator, references) {
71
85
  if (reference)
72
86
  return import_typescript.default.factory.createTypeReferenceNode(reference);
73
87
  const generator = generators.get(validator) || generators.get(validator.constructor);
74
- (0, import_index.assertSchema)(!!generator, `Type generator for "${validator.constructor.name}" not found`);
88
+ (0, import_errors.assertSchema)(!!generator, `Type generator for "${validator.constructor.name}" not found`);
75
89
  const type = generator(validator, references);
76
90
  if (!validator.optional)
77
91
  return type;
@@ -102,42 +116,42 @@ var recordType = import_typescript.default.factory.createMappedTypeNode(
102
116
  void 0
103
117
  );
104
118
  var optionalKeyword = import_typescript.default.factory.createToken(import_typescript.default.SyntaxKind.QuestionToken);
105
- registerTypeGenerator(import_index.AnyValidator, () => anyType);
106
- registerTypeGenerator(import_index.AnyArrayValidator, () => anyArrayType);
107
- registerTypeGenerator(import_index.AnyNumberValidator, () => numberType);
108
- registerTypeGenerator(import_index.AnyObjectValidator, () => recordType);
109
- registerTypeGenerator(import_index.AnyStringValidator, () => stringType);
110
- registerTypeGenerator(import_index.BooleanValidator, () => booleanType);
111
- registerTypeGenerator(import_index.NeverValidator, () => neverType);
112
- registerTypeGenerator(import_index.DateValidator, () => import_typescript.default.factory.createTypeReferenceNode("Date"));
113
- registerTypeGenerator(import_index.URLValidator, () => import_typescript.default.factory.createTypeReferenceNode("URL"));
114
- registerTypeGenerator(import_index.ArrayValidator, (validator, references) => {
119
+ registerTypeGenerator(import_any.AnyValidator, () => anyType);
120
+ registerTypeGenerator(import_array.AnyArrayValidator, () => anyArrayType);
121
+ registerTypeGenerator(import_number.AnyNumberValidator, () => numberType);
122
+ registerTypeGenerator(import_object.AnyObjectValidator, () => recordType);
123
+ registerTypeGenerator(import_string.AnyStringValidator, () => stringType);
124
+ registerTypeGenerator(import_boolean.BooleanValidator, () => booleanType);
125
+ registerTypeGenerator(import_never.NeverValidator, () => neverType);
126
+ registerTypeGenerator(import_date.DateValidator, () => import_typescript.default.factory.createTypeReferenceNode("Date"));
127
+ registerTypeGenerator(import_url.URLValidator, () => import_typescript.default.factory.createTypeReferenceNode("URL"));
128
+ registerTypeGenerator(import_array.ArrayValidator, (validator, references) => {
115
129
  const itemType = generateTypeNode(validator.items, references);
116
130
  return import_typescript.default.factory.createArrayTypeNode(itemType);
117
131
  });
118
- registerTypeGenerator(import_index.ConstantValidator, (validator) => {
132
+ registerTypeGenerator(import_constant.ConstantValidator, (validator) => {
119
133
  const literal = typeof validator.constant === "number" ? import_typescript.default.factory.createNumericLiteral(validator.constant) : typeof validator.constant === "string" ? import_typescript.default.factory.createStringLiteral(validator.constant) : validator.constant === false ? import_typescript.default.factory.createFalse() : validator.constant === true ? import_typescript.default.factory.createTrue() : validator.constant === null ? import_typescript.default.factory.createNull() : void 0;
120
- (0, import_index.assertSchema)(!!literal, `Invalid constant "${validator.constant}"`);
134
+ (0, import_errors.assertSchema)(!!literal, `Invalid constant "${validator.constant}"`);
121
135
  return import_typescript.default.factory.createLiteralTypeNode(literal);
122
136
  });
123
- registerTypeGenerator(import_index.NumberValidator, (validator) => {
137
+ registerTypeGenerator(import_number.NumberValidator, (validator) => {
124
138
  if (!validator.brand)
125
139
  return numberType;
126
140
  const signature = import_typescript.default.factory.createPropertySignature(void 0, `__brand_${validator.brand}`, void 0, neverType);
127
141
  const literal = import_typescript.default.factory.createTypeLiteralNode([signature]);
128
142
  return import_typescript.default.factory.createIntersectionTypeNode([numberType, literal]);
129
143
  });
130
- registerTypeGenerator(import_index.OptionalValidator, (validator, references) => {
144
+ registerTypeGenerator(import_optional.OptionalValidator, (validator, references) => {
131
145
  return generateTypeNode(validator.validator, references);
132
146
  });
133
- registerTypeGenerator(import_index.StringValidator, (validator) => {
147
+ registerTypeGenerator(import_string.StringValidator, (validator) => {
134
148
  if (!validator.brand)
135
149
  return stringType;
136
150
  const signature = import_typescript.default.factory.createPropertySignature(void 0, `__brand_${validator.brand}`, void 0, neverType);
137
151
  const literal = import_typescript.default.factory.createTypeLiteralNode([signature]);
138
152
  return import_typescript.default.factory.createIntersectionTypeNode([stringType, literal]);
139
153
  });
140
- registerTypeGenerator(import_index.TupleValidator, (validator, references) => {
154
+ registerTypeGenerator(import_tuple.TupleValidator, (validator, references) => {
141
155
  const members = validator.members;
142
156
  const { count, first, next } = members.reduce(({ count: count2, first: first2, next: next2 }, { single }, i) => {
143
157
  if (!single) {
@@ -166,15 +180,15 @@ registerTypeGenerator(import_index.TupleValidator, (validator, references) => {
166
180
  const rest = import_typescript.default.factory.createRestTypeNode(array);
167
181
  return import_typescript.default.factory.createTupleTypeNode([...before, rest, ...after]);
168
182
  });
169
- registerTypeGenerator(import_index.AllOfValidator, (validator, references) => {
183
+ registerTypeGenerator(import_union.AllOfValidator, (validator, references) => {
170
184
  const members = validator.validators.map((validator2) => generateTypeNode(validator2, references));
171
185
  return import_typescript.default.factory.createIntersectionTypeNode(members);
172
186
  });
173
- registerTypeGenerator(import_index.OneOfValidator, (validator, references) => {
187
+ registerTypeGenerator(import_union.OneOfValidator, (validator, references) => {
174
188
  const members = validator.validators.map((validator2) => generateTypeNode(validator2, references));
175
189
  return import_typescript.default.factory.createUnionTypeNode(members);
176
190
  });
177
- registerTypeGenerator(import_index.ObjectValidator, (validator, references) => {
191
+ registerTypeGenerator(import_object.ObjectValidator, (validator, references) => {
178
192
  const properties = [];
179
193
  for (const [key, valueValidator] of validator.validators.entries()) {
180
194
  const type = generateTypeNode(valueValidator, references);
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../src/dts-generator.ts"],
4
- "mappings": "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",
4
+ "mappings": "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",
5
5
  "names": ["ts", "count", "first", "next", "types", "validator"]
6
6
  }
@@ -1,5 +1,5 @@
1
1
  import ts from 'typescript';
2
- import type { Validation, Validator } from './index';
2
+ import type { Validation, Validator } from './types';
3
3
  /** A function taking a `Validator` and producing its `TypeNode`. */
4
4
  type TypeGenerator<V extends Validator = Validator> = (validator: V, references: ReadonlyMap<Validator, string>) => ts.TypeNode;
5
5
  /** The generic constructor of a `Validator` instance. */
@@ -1,27 +1,20 @@
1
1
  // dts-generator.ts
2
2
  import ts from "typescript";
3
- import {
4
- AllOfValidator,
5
- AnyArrayValidator,
6
- AnyNumberValidator,
7
- AnyObjectValidator,
8
- AnyStringValidator,
9
- AnyValidator,
10
- ArrayValidator,
11
- assertSchema,
12
- BooleanValidator,
13
- ConstantValidator,
14
- DateValidator,
15
- getValidator,
16
- NeverValidator,
17
- NumberValidator,
18
- ObjectValidator,
19
- OneOfValidator,
20
- OptionalValidator,
21
- StringValidator,
22
- TupleValidator,
23
- URLValidator
24
- } from "./index.mjs";
3
+ import { assertSchema } from "./errors.mjs";
4
+ import { URLValidator } from "./extra/url.mjs";
5
+ import { getValidator } from "./utilities.mjs";
6
+ import { AnyValidator } from "./validators/any.mjs";
7
+ import { AnyArrayValidator, ArrayValidator } from "./validators/array.mjs";
8
+ import { BooleanValidator } from "./validators/boolean.mjs";
9
+ import { ConstantValidator } from "./validators/constant.mjs";
10
+ import { DateValidator } from "./validators/date.mjs";
11
+ import { NeverValidator } from "./validators/never.mjs";
12
+ import { AnyNumberValidator, NumberValidator } from "./validators/number.mjs";
13
+ import { AnyObjectValidator, ObjectValidator } from "./validators/object.mjs";
14
+ import { OptionalValidator } from "./validators/optional.mjs";
15
+ import { AnyStringValidator, StringValidator } from "./validators/string.mjs";
16
+ import { TupleValidator } from "./validators/tuple.mjs";
17
+ import { AllOfValidator, OneOfValidator } from "./validators/union.mjs";
25
18
  var generators = /* @__PURE__ */ new Map();
26
19
  function registerTypeGenerator(validator, generator) {
27
20
  generators.set(validator, generator);
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../src/dts-generator.ts"],
4
- "mappings": "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",
4
+ "mappings": "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",
5
5
  "names": ["count", "first", "next", "types", "validator"]
6
6
  }
package/dist/errors.cjs CHANGED
@@ -33,7 +33,7 @@ function pathToString(path) {
33
33
  return index === 0 ? key : `${string}.${key}`;
34
34
  }, "");
35
35
  }
36
- var ValidationError = class extends Error {
36
+ var ValidationError = class _ValidationError extends Error {
37
37
  /** An `Array` of validation errors encountered while validating */
38
38
  errors;
39
39
  /** Our stack, always present as we enforce it in the constructor */
@@ -46,12 +46,12 @@ var ValidationError = class extends Error {
46
46
  constructor = builderOrCause.assert;
47
47
  } else {
48
48
  const path = Array.isArray(constructorOrPath) ? constructorOrPath : [];
49
- if (builderOrCause instanceof ValidationError) {
49
+ if (builderOrCause instanceof _ValidationError) {
50
50
  errors = builderOrCause.errors.map(({ path: subpath, message: message2 }) => ({ path: [...path, ...subpath], message: message2 }));
51
51
  } else {
52
52
  errors = [{ path, message: `${builderOrCause}` }];
53
53
  }
54
- constructor = typeof maybeConstructor === "function" ? maybeConstructor : typeof constructorOrPath === "function" ? constructorOrPath : ValidationError;
54
+ constructor = typeof maybeConstructor === "function" ? maybeConstructor : typeof constructorOrPath === "function" ? constructorOrPath : _ValidationError;
55
55
  }
56
56
  const details = errors.map(({ path, message: message2 }) => ({ key: pathToString(path), message: message2 })).map(({ key, message: message2 }) => key ? `${key}: ${message2}` : message2).join("\n ");
57
57
  const message = errors.length !== 1 ? `Found ${errors.length} validation errors` : "Found 1 validation error";
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../src/errors.ts"],
4
- "mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA,SAAS,aAAa,MAAmC;AACvD,SAAO,KAAK,OAAO,CAAC,QAAgB,KAAK,UAAkB;AACzD,QAAI,OAAO,QAAQ;AAAU,aAAO,GAAG,UAAU;AACjD,WAAO,UAAU,IAAI,MAAM,GAAG,UAAU;AAAA,EAC1C,GAAG,EAAE;AACP;AAKO,IAAM,kBAAN,cAA8B,MAAM;AAAA;AAAA,EAEhC;AAAA;AAAA,EAEA;AAAA,EAaT,YACI,gBACA,mBACA,kBACF;AACA,QAAI;AACJ,QAAI;AAEJ,QAAI,0BAA0B,wBAAwB;AACpD,eAAS,eAAe;AACxB,oBAAc,eAAe;AAAA,IAC/B,OAAO;AACL,YAAM,OAAO,MAAM,QAAQ,iBAAiB,IAAI,oBAAoB,CAAC;AAErE,UAAI,0BAA0B,iBAAiB;AAC7C,iBAAS,eAAe,OAAO,IAAI,CAAC,EAAE,MAAM,SAAS,SAAAA,SAAQ,OAC1D,EAAE,MAAM,CAAE,GAAG,MAAM,GAAG,OAAQ,GAAG,SAAAA,SAAQ,EAAE;AAAA,MAChD,OAAO;AACL,iBAAS,CAAE,EAAE,MAAM,SAAS,GAAG,iBAAiB,CAAE;AAAA,MACpD;AAEA,oBACE,OAAO,qBAAqB,aAAa,mBACzC,OAAO,sBAAsB,aAAa,oBAC1C;AAAA,IACJ;AAEA,UAAM,UAAU,OACX,IAAI,CAAC,EAAE,MAAM,SAAAA,SAAQ,OAAO,EAAE,KAAK,aAAa,IAAI,GAAG,SAAAA,SAAQ,EAAE,EACjE,IAAI,CAAC,EAAE,KAAK,SAAAA,SAAQ,MAAM,MAAM,GAAG,QAAQA,aAAYA,QAAO,EAC9D,KAAK,MAAM;AAEhB,UAAM,UAAU,OAAO,WAAW,IAChC,SAAS,OAAO,6BAChB;AAEF,UAAM,GAAG;AAAA,IAAc,SAAS;AAE/B,IAAC,MAAc,oBAAoB,MAAM,WAAW;AACrD,WAAO,eAAe,MAAM,UAAU,EAAE,OAAO,OAAO,CAAC;AAAA,EACzD;AACF;AAEA,gBAAgB,UAAU,OAAO;AAK1B,IAAM,yBAAN,MAA6B;AAAA;AAAA,EAEzB,SAA2B,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUrC,OAAO,UAAe,KAAgC;AACpD,UAAM,OAAO,CAAE,GAAG,GAAI;AACtB,QAAI,iBAAiB,iBAAiB;AACpC,YAAM,OAAO,QAAQ,CAAC,EAAE,MAAM,SAAS,QAAQ,MAAM;AACnD,aAAK,OAAO,KAAK,EAAE,MAAM,CAAE,GAAG,MAAM,GAAG,OAAQ,GAAG,QAAQ,CAAC;AAAA,MAC7D,CAAC;AAAA,IACH,OAAO;AACL,WAAK,OAAO,KAAK,EAAE,MAAM,SAAS,GAAG,QAAQ,CAAC;AAAA,IAChD;AACA,WAAO;AAAA,EACT;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,OAAU,OAAa;AACrB,QAAI,KAAK,OAAO,SAAS;AAAG,YAAM,IAAI,gBAAgB,IAAI;AAC1D,WAAO;AAAA,EACT;AACF;AAKO,SAAS,iBAAiB,MAA2B,SAA+B;AACzF,MAAI,CAAE;AAAM,UAAM,IAAI,gBAAgB,SAAS,gBAAgB;AACjE;AAMO,SAAS,aAAa,MAA2B,SAA+B;AACrF,MAAI,CAAE;AAAM,UAAM,IAAI,UAAU,OAAO;AACzC;",
4
+ "mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA,SAAS,aAAa,MAAmC;AACvD,SAAO,KAAK,OAAO,CAAC,QAAgB,KAAK,UAAkB;AACzD,QAAI,OAAO,QAAQ;AAAU,aAAO,GAAG,MAAM,IAAI,GAAG;AACpD,WAAO,UAAU,IAAI,MAAM,GAAG,MAAM,IAAI,GAAG;AAAA,EAC7C,GAAG,EAAE;AACP;AAKO,IAAM,kBAAN,MAAM,yBAAwB,MAAM;AAAA;AAAA,EAEhC;AAAA;AAAA,EAEA;AAAA,EAaT,YACI,gBACA,mBACA,kBACF;AACA,QAAI;AACJ,QAAI;AAEJ,QAAI,0BAA0B,wBAAwB;AACpD,eAAS,eAAe;AACxB,oBAAc,eAAe;AAAA,IAC/B,OAAO;AACL,YAAM,OAAO,MAAM,QAAQ,iBAAiB,IAAI,oBAAoB,CAAC;AAErE,UAAI,0BAA0B,kBAAiB;AAC7C,iBAAS,eAAe,OAAO,IAAI,CAAC,EAAE,MAAM,SAAS,SAAAA,SAAQ,OAC1D,EAAE,MAAM,CAAE,GAAG,MAAM,GAAG,OAAQ,GAAG,SAAAA,SAAQ,EAAE;AAAA,MAChD,OAAO;AACL,iBAAS,CAAE,EAAE,MAAM,SAAS,GAAG,cAAc,GAAG,CAAE;AAAA,MACpD;AAEA,oBACE,OAAO,qBAAqB,aAAa,mBACzC,OAAO,sBAAsB,aAAa,oBAC1C;AAAA,IACJ;AAEA,UAAM,UAAU,OACX,IAAI,CAAC,EAAE,MAAM,SAAAA,SAAQ,OAAO,EAAE,KAAK,aAAa,IAAI,GAAG,SAAAA,SAAQ,EAAE,EACjE,IAAI,CAAC,EAAE,KAAK,SAAAA,SAAQ,MAAM,MAAM,GAAG,GAAG,KAAKA,QAAO,KAAKA,QAAO,EAC9D,KAAK,MAAM;AAEhB,UAAM,UAAU,OAAO,WAAW,IAChC,SAAS,OAAO,MAAM,uBACtB;AAEF,UAAM,GAAG,OAAO;AAAA,IAAO,OAAO,EAAE;AAE/B,IAAC,MAAc,oBAAoB,MAAM,WAAW;AACrD,WAAO,eAAe,MAAM,UAAU,EAAE,OAAO,OAAO,CAAC;AAAA,EACzD;AACF;AAEA,gBAAgB,UAAU,OAAO;AAK1B,IAAM,yBAAN,MAA6B;AAAA;AAAA,EAEzB,SAA2B,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUrC,OAAO,UAAe,KAAgC;AACpD,UAAM,OAAO,CAAE,GAAG,GAAI;AACtB,QAAI,iBAAiB,iBAAiB;AACpC,YAAM,OAAO,QAAQ,CAAC,EAAE,MAAM,SAAS,QAAQ,MAAM;AACnD,aAAK,OAAO,KAAK,EAAE,MAAM,CAAE,GAAG,MAAM,GAAG,OAAQ,GAAG,QAAQ,CAAC;AAAA,MAC7D,CAAC;AAAA,IACH,OAAO;AACL,WAAK,OAAO,KAAK,EAAE,MAAM,SAAS,GAAG,KAAK,GAAG,CAAC;AAAA,IAChD;AACA,WAAO;AAAA,EACT;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,OAAU,OAAa;AACrB,QAAI,KAAK,OAAO,SAAS;AAAG,YAAM,IAAI,gBAAgB,IAAI;AAC1D,WAAO;AAAA,EACT;AACF;AAKO,SAAS,iBAAiB,MAA2B,SAA+B;AACzF,MAAI,CAAE;AAAM,UAAM,IAAI,gBAAgB,SAAS,gBAAgB;AACjE;AAMO,SAAS,aAAa,MAA2B,SAA+B;AACrF,MAAI,CAAE;AAAM,UAAM,IAAI,UAAU,OAAO;AACzC;",
5
5
  "names": ["message"]
6
6
  }
package/dist/errors.mjs CHANGED
@@ -6,7 +6,7 @@ function pathToString(path) {
6
6
  return index === 0 ? key : `${string}.${key}`;
7
7
  }, "");
8
8
  }
9
- var ValidationError = class extends Error {
9
+ var ValidationError = class _ValidationError extends Error {
10
10
  /** An `Array` of validation errors encountered while validating */
11
11
  errors;
12
12
  /** Our stack, always present as we enforce it in the constructor */
@@ -19,12 +19,12 @@ var ValidationError = class extends Error {
19
19
  constructor = builderOrCause.assert;
20
20
  } else {
21
21
  const path = Array.isArray(constructorOrPath) ? constructorOrPath : [];
22
- if (builderOrCause instanceof ValidationError) {
22
+ if (builderOrCause instanceof _ValidationError) {
23
23
  errors = builderOrCause.errors.map(({ path: subpath, message: message2 }) => ({ path: [...path, ...subpath], message: message2 }));
24
24
  } else {
25
25
  errors = [{ path, message: `${builderOrCause}` }];
26
26
  }
27
- constructor = typeof maybeConstructor === "function" ? maybeConstructor : typeof constructorOrPath === "function" ? constructorOrPath : ValidationError;
27
+ constructor = typeof maybeConstructor === "function" ? maybeConstructor : typeof constructorOrPath === "function" ? constructorOrPath : _ValidationError;
28
28
  }
29
29
  const details = errors.map(({ path, message: message2 }) => ({ key: pathToString(path), message: message2 })).map(({ key, message: message2 }) => key ? `${key}: ${message2}` : message2).join("\n ");
30
30
  const message = errors.length !== 1 ? `Found ${errors.length} validation errors` : "Found 1 validation error";
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../src/errors.ts"],
4
- "mappings": ";AAGA,SAAS,aAAa,MAAmC;AACvD,SAAO,KAAK,OAAO,CAAC,QAAgB,KAAK,UAAkB;AACzD,QAAI,OAAO,QAAQ;AAAU,aAAO,GAAG,UAAU;AACjD,WAAO,UAAU,IAAI,MAAM,GAAG,UAAU;AAAA,EAC1C,GAAG,EAAE;AACP;AAKO,IAAM,kBAAN,cAA8B,MAAM;AAAA;AAAA,EAEhC;AAAA;AAAA,EAEA;AAAA,EAaT,YACI,gBACA,mBACA,kBACF;AACA,QAAI;AACJ,QAAI;AAEJ,QAAI,0BAA0B,wBAAwB;AACpD,eAAS,eAAe;AACxB,oBAAc,eAAe;AAAA,IAC/B,OAAO;AACL,YAAM,OAAO,MAAM,QAAQ,iBAAiB,IAAI,oBAAoB,CAAC;AAErE,UAAI,0BAA0B,iBAAiB;AAC7C,iBAAS,eAAe,OAAO,IAAI,CAAC,EAAE,MAAM,SAAS,SAAAA,SAAQ,OAC1D,EAAE,MAAM,CAAE,GAAG,MAAM,GAAG,OAAQ,GAAG,SAAAA,SAAQ,EAAE;AAAA,MAChD,OAAO;AACL,iBAAS,CAAE,EAAE,MAAM,SAAS,GAAG,iBAAiB,CAAE;AAAA,MACpD;AAEA,oBACE,OAAO,qBAAqB,aAAa,mBACzC,OAAO,sBAAsB,aAAa,oBAC1C;AAAA,IACJ;AAEA,UAAM,UAAU,OACX,IAAI,CAAC,EAAE,MAAM,SAAAA,SAAQ,OAAO,EAAE,KAAK,aAAa,IAAI,GAAG,SAAAA,SAAQ,EAAE,EACjE,IAAI,CAAC,EAAE,KAAK,SAAAA,SAAQ,MAAM,MAAM,GAAG,QAAQA,aAAYA,QAAO,EAC9D,KAAK,MAAM;AAEhB,UAAM,UAAU,OAAO,WAAW,IAChC,SAAS,OAAO,6BAChB;AAEF,UAAM,GAAG;AAAA,IAAc,SAAS;AAE/B,IAAC,MAAc,oBAAoB,MAAM,WAAW;AACrD,WAAO,eAAe,MAAM,UAAU,EAAE,OAAO,OAAO,CAAC;AAAA,EACzD;AACF;AAEA,gBAAgB,UAAU,OAAO;AAK1B,IAAM,yBAAN,MAA6B;AAAA;AAAA,EAEzB,SAA2B,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUrC,OAAO,UAAe,KAAgC;AACpD,UAAM,OAAO,CAAE,GAAG,GAAI;AACtB,QAAI,iBAAiB,iBAAiB;AACpC,YAAM,OAAO,QAAQ,CAAC,EAAE,MAAM,SAAS,QAAQ,MAAM;AACnD,aAAK,OAAO,KAAK,EAAE,MAAM,CAAE,GAAG,MAAM,GAAG,OAAQ,GAAG,QAAQ,CAAC;AAAA,MAC7D,CAAC;AAAA,IACH,OAAO;AACL,WAAK,OAAO,KAAK,EAAE,MAAM,SAAS,GAAG,QAAQ,CAAC;AAAA,IAChD;AACA,WAAO;AAAA,EACT;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,OAAU,OAAa;AACrB,QAAI,KAAK,OAAO,SAAS;AAAG,YAAM,IAAI,gBAAgB,IAAI;AAC1D,WAAO;AAAA,EACT;AACF;AAKO,SAAS,iBAAiB,MAA2B,SAA+B;AACzF,MAAI,CAAE;AAAM,UAAM,IAAI,gBAAgB,SAAS,gBAAgB;AACjE;AAMO,SAAS,aAAa,MAA2B,SAA+B;AACrF,MAAI,CAAE;AAAM,UAAM,IAAI,UAAU,OAAO;AACzC;",
4
+ "mappings": ";AAGA,SAAS,aAAa,MAAmC;AACvD,SAAO,KAAK,OAAO,CAAC,QAAgB,KAAK,UAAkB;AACzD,QAAI,OAAO,QAAQ;AAAU,aAAO,GAAG,MAAM,IAAI,GAAG;AACpD,WAAO,UAAU,IAAI,MAAM,GAAG,MAAM,IAAI,GAAG;AAAA,EAC7C,GAAG,EAAE;AACP;AAKO,IAAM,kBAAN,MAAM,yBAAwB,MAAM;AAAA;AAAA,EAEhC;AAAA;AAAA,EAEA;AAAA,EAaT,YACI,gBACA,mBACA,kBACF;AACA,QAAI;AACJ,QAAI;AAEJ,QAAI,0BAA0B,wBAAwB;AACpD,eAAS,eAAe;AACxB,oBAAc,eAAe;AAAA,IAC/B,OAAO;AACL,YAAM,OAAO,MAAM,QAAQ,iBAAiB,IAAI,oBAAoB,CAAC;AAErE,UAAI,0BAA0B,kBAAiB;AAC7C,iBAAS,eAAe,OAAO,IAAI,CAAC,EAAE,MAAM,SAAS,SAAAA,SAAQ,OAC1D,EAAE,MAAM,CAAE,GAAG,MAAM,GAAG,OAAQ,GAAG,SAAAA,SAAQ,EAAE;AAAA,MAChD,OAAO;AACL,iBAAS,CAAE,EAAE,MAAM,SAAS,GAAG,cAAc,GAAG,CAAE;AAAA,MACpD;AAEA,oBACE,OAAO,qBAAqB,aAAa,mBACzC,OAAO,sBAAsB,aAAa,oBAC1C;AAAA,IACJ;AAEA,UAAM,UAAU,OACX,IAAI,CAAC,EAAE,MAAM,SAAAA,SAAQ,OAAO,EAAE,KAAK,aAAa,IAAI,GAAG,SAAAA,SAAQ,EAAE,EACjE,IAAI,CAAC,EAAE,KAAK,SAAAA,SAAQ,MAAM,MAAM,GAAG,GAAG,KAAKA,QAAO,KAAKA,QAAO,EAC9D,KAAK,MAAM;AAEhB,UAAM,UAAU,OAAO,WAAW,IAChC,SAAS,OAAO,MAAM,uBACtB;AAEF,UAAM,GAAG,OAAO;AAAA,IAAO,OAAO,EAAE;AAE/B,IAAC,MAAc,oBAAoB,MAAM,WAAW;AACrD,WAAO,eAAe,MAAM,UAAU,EAAE,OAAO,OAAO,CAAC;AAAA,EACzD;AACF;AAEA,gBAAgB,UAAU,OAAO;AAK1B,IAAM,yBAAN,MAA6B;AAAA;AAAA,EAEzB,SAA2B,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUrC,OAAO,UAAe,KAAgC;AACpD,UAAM,OAAO,CAAE,GAAG,GAAI;AACtB,QAAI,iBAAiB,iBAAiB;AACpC,YAAM,OAAO,QAAQ,CAAC,EAAE,MAAM,SAAS,QAAQ,MAAM;AACnD,aAAK,OAAO,KAAK,EAAE,MAAM,CAAE,GAAG,MAAM,GAAG,OAAQ,GAAG,QAAQ,CAAC;AAAA,MAC7D,CAAC;AAAA,IACH,OAAO;AACL,WAAK,OAAO,KAAK,EAAE,MAAM,SAAS,GAAG,KAAK,GAAG,CAAC;AAAA,IAChD;AACA,WAAO;AAAA,EACT;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,OAAU,OAAa;AACrB,QAAI,KAAK,OAAO,SAAS;AAAG,YAAM,IAAI,gBAAgB,IAAI;AAC1D,WAAO;AAAA,EACT;AACF;AAKO,SAAS,iBAAiB,MAA2B,SAA+B;AACzF,MAAI,CAAE;AAAM,UAAM,IAAI,gBAAgB,SAAS,gBAAgB;AACjE;AAMO,SAAS,aAAa,MAA2B,SAA+B;AACrF,MAAI,CAAE;AAAM,UAAM,IAAI,UAAU,OAAO;AACzC;",
5
5
  "names": ["message"]
6
6
  }
@@ -0,0 +1,98 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+
20
+ // extra/arn.ts
21
+ var arn_exports = {};
22
+ __export(arn_exports, {
23
+ ArnValidator: () => ArnValidator,
24
+ ParsedArnValidator: () => ParsedArnValidator,
25
+ arn: () => arn,
26
+ arnFactory: () => arnFactory,
27
+ parseArn: () => parseArn,
28
+ parseArnFactory: () => parseArnFactory
29
+ });
30
+ module.exports = __toCommonJS(arn_exports);
31
+ var import_errors = require("../errors.cjs");
32
+ var import_types = require("../types.cjs");
33
+ function parse(value, service, type) {
34
+ (0, import_errors.assertValidation)(typeof value == "string", 'Value is not a "string"');
35
+ const segments = value.split(":");
36
+ (0, import_errors.assertValidation)(segments.length >= 6, "Invalid components in ARN");
37
+ const [pfx, prt, svc, rgn, act, ...res] = segments;
38
+ (0, import_errors.assertValidation)(pfx === "arn", 'ARN must start with "arn:"');
39
+ (0, import_errors.assertValidation)(!!prt, "Missing partition in ARN");
40
+ (0, import_errors.assertValidation)(!!svc, "Missing service in ARN");
41
+ (0, import_errors.assertValidation)(!!act, "Missing account ID in ARN");
42
+ (0, import_errors.assertValidation)(!!res[0], "Missing resource ID in ARN");
43
+ if (service !== void 0) {
44
+ (0, import_errors.assertValidation)(svc === service, `ARN Service "${svc}" mismatch (expected "${service}")`);
45
+ }
46
+ const [resArray, resString] = res[0].includes("/") ? [res[0].split("/"), res[0]] : [res, res.join(":")];
47
+ (0, import_errors.assertValidation)(!!resArray[0], "Invalid resource ID in ARN");
48
+ if (type !== void 0) {
49
+ (0, import_errors.assertValidation)(resArray[0] === type, `ARN Resource Type "${resArray[0]}" mismatch (expected "${type}")`);
50
+ }
51
+ const arn2 = `arn:${prt}:${svc}:${rgn}:${act}:${resString}`;
52
+ return {
53
+ Arn: arn2,
54
+ Partition: prt,
55
+ Service: svc,
56
+ Region: rgn || "",
57
+ Account: act,
58
+ Resource: resArray
59
+ };
60
+ }
61
+ var ParsedArnValidator = class extends import_types.AbstractValidator {
62
+ constructor(_service, _type) {
63
+ super();
64
+ this._service = _service;
65
+ this._type = _type;
66
+ }
67
+ validate(value) {
68
+ return parse(value, this._service, this._type);
69
+ }
70
+ };
71
+ var ArnValidator = class extends import_types.AbstractValidator {
72
+ constructor(_service, _type) {
73
+ super();
74
+ this._service = _service;
75
+ this._type = _type;
76
+ }
77
+ validate(value) {
78
+ return parse(value, this._service, this._type).Arn;
79
+ }
80
+ };
81
+ function parseArnFactory(service, resourceType) {
82
+ return new ParsedArnValidator(service, resourceType);
83
+ }
84
+ function arnFactory(service, resourceType) {
85
+ return new ArnValidator(service, resourceType);
86
+ }
87
+ var parseArn = (0, import_types.makeValidatorFactory)(new ParsedArnValidator(), parseArnFactory);
88
+ var arn = (0, import_types.makeValidatorFactory)(new ArnValidator(), arnFactory);
89
+ // Annotate the CommonJS export names for ESM import in node:
90
+ 0 && (module.exports = {
91
+ ArnValidator,
92
+ ParsedArnValidator,
93
+ arn,
94
+ arnFactory,
95
+ parseArn,
96
+ parseArnFactory
97
+ });
98
+ //# sourceMappingURL=arn.cjs.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/extra/arn.ts"],
4
+ "mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oBAAiC;AACjC,mBAAwD;AAoBxD,SAAS,MACL,OACA,SACA,MACkB;AACpB,sCAAiB,OAAO,SAAS,UAAU,yBAAyB;AAEpE,QAAM,WAAW,MAAM,MAAM,GAAG;AAEhC,sCAAiB,SAAS,UAAU,GAAG,2BAA2B;AAElE,QAAM,CAAE,KAAK,KAAK,KAAK,KAAK,KAAK,GAAG,GAAI,IAAI;AAE5C,sCAAiB,QAAQ,OAAO,4BAA4B;AAC5D,sCAAiB,CAAC,CAAE,KAAK,0BAA0B;AACnD,sCAAiB,CAAC,CAAE,KAAK,wBAAwB;AACjD,sCAAiB,CAAC,CAAE,KAAK,2BAA2B;AACpD,sCAAiB,CAAC,CAAE,IAAI,CAAC,GAAG,4BAA4B;AAExD,MAAI,YAAY,QAAW;AACzB,wCAAiB,QAAQ,SAAS,gBAAgB,GAAG,yBAAyB,OAAO,IAAI;AAAA,EAC3F;AAEA,QAAM,CAAE,UAAU,SAAU,IAAI,IAAI,CAAC,EAAE,SAAS,GAAG,IACjD,CAAE,IAAI,CAAC,EAAE,MAAM,GAAG,GAAG,IAAI,CAAC,CAAE,IAC5B,CAAE,KAAK,IAAI,KAAK,GAAG,CAAE;AAEvB,sCAAiB,CAAC,CAAE,SAAS,CAAC,GAAG,4BAA4B;AAE7D,MAAI,SAAS,QAAW;AACtB,wCAAiB,SAAS,CAAC,MAAM,MAAM,sBAAsB,SAAS,CAAC,CAAC,yBAAyB,IAAI,IAAI;AAAA,EAC3G;AAEA,QAAMA,OAAM,OAAO,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,SAAS;AAExD,SAAO;AAAA,IACL,KAAKA;AAAA,IACL,WAAW;AAAA,IACX,SAAS;AAAA,IACT,QAAQ,OAAO;AAAA,IACf,SAAS;AAAA,IACT,UAAU;AAAA,EACZ;AACF;AAKO,IAAM,qBAAN,cACG,+BAA8C;AAAA,EAWtD,YAAoB,UAA4B,OAAgB;AAC9D,UAAM;AADY;AAA4B;AAAA,EAEhD;AAAA,EAEA,SAAS,OAAoC;AAC3C,WAAO,MAAM,OAAO,KAAK,UAAU,KAAK,KAAK;AAAA,EAC/C;AACF;AAGO,IAAM,eAAN,cACG,+BAA8C;AAAA,EAWtD,YAAoB,UAA4B,OAAgB;AAC9D,UAAM;AADY;AAA4B;AAAA,EAEhD;AAAA,EAEA,SAAS,OAAoC;AAC3C,WAAO,MAAM,OAAO,KAAK,UAAU,KAAK,KAAK,EAAE;AAAA,EACjD;AACF;AAYO,SAAS,gBACZ,SACA,cAC2B;AAC7B,SAAO,IAAI,mBAAmB,SAAS,YAAY;AACrD;AAUO,SAAS,WACZ,SACA,cACqB;AACvB,SAAO,IAAI,aAAa,SAAS,YAAY;AAC/C;AAKO,IAAM,eAAW,mCAAqB,IAAI,mBAAmB,GAAG,eAAe;AAG/E,IAAM,UAAM,mCAAqB,IAAI,aAAa,GAAG,UAAU;",
5
+ "names": ["arn"]
6
+ }
@@ -0,0 +1,71 @@
1
+ import { AbstractValidator } from '../types';
2
+ /** The type for a validated _string_ ARN (Amazon Resource Name) */
3
+ export type ArnString<Service extends string = string> = string & {
4
+ __arn: never;
5
+ } & (string extends Service ? string : {
6
+ [k in `__arn_${Service}`]: never;
7
+ });
8
+ /** The type for a _parsed_ ARN (Amazon Resource Name) */
9
+ export interface ParsedArn<Service extends string = string> {
10
+ /** The full */
11
+ Arn: ArnString<Service>;
12
+ Partition: string;
13
+ Service: Service;
14
+ Region: string;
15
+ Account: string;
16
+ Resource: [string, ...string[]];
17
+ }
18
+ /** Validator parsing an ARN (Amazon Resource Name) and returning its components */
19
+ export declare class ParsedArnValidator<Service extends string = string> extends AbstractValidator<ParsedArn<Service>, string> {
20
+ private _service?;
21
+ private _type?;
22
+ /**
23
+ * Create a new {@link ParsedArnValidator} instance.
24
+ *
25
+ * @param service The (optional) service the ARN should be pointing to
26
+ * (e.g. `iam` or `elasticloadbalancing`)
27
+ * @param resourceType The (optional) resource _type_ the ARN should be
28
+ * representing (e.g. `role` in the `iam` service, or
29
+ * `targetgroup` in the `elasticloadbalancing` service)
30
+ */
31
+ constructor(service?: Service, resourceType?: string);
32
+ validate(value: unknown): ParsedArn<Service>;
33
+ }
34
+ /** Validator validating an ARN (Amazon Resource Name) _string_ */
35
+ export declare class ArnValidator<Service extends string = string> extends AbstractValidator<ArnString<Service>, string> {
36
+ private _service?;
37
+ private _type?;
38
+ /**
39
+ * Create a new {@link ArnValidator} instance.
40
+ *
41
+ * @param service The (optional) service the ARN should be pointing to
42
+ * (e.g. `iam` or `elasticloadbalancing`)
43
+ * @param resourceType The (optional) resource _type_ the ARN should be
44
+ * representing (e.g. `role` in the `iam` service, or
45
+ * `targetgroup` in the `elasticloadbalancing` service)
46
+ */
47
+ constructor(service?: Service, resourceType?: string);
48
+ validate(value: unknown): ArnString<Service>;
49
+ }
50
+ /**
51
+ * Create a new {@link ParsedArnValidator} parsing an ARN referring to the
52
+ * specified `service` (e.g. `iam` or `elasticloadbalancing`).
53
+ *
54
+ * An (optional) resource _type_ can be specified, and will validate the first
55
+ * component of the ARN's resource (e.g. `role` in the `iam` service, or
56
+ * `targetgroup` in the `elasticloadbalancing` service)
57
+ */
58
+ export declare function parseArnFactory<Service extends string = string>(service: Service, resourceType?: string): ParsedArnValidator<Service>;
59
+ /**
60
+ * Create a new {@link ArnValidator} validating an ARN referring to the
61
+ * specified `service` (e.g. `iam` or `elasticloadbalancing`).
62
+ *
63
+ * An (optional) resource _type_ can be specified, and will validate the first
64
+ * component of the ARN's resource (e.g. `role` in the `iam` service, or
65
+ * `targetgroup` in the `elasticloadbalancing` service)
66
+ */
67
+ export declare function arnFactory<Service extends string = string>(service: Service, resourceType?: string): ArnValidator<Service>;
68
+ /** Validate a string and parse it into into an {@link ParsedArn} */
69
+ export declare const parseArn: typeof parseArnFactory & ParsedArnValidator<string>;
70
+ /** Validate a ARN (Amazon Resource Name) string */
71
+ export declare const arn: typeof arnFactory & ArnValidator<string>;