@awsless/validate 0.0.20 → 0.0.22
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.cjs +33 -15
- package/dist/index.d.cts +30 -11
- package/dist/index.d.ts +30 -11
- package/dist/index.js +34 -16
- package/package.json +5 -5
package/dist/index.cjs
CHANGED
|
@@ -189,34 +189,52 @@ var snsTopic = (body) => {
|
|
|
189
189
|
// src/schema/aws/dynamodb-stream.ts
|
|
190
190
|
var import_valibot9 = require("valibot");
|
|
191
191
|
var dynamoDbStream = (table) => {
|
|
192
|
-
const
|
|
192
|
+
const unmarshall = () => (0, import_valibot9.transform)((0, import_valibot9.unknown)(), (value) => table.unmarshall(value));
|
|
193
193
|
return (0, import_valibot9.transform)(
|
|
194
194
|
(0, import_valibot9.object)(
|
|
195
195
|
{
|
|
196
196
|
Records: (0, import_valibot9.array)(
|
|
197
|
-
(0, import_valibot9.
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
197
|
+
(0, import_valibot9.variant)("eventName", [
|
|
198
|
+
(0, import_valibot9.object)({
|
|
199
|
+
eventName: (0, import_valibot9.literal)("MODIFY"),
|
|
200
|
+
dynamodb: (0, import_valibot9.object)({
|
|
201
|
+
Keys: unmarshall(),
|
|
202
|
+
OldImage: unmarshall(),
|
|
203
|
+
NewImage: unmarshall()
|
|
204
|
+
})
|
|
205
|
+
}),
|
|
206
|
+
(0, import_valibot9.object)({
|
|
207
|
+
eventName: (0, import_valibot9.literal)("INSERT"),
|
|
208
|
+
dynamodb: (0, import_valibot9.object)({
|
|
209
|
+
Keys: unmarshall(),
|
|
210
|
+
NewImage: unmarshall()
|
|
211
|
+
})
|
|
212
|
+
}),
|
|
213
|
+
(0, import_valibot9.object)({
|
|
214
|
+
eventName: (0, import_valibot9.literal)("REMOVE"),
|
|
215
|
+
dynamodb: (0, import_valibot9.object)({
|
|
216
|
+
Keys: unmarshall(),
|
|
217
|
+
OldImage: unmarshall()
|
|
218
|
+
})
|
|
205
219
|
})
|
|
206
|
-
|
|
220
|
+
])
|
|
207
221
|
)
|
|
208
222
|
},
|
|
209
223
|
"Invalid DynamoDB Stream input"
|
|
210
224
|
),
|
|
211
225
|
(input) => {
|
|
212
226
|
return input.Records.map((record) => {
|
|
213
|
-
const item =
|
|
214
|
-
return {
|
|
227
|
+
const item = {
|
|
215
228
|
event: record.eventName.toLowerCase(),
|
|
216
|
-
keys:
|
|
217
|
-
old: item.dynamodb.OldImage,
|
|
218
|
-
new: item.dynamodb.NewImage
|
|
229
|
+
keys: record.dynamodb.Keys
|
|
219
230
|
};
|
|
231
|
+
if ("OldImage" in record.dynamodb) {
|
|
232
|
+
item.old = record.dynamodb.OldImage;
|
|
233
|
+
}
|
|
234
|
+
if ("NewImage" in record.dynamodb) {
|
|
235
|
+
item.new = record.dynamodb.NewImage;
|
|
236
|
+
}
|
|
237
|
+
return item;
|
|
220
238
|
});
|
|
221
239
|
}
|
|
222
240
|
);
|
package/dist/index.d.cts
CHANGED
|
@@ -47,22 +47,41 @@ type SnsTopicSchema<S extends BaseSchema = UnknownSchema> = BaseSchema<Input<S>
|
|
|
47
47
|
}, Output<S>[]>;
|
|
48
48
|
declare const snsTopic: <S extends BaseSchema = UnknownSchema>(body?: S) => SnsTopicSchema<S>;
|
|
49
49
|
|
|
50
|
-
type EventName = 'MODIFY' | 'INSERT' | 'REMOVE';
|
|
51
50
|
type DynamoDBStreamSchema<T extends AnyTable> = BaseSchema<{
|
|
52
|
-
Records: {
|
|
53
|
-
eventName:
|
|
51
|
+
Records: Array<{
|
|
52
|
+
eventName: 'MODIFY';
|
|
54
53
|
dynamodb: {
|
|
55
54
|
Keys: unknown;
|
|
56
|
-
OldImage
|
|
57
|
-
NewImage
|
|
55
|
+
OldImage: unknown;
|
|
56
|
+
NewImage: unknown;
|
|
58
57
|
};
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
|
|
58
|
+
} | {
|
|
59
|
+
eventName: 'INSERT';
|
|
60
|
+
dynamodb: {
|
|
61
|
+
Keys: unknown;
|
|
62
|
+
NewImage: unknown;
|
|
63
|
+
};
|
|
64
|
+
} | {
|
|
65
|
+
eventName: 'REMOVE';
|
|
66
|
+
dynamodb: {
|
|
67
|
+
Keys: unknown;
|
|
68
|
+
OldImage: unknown;
|
|
69
|
+
};
|
|
70
|
+
}>;
|
|
71
|
+
}, Array<{
|
|
72
|
+
event: 'modify';
|
|
73
|
+
keys: PrimaryKey<T>;
|
|
74
|
+
old: Infer<T>;
|
|
75
|
+
new: Infer<T>;
|
|
76
|
+
} | {
|
|
77
|
+
event: 'insert';
|
|
78
|
+
keys: PrimaryKey<T>;
|
|
79
|
+
new: Infer<T>;
|
|
80
|
+
} | {
|
|
81
|
+
event: 'remove';
|
|
62
82
|
keys: PrimaryKey<T>;
|
|
63
|
-
old
|
|
64
|
-
|
|
65
|
-
}[]>;
|
|
83
|
+
old: Infer<T>;
|
|
84
|
+
}>>;
|
|
66
85
|
declare const dynamoDbStream: <T extends AnyTable>(table: T) => DynamoDBStreamSchema<T>;
|
|
67
86
|
|
|
68
87
|
declare function positive<T extends BigFloat | number>(error?: ErrorMessage): valibot.CustomValidation<T>;
|
package/dist/index.d.ts
CHANGED
|
@@ -47,22 +47,41 @@ type SnsTopicSchema<S extends BaseSchema = UnknownSchema> = BaseSchema<Input<S>
|
|
|
47
47
|
}, Output<S>[]>;
|
|
48
48
|
declare const snsTopic: <S extends BaseSchema = UnknownSchema>(body?: S) => SnsTopicSchema<S>;
|
|
49
49
|
|
|
50
|
-
type EventName = 'MODIFY' | 'INSERT' | 'REMOVE';
|
|
51
50
|
type DynamoDBStreamSchema<T extends AnyTable> = BaseSchema<{
|
|
52
|
-
Records: {
|
|
53
|
-
eventName:
|
|
51
|
+
Records: Array<{
|
|
52
|
+
eventName: 'MODIFY';
|
|
54
53
|
dynamodb: {
|
|
55
54
|
Keys: unknown;
|
|
56
|
-
OldImage
|
|
57
|
-
NewImage
|
|
55
|
+
OldImage: unknown;
|
|
56
|
+
NewImage: unknown;
|
|
58
57
|
};
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
|
|
58
|
+
} | {
|
|
59
|
+
eventName: 'INSERT';
|
|
60
|
+
dynamodb: {
|
|
61
|
+
Keys: unknown;
|
|
62
|
+
NewImage: unknown;
|
|
63
|
+
};
|
|
64
|
+
} | {
|
|
65
|
+
eventName: 'REMOVE';
|
|
66
|
+
dynamodb: {
|
|
67
|
+
Keys: unknown;
|
|
68
|
+
OldImage: unknown;
|
|
69
|
+
};
|
|
70
|
+
}>;
|
|
71
|
+
}, Array<{
|
|
72
|
+
event: 'modify';
|
|
73
|
+
keys: PrimaryKey<T>;
|
|
74
|
+
old: Infer<T>;
|
|
75
|
+
new: Infer<T>;
|
|
76
|
+
} | {
|
|
77
|
+
event: 'insert';
|
|
78
|
+
keys: PrimaryKey<T>;
|
|
79
|
+
new: Infer<T>;
|
|
80
|
+
} | {
|
|
81
|
+
event: 'remove';
|
|
62
82
|
keys: PrimaryKey<T>;
|
|
63
|
-
old
|
|
64
|
-
|
|
65
|
-
}[]>;
|
|
83
|
+
old: Infer<T>;
|
|
84
|
+
}>>;
|
|
66
85
|
declare const dynamoDbStream: <T extends AnyTable>(table: T) => DynamoDBStreamSchema<T>;
|
|
67
86
|
|
|
68
87
|
declare function positive<T extends BigFloat | number>(error?: ErrorMessage): valibot.CustomValidation<T>;
|
package/dist/index.js
CHANGED
|
@@ -159,36 +159,54 @@ var snsTopic = (body) => {
|
|
|
159
159
|
};
|
|
160
160
|
|
|
161
161
|
// src/schema/aws/dynamodb-stream.ts
|
|
162
|
-
import { array as array3, literal, object as object4,
|
|
162
|
+
import { array as array3, literal, object as object4, transform as transform7, unknown as unknown3, variant } from "valibot";
|
|
163
163
|
var dynamoDbStream = (table) => {
|
|
164
|
-
const
|
|
164
|
+
const unmarshall = () => transform7(unknown3(), (value) => table.unmarshall(value));
|
|
165
165
|
return transform7(
|
|
166
166
|
object4(
|
|
167
167
|
{
|
|
168
168
|
Records: array3(
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
169
|
+
variant("eventName", [
|
|
170
|
+
object4({
|
|
171
|
+
eventName: literal("MODIFY"),
|
|
172
|
+
dynamodb: object4({
|
|
173
|
+
Keys: unmarshall(),
|
|
174
|
+
OldImage: unmarshall(),
|
|
175
|
+
NewImage: unmarshall()
|
|
176
|
+
})
|
|
177
|
+
}),
|
|
178
|
+
object4({
|
|
179
|
+
eventName: literal("INSERT"),
|
|
180
|
+
dynamodb: object4({
|
|
181
|
+
Keys: unmarshall(),
|
|
182
|
+
NewImage: unmarshall()
|
|
183
|
+
})
|
|
184
|
+
}),
|
|
185
|
+
object4({
|
|
186
|
+
eventName: literal("REMOVE"),
|
|
187
|
+
dynamodb: object4({
|
|
188
|
+
Keys: unmarshall(),
|
|
189
|
+
OldImage: unmarshall()
|
|
190
|
+
})
|
|
177
191
|
})
|
|
178
|
-
|
|
192
|
+
])
|
|
179
193
|
)
|
|
180
194
|
},
|
|
181
195
|
"Invalid DynamoDB Stream input"
|
|
182
196
|
),
|
|
183
197
|
(input) => {
|
|
184
198
|
return input.Records.map((record) => {
|
|
185
|
-
const item =
|
|
186
|
-
return {
|
|
199
|
+
const item = {
|
|
187
200
|
event: record.eventName.toLowerCase(),
|
|
188
|
-
keys:
|
|
189
|
-
old: item.dynamodb.OldImage,
|
|
190
|
-
new: item.dynamodb.NewImage
|
|
201
|
+
keys: record.dynamodb.Keys
|
|
191
202
|
};
|
|
203
|
+
if ("OldImage" in record.dynamodb) {
|
|
204
|
+
item.old = record.dynamodb.OldImage;
|
|
205
|
+
}
|
|
206
|
+
if ("NewImage" in record.dynamodb) {
|
|
207
|
+
item.new = record.dynamodb.NewImage;
|
|
208
|
+
}
|
|
209
|
+
return item;
|
|
192
210
|
});
|
|
193
211
|
}
|
|
194
212
|
);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@awsless/validate",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.22",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"repository": {
|
|
@@ -25,15 +25,15 @@
|
|
|
25
25
|
},
|
|
26
26
|
"peerDependencies": {
|
|
27
27
|
"@awsless/big-float": "^0.1.5",
|
|
28
|
-
"@awsless/
|
|
29
|
-
"@awsless/
|
|
28
|
+
"@awsless/dynamodb": "^0.2.14",
|
|
29
|
+
"@awsless/duration": "^0.0.4",
|
|
30
30
|
"@awsless/json": "^0.0.10"
|
|
31
31
|
},
|
|
32
32
|
"devDependencies": {
|
|
33
33
|
"@awsless/big-float": "^0.1.5",
|
|
34
|
-
"@awsless/
|
|
34
|
+
"@awsless/dynamodb": "^0.2.14",
|
|
35
35
|
"@awsless/json": "^0.0.10",
|
|
36
|
-
"@awsless/
|
|
36
|
+
"@awsless/duration": "^0.0.4"
|
|
37
37
|
},
|
|
38
38
|
"dependencies": {
|
|
39
39
|
"valibot": "^0.30.0"
|