mavenagi 0.0.0-alpha.11 → 0.0.0-alpha.12

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 (139) hide show
  1. package/Client.d.ts +9 -0
  2. package/README.md +41 -4
  3. package/api/resources/actions/client/Client.d.ts +9 -0
  4. package/api/resources/actions/client/Client.js +18 -15
  5. package/api/resources/commons/types/EntityType.d.ts +2 -1
  6. package/api/resources/commons/types/EntityType.js +1 -0
  7. package/api/resources/commons/types/FeedbackBase.d.ts +10 -0
  8. package/api/resources/commons/types/index.d.ts +1 -1
  9. package/api/resources/commons/types/index.js +1 -1
  10. package/api/resources/conversation/client/Client.d.ts +18 -3
  11. package/api/resources/conversation/client/Client.js +71 -58
  12. package/api/resources/conversation/types/FeedbackRequest.d.ts +8 -1
  13. package/api/resources/knowledge/client/Client.d.ts +9 -0
  14. package/api/resources/knowledge/client/Client.js +44 -37
  15. package/api/resources/triggers/client/Client.d.ts +9 -0
  16. package/api/resources/triggers/client/Client.js +18 -15
  17. package/api/resources/users/client/Client.d.ts +9 -0
  18. package/api/resources/users/client/Client.js +13 -11
  19. package/core/fetcher/Fetcher.d.ts +4 -1
  20. package/core/fetcher/Fetcher.js +18 -159
  21. package/core/fetcher/createRequestUrl.d.ts +1 -0
  22. package/core/fetcher/createRequestUrl.js +6 -0
  23. package/core/fetcher/getFetchFn.d.ts +4 -0
  24. package/core/fetcher/getFetchFn.js +32 -0
  25. package/core/fetcher/getRequestBody.d.ts +7 -0
  26. package/core/fetcher/getRequestBody.js +19 -0
  27. package/core/fetcher/getResponseBody.d.ts +1 -0
  28. package/core/fetcher/getResponseBody.js +48 -0
  29. package/core/fetcher/makeRequest.d.ts +1 -0
  30. package/core/fetcher/makeRequest.js +38 -0
  31. package/core/fetcher/requestWithRetries.d.ts +1 -0
  32. package/core/fetcher/requestWithRetries.js +28 -0
  33. package/core/fetcher/signals.d.ts +12 -0
  34. package/core/fetcher/signals.js +32 -0
  35. package/core/fetcher/stream-wrappers/Node18UniversalStreamWrapper.d.ts +30 -0
  36. package/core/fetcher/stream-wrappers/Node18UniversalStreamWrapper.js +222 -0
  37. package/core/fetcher/stream-wrappers/NodePre18StreamWrapper.d.ts +21 -0
  38. package/core/fetcher/stream-wrappers/NodePre18StreamWrapper.js +104 -0
  39. package/core/fetcher/stream-wrappers/UndiciStreamWrapper.d.ts +30 -0
  40. package/core/fetcher/stream-wrappers/UndiciStreamWrapper.js +204 -0
  41. package/core/fetcher/stream-wrappers/chooseStreamWrapper.d.ts +17 -0
  42. package/core/fetcher/stream-wrappers/chooseStreamWrapper.js +23 -0
  43. package/core/runtime/runtime.d.ts +1 -0
  44. package/core/runtime/runtime.js +1 -0
  45. package/core/schemas/Schema.d.ts +7 -4
  46. package/core/schemas/builders/lazy/lazy.d.ts +2 -2
  47. package/core/schemas/builders/lazy/lazy.js +8 -19
  48. package/core/schemas/builders/lazy/lazyObject.js +1 -10
  49. package/core/schemas/builders/list/list.js +31 -44
  50. package/core/schemas/builders/object/object.js +90 -111
  51. package/core/schemas/builders/object/types.d.ts +2 -2
  52. package/core/schemas/builders/object-like/getObjectLikeUtils.js +3 -12
  53. package/core/schemas/builders/record/record.js +49 -60
  54. package/core/schemas/builders/schema-utils/getSchemaUtils.d.ts +2 -2
  55. package/core/schemas/builders/schema-utils/getSchemaUtils.js +18 -21
  56. package/core/schemas/builders/set/set.js +6 -15
  57. package/core/schemas/builders/undiscriminated-union/undiscriminatedUnion.js +21 -32
  58. package/core/schemas/builders/union/union.js +51 -62
  59. package/core/schemas/utils/maybeSkipValidation.js +3 -12
  60. package/dist/Client.d.ts +9 -0
  61. package/dist/api/resources/actions/client/Client.d.ts +9 -0
  62. package/dist/api/resources/actions/client/Client.js +18 -15
  63. package/dist/api/resources/commons/types/EntityType.d.ts +2 -1
  64. package/dist/api/resources/commons/types/EntityType.js +1 -0
  65. package/dist/api/resources/commons/types/FeedbackBase.d.ts +10 -0
  66. package/dist/api/resources/commons/types/index.d.ts +1 -1
  67. package/dist/api/resources/commons/types/index.js +1 -1
  68. package/dist/api/resources/conversation/client/Client.d.ts +18 -3
  69. package/dist/api/resources/conversation/client/Client.js +71 -58
  70. package/dist/api/resources/conversation/types/FeedbackRequest.d.ts +8 -1
  71. package/dist/api/resources/knowledge/client/Client.d.ts +9 -0
  72. package/dist/api/resources/knowledge/client/Client.js +44 -37
  73. package/dist/api/resources/triggers/client/Client.d.ts +9 -0
  74. package/dist/api/resources/triggers/client/Client.js +18 -15
  75. package/dist/api/resources/users/client/Client.d.ts +9 -0
  76. package/dist/api/resources/users/client/Client.js +13 -11
  77. package/dist/core/fetcher/Fetcher.d.ts +4 -1
  78. package/dist/core/fetcher/Fetcher.js +18 -159
  79. package/dist/core/fetcher/createRequestUrl.d.ts +1 -0
  80. package/dist/core/fetcher/createRequestUrl.js +6 -0
  81. package/dist/core/fetcher/getFetchFn.d.ts +4 -0
  82. package/dist/core/fetcher/getFetchFn.js +32 -0
  83. package/dist/core/fetcher/getRequestBody.d.ts +7 -0
  84. package/dist/core/fetcher/getRequestBody.js +19 -0
  85. package/dist/core/fetcher/getResponseBody.d.ts +1 -0
  86. package/dist/core/fetcher/getResponseBody.js +48 -0
  87. package/dist/core/fetcher/makeRequest.d.ts +1 -0
  88. package/dist/core/fetcher/makeRequest.js +38 -0
  89. package/dist/core/fetcher/requestWithRetries.d.ts +1 -0
  90. package/dist/core/fetcher/requestWithRetries.js +28 -0
  91. package/dist/core/fetcher/signals.d.ts +12 -0
  92. package/dist/core/fetcher/signals.js +32 -0
  93. package/dist/core/fetcher/stream-wrappers/Node18UniversalStreamWrapper.d.ts +30 -0
  94. package/dist/core/fetcher/stream-wrappers/Node18UniversalStreamWrapper.js +222 -0
  95. package/dist/core/fetcher/stream-wrappers/NodePre18StreamWrapper.d.ts +21 -0
  96. package/dist/core/fetcher/stream-wrappers/NodePre18StreamWrapper.js +104 -0
  97. package/dist/core/fetcher/stream-wrappers/UndiciStreamWrapper.d.ts +30 -0
  98. package/dist/core/fetcher/stream-wrappers/UndiciStreamWrapper.js +204 -0
  99. package/dist/core/fetcher/stream-wrappers/chooseStreamWrapper.d.ts +17 -0
  100. package/dist/core/fetcher/stream-wrappers/chooseStreamWrapper.js +23 -0
  101. package/dist/core/runtime/runtime.d.ts +1 -0
  102. package/dist/core/runtime/runtime.js +1 -0
  103. package/dist/core/schemas/Schema.d.ts +7 -4
  104. package/dist/core/schemas/builders/lazy/lazy.d.ts +2 -2
  105. package/dist/core/schemas/builders/lazy/lazy.js +8 -19
  106. package/dist/core/schemas/builders/lazy/lazyObject.js +1 -10
  107. package/dist/core/schemas/builders/list/list.js +31 -44
  108. package/dist/core/schemas/builders/object/object.js +90 -111
  109. package/dist/core/schemas/builders/object/types.d.ts +2 -2
  110. package/dist/core/schemas/builders/object-like/getObjectLikeUtils.js +3 -12
  111. package/dist/core/schemas/builders/record/record.js +49 -60
  112. package/dist/core/schemas/builders/schema-utils/getSchemaUtils.d.ts +2 -2
  113. package/dist/core/schemas/builders/schema-utils/getSchemaUtils.js +18 -21
  114. package/dist/core/schemas/builders/set/set.js +6 -15
  115. package/dist/core/schemas/builders/undiscriminated-union/undiscriminatedUnion.js +21 -32
  116. package/dist/core/schemas/builders/union/union.js +51 -62
  117. package/dist/core/schemas/utils/maybeSkipValidation.js +3 -12
  118. package/dist/serialization/resources/commons/types/EntityType.d.ts +1 -1
  119. package/dist/serialization/resources/commons/types/EntityType.js +1 -0
  120. package/{serialization/resources/commons/types/Feedback.d.ts → dist/serialization/resources/commons/types/FeedbackBase.d.ts} +2 -5
  121. package/{serialization/resources/commons/types/Feedback.js → dist/serialization/resources/commons/types/FeedbackBase.js} +1 -4
  122. package/dist/serialization/resources/commons/types/index.d.ts +1 -1
  123. package/dist/serialization/resources/commons/types/index.js +1 -1
  124. package/dist/serialization/resources/conversation/types/FeedbackRequest.d.ts +7 -2
  125. package/dist/serialization/resources/conversation/types/FeedbackRequest.js +10 -2
  126. package/package.json +7 -2
  127. package/reference.md +1723 -0
  128. package/serialization/resources/commons/types/EntityType.d.ts +1 -1
  129. package/serialization/resources/commons/types/EntityType.js +1 -0
  130. package/{dist/serialization/resources/commons/types/Feedback.d.ts → serialization/resources/commons/types/FeedbackBase.d.ts} +2 -5
  131. package/{dist/serialization/resources/commons/types/Feedback.js → serialization/resources/commons/types/FeedbackBase.js} +1 -4
  132. package/serialization/resources/commons/types/index.d.ts +1 -1
  133. package/serialization/resources/commons/types/index.js +1 -1
  134. package/serialization/resources/conversation/types/FeedbackRequest.d.ts +7 -2
  135. package/serialization/resources/conversation/types/FeedbackRequest.js +10 -2
  136. package/api/resources/commons/types/Feedback.d.ts +0 -16
  137. package/dist/api/resources/commons/types/Feedback.d.ts +0 -16
  138. /package/api/resources/commons/types/{Feedback.js → FeedbackBase.js} +0 -0
  139. /package/dist/api/resources/commons/types/{Feedback.js → FeedbackBase.js} +0 -0
@@ -1,12 +1,3 @@
1
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
- return new (P || (P = Promise))(function (resolve, reject) {
4
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
- step((generator = generator.apply(thisArg, _arguments || [])).next());
8
- });
9
- };
10
1
  import { getSchemaUtils } from "../schema-utils";
11
2
  export function lazy(getter) {
12
3
  const baseSchema = constructLazyBaseSchema(getter);
@@ -14,17 +5,15 @@ export function lazy(getter) {
14
5
  }
15
6
  export function constructLazyBaseSchema(getter) {
16
7
  return {
17
- parse: (raw, opts) => __awaiter(this, void 0, void 0, function* () { return (yield getMemoizedSchema(getter)).parse(raw, opts); }),
18
- json: (parsed, opts) => __awaiter(this, void 0, void 0, function* () { return (yield getMemoizedSchema(getter)).json(parsed, opts); }),
19
- getType: () => __awaiter(this, void 0, void 0, function* () { return (yield getMemoizedSchema(getter)).getType(); }),
8
+ parse: (raw, opts) => getMemoizedSchema(getter).parse(raw, opts),
9
+ json: (parsed, opts) => getMemoizedSchema(getter).json(parsed, opts),
10
+ getType: () => getMemoizedSchema(getter).getType(),
20
11
  };
21
12
  }
22
13
  export function getMemoizedSchema(getter) {
23
- return __awaiter(this, void 0, void 0, function* () {
24
- const castedGetter = getter;
25
- if (castedGetter.__zurg_memoized == null) {
26
- castedGetter.__zurg_memoized = yield getter();
27
- }
28
- return castedGetter.__zurg_memoized;
29
- });
14
+ const castedGetter = getter;
15
+ if (castedGetter.__zurg_memoized == null) {
16
+ castedGetter.__zurg_memoized = getter();
17
+ }
18
+ return castedGetter.__zurg_memoized;
30
19
  }
@@ -1,17 +1,8 @@
1
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
- return new (P || (P = Promise))(function (resolve, reject) {
4
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
- step((generator = generator.apply(thisArg, _arguments || [])).next());
8
- });
9
- };
10
1
  import { getObjectUtils } from "../object";
11
2
  import { getObjectLikeUtils } from "../object-like";
12
3
  import { getSchemaUtils } from "../schema-utils";
13
4
  import { constructLazyBaseSchema, getMemoizedSchema } from "./lazy";
14
5
  export function lazyObject(getter) {
15
- const baseSchema = Object.assign(Object.assign({}, constructLazyBaseSchema(getter)), { _getRawProperties: () => __awaiter(this, void 0, void 0, function* () { return (yield getMemoizedSchema(getter))._getRawProperties(); }), _getParsedProperties: () => __awaiter(this, void 0, void 0, function* () { return (yield getMemoizedSchema(getter))._getParsedProperties(); }) });
6
+ const baseSchema = Object.assign(Object.assign({}, constructLazyBaseSchema(getter)), { _getRawProperties: () => getMemoizedSchema(getter)._getRawProperties(), _getParsedProperties: () => getMemoizedSchema(getter)._getParsedProperties() });
16
7
  return Object.assign(Object.assign(Object.assign(Object.assign({}, baseSchema), getSchemaUtils(baseSchema)), getObjectLikeUtils(baseSchema)), getObjectUtils(baseSchema));
17
8
  }
@@ -1,23 +1,12 @@
1
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
- return new (P || (P = Promise))(function (resolve, reject) {
4
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
- step((generator = generator.apply(thisArg, _arguments || [])).next());
8
- });
9
- };
10
1
  import { SchemaType } from "../../Schema";
11
2
  import { getErrorMessageForIncorrectType } from "../../utils/getErrorMessageForIncorrectType";
12
3
  import { maybeSkipValidation } from "../../utils/maybeSkipValidation";
13
4
  import { getSchemaUtils } from "../schema-utils";
14
5
  export function list(schema) {
15
6
  const baseSchema = {
16
- parse: (raw, opts) => __awaiter(this, void 0, void 0, function* () {
17
- return validateAndTransformArray(raw, (item, index) => {
18
- var _a;
19
- return schema.parse(item, Object.assign(Object.assign({}, opts), { breadcrumbsPrefix: [...((_a = opts === null || opts === void 0 ? void 0 : opts.breadcrumbsPrefix) !== null && _a !== void 0 ? _a : []), `[${index}]`] }));
20
- });
7
+ parse: (raw, opts) => validateAndTransformArray(raw, (item, index) => {
8
+ var _a;
9
+ return schema.parse(item, Object.assign(Object.assign({}, opts), { breadcrumbsPrefix: [...((_a = opts === null || opts === void 0 ? void 0 : opts.breadcrumbsPrefix) !== null && _a !== void 0 ? _a : []), `[${index}]`] }));
21
10
  }),
22
11
  json: (parsed, opts) => validateAndTransformArray(parsed, (item, index) => {
23
12
  var _a;
@@ -28,37 +17,35 @@ export function list(schema) {
28
17
  return Object.assign(Object.assign({}, maybeSkipValidation(baseSchema)), getSchemaUtils(baseSchema));
29
18
  }
30
19
  function validateAndTransformArray(value, transformItem) {
31
- return __awaiter(this, void 0, void 0, function* () {
32
- if (!Array.isArray(value)) {
20
+ if (!Array.isArray(value)) {
21
+ return {
22
+ ok: false,
23
+ errors: [
24
+ {
25
+ message: getErrorMessageForIncorrectType(value, "list"),
26
+ path: [],
27
+ },
28
+ ],
29
+ };
30
+ }
31
+ const maybeValidItems = value.map((item, index) => transformItem(item, index));
32
+ return maybeValidItems.reduce((acc, item) => {
33
+ if (acc.ok && item.ok) {
33
34
  return {
34
- ok: false,
35
- errors: [
36
- {
37
- message: getErrorMessageForIncorrectType(value, "list"),
38
- path: [],
39
- },
40
- ],
35
+ ok: true,
36
+ value: [...acc.value, item.value],
41
37
  };
42
38
  }
43
- const maybeValidItems = yield Promise.all(value.map((item, index) => transformItem(item, index)));
44
- return maybeValidItems.reduce((acc, item) => {
45
- if (acc.ok && item.ok) {
46
- return {
47
- ok: true,
48
- value: [...acc.value, item.value],
49
- };
50
- }
51
- const errors = [];
52
- if (!acc.ok) {
53
- errors.push(...acc.errors);
54
- }
55
- if (!item.ok) {
56
- errors.push(...item.errors);
57
- }
58
- return {
59
- ok: false,
60
- errors,
61
- };
62
- }, { ok: true, value: [] });
63
- });
39
+ const errors = [];
40
+ if (!acc.ok) {
41
+ errors.push(...acc.errors);
42
+ }
43
+ if (!item.ok) {
44
+ errors.push(...item.errors);
45
+ }
46
+ return {
47
+ ok: false,
48
+ errors,
49
+ };
50
+ }, { ok: true, value: [] });
64
51
  }
@@ -1,12 +1,3 @@
1
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
- return new (P || (P = Promise))(function (resolve, reject) {
4
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
- step((generator = generator.apply(thisArg, _arguments || [])).next());
8
- });
9
- };
10
1
  import { SchemaType } from "../../Schema";
11
2
  import { entries } from "../../utils/entries";
12
3
  import { filterObject } from "../../utils/filterObject";
@@ -20,9 +11,9 @@ import { getSchemaUtils } from "../schema-utils";
20
11
  import { isProperty } from "./property";
21
12
  export function object(schemas) {
22
13
  const baseSchema = {
23
- _getRawProperties: () => Promise.resolve(Object.entries(schemas).map(([parsedKey, propertySchema]) => isProperty(propertySchema) ? propertySchema.rawKey : parsedKey)),
24
- _getParsedProperties: () => Promise.resolve(keys(schemas)),
25
- parse: (raw, opts) => __awaiter(this, void 0, void 0, function* () {
14
+ _getRawProperties: () => Object.entries(schemas).map(([parsedKey, propertySchema]) => isProperty(propertySchema) ? propertySchema.rawKey : parsedKey),
15
+ _getParsedProperties: () => keys(schemas),
16
+ parse: (raw, opts) => {
26
17
  const rawKeyToProperty = {};
27
18
  const requiredKeys = [];
28
19
  for (const [parsedKey, schemaOrObjectProperty] of entries(schemas)) {
@@ -59,9 +50,10 @@ export function object(schemas) {
59
50
  unrecognizedObjectKeys: opts === null || opts === void 0 ? void 0 : opts.unrecognizedObjectKeys,
60
51
  skipValidation: opts === null || opts === void 0 ? void 0 : opts.skipValidation,
61
52
  breadcrumbsPrefix: opts === null || opts === void 0 ? void 0 : opts.breadcrumbsPrefix,
53
+ omitUndefined: opts === null || opts === void 0 ? void 0 : opts.omitUndefined,
62
54
  });
63
- }),
64
- json: (parsed, opts) => __awaiter(this, void 0, void 0, function* () {
55
+ },
56
+ json: (parsed, opts) => {
65
57
  const requiredKeys = [];
66
58
  for (const [parsedKey, schemaOrObjectProperty] of entries(schemas)) {
67
59
  const valueSchema = isProperty(schemaOrObjectProperty)
@@ -102,109 +94,98 @@ export function object(schemas) {
102
94
  unrecognizedObjectKeys: opts === null || opts === void 0 ? void 0 : opts.unrecognizedObjectKeys,
103
95
  skipValidation: opts === null || opts === void 0 ? void 0 : opts.skipValidation,
104
96
  breadcrumbsPrefix: opts === null || opts === void 0 ? void 0 : opts.breadcrumbsPrefix,
97
+ omitUndefined: opts === null || opts === void 0 ? void 0 : opts.omitUndefined,
105
98
  });
106
- }),
99
+ },
107
100
  getType: () => SchemaType.OBJECT,
108
101
  };
109
102
  return Object.assign(Object.assign(Object.assign(Object.assign({}, maybeSkipValidation(baseSchema)), getSchemaUtils(baseSchema)), getObjectLikeUtils(baseSchema)), getObjectUtils(baseSchema));
110
103
  }
111
104
  function validateAndTransformObject({ value, requiredKeys, getProperty, unrecognizedObjectKeys = "fail", skipValidation = false, breadcrumbsPrefix = [], }) {
112
- return __awaiter(this, void 0, void 0, function* () {
113
- if (!isPlainObject(value)) {
114
- return {
115
- ok: false,
116
- errors: [
117
- {
118
- path: breadcrumbsPrefix,
119
- message: getErrorMessageForIncorrectType(value, "object"),
120
- },
121
- ],
122
- };
123
- }
124
- const missingRequiredKeys = new Set(requiredKeys);
125
- const errors = [];
126
- const transformed = {};
127
- for (const [preTransformedKey, preTransformedItemValue] of Object.entries(value)) {
128
- const property = getProperty(preTransformedKey);
129
- if (property != null) {
130
- missingRequiredKeys.delete(preTransformedKey);
131
- const value = yield property.transform(preTransformedItemValue);
132
- if (value.ok) {
133
- transformed[property.transformedKey] = value.value;
134
- }
135
- else {
136
- transformed[preTransformedKey] = preTransformedItemValue;
137
- errors.push(...value.errors);
138
- }
105
+ if (!isPlainObject(value)) {
106
+ return {
107
+ ok: false,
108
+ errors: [
109
+ {
110
+ path: breadcrumbsPrefix,
111
+ message: getErrorMessageForIncorrectType(value, "object"),
112
+ },
113
+ ],
114
+ };
115
+ }
116
+ const missingRequiredKeys = new Set(requiredKeys);
117
+ const errors = [];
118
+ const transformed = {};
119
+ for (const [preTransformedKey, preTransformedItemValue] of Object.entries(value)) {
120
+ const property = getProperty(preTransformedKey);
121
+ if (property != null) {
122
+ missingRequiredKeys.delete(preTransformedKey);
123
+ const value = property.transform(preTransformedItemValue);
124
+ if (value.ok) {
125
+ transformed[property.transformedKey] = value.value;
139
126
  }
140
127
  else {
141
- switch (unrecognizedObjectKeys) {
142
- case "fail":
143
- errors.push({
144
- path: [...breadcrumbsPrefix, preTransformedKey],
145
- message: `Unexpected key "${preTransformedKey}"`,
146
- });
147
- break;
148
- case "strip":
149
- break;
150
- case "passthrough":
151
- transformed[preTransformedKey] = preTransformedItemValue;
152
- break;
153
- }
128
+ transformed[preTransformedKey] = preTransformedItemValue;
129
+ errors.push(...value.errors);
154
130
  }
155
131
  }
156
- errors.push(...requiredKeys
157
- .filter((key) => missingRequiredKeys.has(key))
158
- .map((key) => ({
159
- path: breadcrumbsPrefix,
160
- message: `Missing required key "${key}"`,
161
- })));
162
- if (errors.length === 0 || skipValidation) {
163
- return {
164
- ok: true,
165
- value: transformed,
166
- };
167
- }
168
132
  else {
169
- return {
170
- ok: false,
171
- errors,
172
- };
133
+ switch (unrecognizedObjectKeys) {
134
+ case "fail":
135
+ errors.push({
136
+ path: [...breadcrumbsPrefix, preTransformedKey],
137
+ message: `Unexpected key "${preTransformedKey}"`,
138
+ });
139
+ break;
140
+ case "strip":
141
+ break;
142
+ case "passthrough":
143
+ transformed[preTransformedKey] = preTransformedItemValue;
144
+ break;
145
+ }
173
146
  }
174
- });
147
+ }
148
+ errors.push(...requiredKeys
149
+ .filter((key) => missingRequiredKeys.has(key))
150
+ .map((key) => ({
151
+ path: breadcrumbsPrefix,
152
+ message: `Missing required key "${key}"`,
153
+ })));
154
+ if (errors.length === 0 || skipValidation) {
155
+ return {
156
+ ok: true,
157
+ value: transformed,
158
+ };
159
+ }
160
+ else {
161
+ return {
162
+ ok: false,
163
+ errors,
164
+ };
165
+ }
175
166
  }
176
167
  export function getObjectUtils(schema) {
177
168
  return {
178
169
  extend: (extension) => {
179
170
  const baseSchema = {
180
- _getParsedProperties: () => __awaiter(this, void 0, void 0, function* () {
181
- return [
182
- ...(yield schema._getParsedProperties()),
183
- ...(yield extension._getParsedProperties()),
184
- ];
185
- }),
186
- _getRawProperties: () => __awaiter(this, void 0, void 0, function* () {
187
- return [
188
- ...(yield schema._getRawProperties()),
189
- ...(yield extension._getRawProperties()),
190
- ];
191
- }),
192
- parse: (raw, opts) => __awaiter(this, void 0, void 0, function* () {
171
+ _getParsedProperties: () => [...schema._getParsedProperties(), ...extension._getParsedProperties()],
172
+ _getRawProperties: () => [...schema._getRawProperties(), ...extension._getRawProperties()],
173
+ parse: (raw, opts) => {
193
174
  return validateAndTransformExtendedObject({
194
- extensionKeys: yield extension._getRawProperties(),
175
+ extensionKeys: extension._getRawProperties(),
195
176
  value: raw,
196
177
  transformBase: (rawBase) => schema.parse(rawBase, opts),
197
178
  transformExtension: (rawExtension) => extension.parse(rawExtension, opts),
198
179
  });
199
- }),
200
- json: (parsed, opts) => __awaiter(this, void 0, void 0, function* () {
180
+ },
181
+ json: (parsed, opts) => {
201
182
  return validateAndTransformExtendedObject({
202
- extensionKeys: yield extension._getParsedProperties(),
183
+ extensionKeys: extension._getParsedProperties(),
203
184
  value: parsed,
204
185
  transformBase: (parsedBase) => schema.json(parsedBase, opts),
205
186
  transformExtension: (parsedExtension) => extension.json(parsedExtension, opts),
206
187
  });
207
- }),
188
+ },
208
189
  getType: () => SchemaType.OBJECT,
209
190
  };
210
191
  return Object.assign(Object.assign(Object.assign(Object.assign({}, baseSchema), getSchemaUtils(baseSchema)), getObjectLikeUtils(baseSchema)), getObjectUtils(baseSchema));
@@ -212,27 +193,25 @@ export function getObjectUtils(schema) {
212
193
  };
213
194
  }
214
195
  function validateAndTransformExtendedObject({ extensionKeys, value, transformBase, transformExtension, }) {
215
- return __awaiter(this, void 0, void 0, function* () {
216
- const extensionPropertiesSet = new Set(extensionKeys);
217
- const [extensionProperties, baseProperties] = partition(keys(value), (key) => extensionPropertiesSet.has(key));
218
- const transformedBase = yield transformBase(filterObject(value, baseProperties));
219
- const transformedExtension = yield transformExtension(filterObject(value, extensionProperties));
220
- if (transformedBase.ok && transformedExtension.ok) {
221
- return {
222
- ok: true,
223
- value: Object.assign(Object.assign({}, transformedBase.value), transformedExtension.value),
224
- };
225
- }
226
- else {
227
- return {
228
- ok: false,
229
- errors: [
230
- ...(transformedBase.ok ? [] : transformedBase.errors),
231
- ...(transformedExtension.ok ? [] : transformedExtension.errors),
232
- ],
233
- };
234
- }
235
- });
196
+ const extensionPropertiesSet = new Set(extensionKeys);
197
+ const [extensionProperties, baseProperties] = partition(keys(value), (key) => extensionPropertiesSet.has(key));
198
+ const transformedBase = transformBase(filterObject(value, baseProperties));
199
+ const transformedExtension = transformExtension(filterObject(value, extensionProperties));
200
+ if (transformedBase.ok && transformedExtension.ok) {
201
+ return {
202
+ ok: true,
203
+ value: Object.assign(Object.assign({}, transformedBase.value), transformedExtension.value),
204
+ };
205
+ }
206
+ else {
207
+ return {
208
+ ok: false,
209
+ errors: [
210
+ ...(transformedBase.ok ? [] : transformedBase.errors),
211
+ ...(transformedExtension.ok ? [] : transformedExtension.errors),
212
+ ],
213
+ };
214
+ }
236
215
  }
237
216
  function isSchemaRequired(schema) {
238
217
  return !isSchemaOptional(schema);
@@ -5,8 +5,8 @@ import { SchemaUtils } from "../schema-utils";
5
5
  import { Property } from "./property";
6
6
  export declare type ObjectSchema<Raw, Parsed> = BaseObjectSchema<Raw, Parsed> & ObjectLikeUtils<Raw, Parsed> & ObjectUtils<Raw, Parsed> & SchemaUtils<Raw, Parsed>;
7
7
  export interface BaseObjectSchema<Raw, Parsed> extends BaseSchema<Raw, Parsed> {
8
- _getRawProperties: () => Promise<(keyof Raw)[]>;
9
- _getParsedProperties: () => Promise<(keyof Parsed)[]>;
8
+ _getRawProperties: () => (keyof Raw)[];
9
+ _getParsedProperties: () => (keyof Parsed)[];
10
10
  }
11
11
  export interface ObjectUtils<Raw, Parsed> {
12
12
  extend: <RawExtension, ParsedExtension>(schemas: ObjectSchema<RawExtension, ParsedExtension>) => ObjectSchema<Raw & RawExtension, Parsed & ParsedExtension>;
@@ -1,12 +1,3 @@
1
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
- return new (P || (P = Promise))(function (resolve, reject) {
4
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
- step((generator = generator.apply(thisArg, _arguments || [])).next());
8
- });
9
- };
10
1
  import { filterObject } from "../../utils/filterObject";
11
2
  import { getErrorMessageForIncorrectType } from "../../utils/getErrorMessageForIncorrectType";
12
3
  import { isPlainObject } from "../../utils/isPlainObject";
@@ -21,8 +12,8 @@ export function getObjectLikeUtils(schema) {
21
12
  */
22
13
  export function withParsedProperties(objectLike, properties) {
23
14
  const objectSchema = {
24
- parse: (raw, opts) => __awaiter(this, void 0, void 0, function* () {
25
- const parsedObject = yield objectLike.parse(raw, opts);
15
+ parse: (raw, opts) => {
16
+ const parsedObject = objectLike.parse(raw, opts);
26
17
  if (!parsedObject.ok) {
27
18
  return parsedObject;
28
19
  }
@@ -33,7 +24,7 @@ export function withParsedProperties(objectLike, properties) {
33
24
  ok: true,
34
25
  value: Object.assign(Object.assign({}, parsedObject.value), additionalProperties),
35
26
  };
36
- }),
27
+ },
37
28
  json: (parsed, opts) => {
38
29
  var _a;
39
30
  if (!isPlainObject(parsed)) {
@@ -1,12 +1,3 @@
1
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
- return new (P || (P = Promise))(function (resolve, reject) {
4
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
- step((generator = generator.apply(thisArg, _arguments || [])).next());
8
- });
9
- };
10
1
  import { SchemaType } from "../../Schema";
11
2
  import { entries } from "../../utils/entries";
12
3
  import { getErrorMessageForIncorrectType } from "../../utils/getErrorMessageForIncorrectType";
@@ -15,10 +6,10 @@ import { maybeSkipValidation } from "../../utils/maybeSkipValidation";
15
6
  import { getSchemaUtils } from "../schema-utils";
16
7
  export function record(keySchema, valueSchema) {
17
8
  const baseSchema = {
18
- parse: (raw, opts) => __awaiter(this, void 0, void 0, function* () {
9
+ parse: (raw, opts) => {
19
10
  return validateAndTransformRecord({
20
11
  value: raw,
21
- isKeyNumeric: (yield keySchema.getType()) === SchemaType.NUMBER,
12
+ isKeyNumeric: keySchema.getType() === SchemaType.NUMBER,
22
13
  transformKey: (key) => {
23
14
  var _a;
24
15
  return keySchema.parse(key, Object.assign(Object.assign({}, opts), { breadcrumbsPrefix: [...((_a = opts === null || opts === void 0 ? void 0 : opts.breadcrumbsPrefix) !== null && _a !== void 0 ? _a : []), `${key} (key)`] }));
@@ -29,11 +20,11 @@ export function record(keySchema, valueSchema) {
29
20
  },
30
21
  breadcrumbsPrefix: opts === null || opts === void 0 ? void 0 : opts.breadcrumbsPrefix,
31
22
  });
32
- }),
33
- json: (parsed, opts) => __awaiter(this, void 0, void 0, function* () {
23
+ },
24
+ json: (parsed, opts) => {
34
25
  return validateAndTransformRecord({
35
26
  value: parsed,
36
- isKeyNumeric: (yield keySchema.getType()) === SchemaType.NUMBER,
27
+ isKeyNumeric: keySchema.getType() === SchemaType.NUMBER,
37
28
  transformKey: (key) => {
38
29
  var _a;
39
30
  return keySchema.json(key, Object.assign(Object.assign({}, opts), { breadcrumbsPrefix: [...((_a = opts === null || opts === void 0 ? void 0 : opts.breadcrumbsPrefix) !== null && _a !== void 0 ? _a : []), `${key} (key)`] }));
@@ -44,59 +35,57 @@ export function record(keySchema, valueSchema) {
44
35
  },
45
36
  breadcrumbsPrefix: opts === null || opts === void 0 ? void 0 : opts.breadcrumbsPrefix,
46
37
  });
47
- }),
38
+ },
48
39
  getType: () => SchemaType.RECORD,
49
40
  };
50
41
  return Object.assign(Object.assign({}, maybeSkipValidation(baseSchema)), getSchemaUtils(baseSchema));
51
42
  }
52
43
  function validateAndTransformRecord({ value, isKeyNumeric, transformKey, transformValue, breadcrumbsPrefix = [], }) {
53
- return __awaiter(this, void 0, void 0, function* () {
54
- if (!isPlainObject(value)) {
55
- return {
56
- ok: false,
57
- errors: [
58
- {
59
- path: breadcrumbsPrefix,
60
- message: getErrorMessageForIncorrectType(value, "object"),
61
- },
62
- ],
63
- };
44
+ if (!isPlainObject(value)) {
45
+ return {
46
+ ok: false,
47
+ errors: [
48
+ {
49
+ path: breadcrumbsPrefix,
50
+ message: getErrorMessageForIncorrectType(value, "object"),
51
+ },
52
+ ],
53
+ };
54
+ }
55
+ return entries(value).reduce((accPromise, [stringKey, value]) => {
56
+ // skip nullish keys
57
+ if (value == null) {
58
+ return accPromise;
64
59
  }
65
- return entries(value).reduce((accPromise, [stringKey, value]) => __awaiter(this, void 0, void 0, function* () {
66
- // skip nullish keys
67
- if (value == null) {
68
- return accPromise;
69
- }
70
- const acc = yield accPromise;
71
- let key = stringKey;
72
- if (isKeyNumeric) {
73
- const numberKey = stringKey.length > 0 ? Number(stringKey) : NaN;
74
- if (!isNaN(numberKey)) {
75
- key = numberKey;
76
- }
77
- }
78
- const transformedKey = yield transformKey(key);
79
- const transformedValue = yield transformValue(value, key);
80
- if (acc.ok && transformedKey.ok && transformedValue.ok) {
81
- return {
82
- ok: true,
83
- value: Object.assign(Object.assign({}, acc.value), { [transformedKey.value]: transformedValue.value }),
84
- };
85
- }
86
- const errors = [];
87
- if (!acc.ok) {
88
- errors.push(...acc.errors);
89
- }
90
- if (!transformedKey.ok) {
91
- errors.push(...transformedKey.errors);
92
- }
93
- if (!transformedValue.ok) {
94
- errors.push(...transformedValue.errors);
60
+ const acc = accPromise;
61
+ let key = stringKey;
62
+ if (isKeyNumeric) {
63
+ const numberKey = stringKey.length > 0 ? Number(stringKey) : NaN;
64
+ if (!isNaN(numberKey)) {
65
+ key = numberKey;
95
66
  }
67
+ }
68
+ const transformedKey = transformKey(key);
69
+ const transformedValue = transformValue(value, key);
70
+ if (acc.ok && transformedKey.ok && transformedValue.ok) {
96
71
  return {
97
- ok: false,
98
- errors,
72
+ ok: true,
73
+ value: Object.assign(Object.assign({}, acc.value), { [transformedKey.value]: transformedValue.value }),
99
74
  };
100
- }), Promise.resolve({ ok: true, value: {} }));
101
- });
75
+ }
76
+ const errors = [];
77
+ if (!acc.ok) {
78
+ errors.push(...acc.errors);
79
+ }
80
+ if (!transformedKey.ok) {
81
+ errors.push(...transformedKey.errors);
82
+ }
83
+ if (!transformedValue.ok) {
84
+ errors.push(...transformedValue.errors);
85
+ }
86
+ return {
87
+ ok: false,
88
+ errors,
89
+ };
90
+ }, { ok: true, value: {} });
102
91
  }
@@ -2,8 +2,8 @@ import { BaseSchema, Schema, SchemaOptions } from "../../Schema";
2
2
  export interface SchemaUtils<Raw, Parsed> {
3
3
  optional: () => Schema<Raw | null | undefined, Parsed | undefined>;
4
4
  transform: <Transformed>(transformer: SchemaTransformer<Parsed, Transformed>) => Schema<Raw, Transformed>;
5
- parseOrThrow: (raw: unknown, opts?: SchemaOptions) => Promise<Parsed>;
6
- jsonOrThrow: (raw: unknown, opts?: SchemaOptions) => Promise<Raw>;
5
+ parseOrThrow: (raw: unknown, opts?: SchemaOptions) => Parsed;
6
+ jsonOrThrow: (raw: unknown, opts?: SchemaOptions) => Raw;
7
7
  }
8
8
  export interface SchemaTransformer<Parsed, Transformed> {
9
9
  transform: (parsed: Parsed) => Transformed;