@awsless/validate 0.0.21 → 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 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 marshall = () => (0, import_valibot9.transform)((0, import_valibot9.unknown)(), (value) => table.unmarshall(value));
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.object)({
198
- // For some reason picklist fails to build.
199
- // eventName: picklist(['MODIFY', 'INSERT', 'REMOVE']),
200
- eventName: (0, import_valibot9.union)([(0, import_valibot9.literal)("MODIFY"), (0, import_valibot9.literal)("INSERT"), (0, import_valibot9.literal)("REMOVE")]),
201
- dynamodb: (0, import_valibot9.object)({
202
- Keys: marshall(),
203
- OldImage: (0, import_valibot9.optional)(marshall()),
204
- NewImage: (0, import_valibot9.optional)(marshall())
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 = record;
214
- return {
227
+ const item = {
215
228
  event: record.eventName.toLowerCase(),
216
- keys: item.dynamodb.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: EventName;
51
+ Records: Array<{
52
+ eventName: 'MODIFY';
54
53
  dynamodb: {
55
54
  Keys: unknown;
56
- OldImage?: unknown;
57
- NewImage?: unknown;
55
+ OldImage: unknown;
56
+ NewImage: unknown;
58
57
  };
59
- }[];
60
- }, {
61
- event: Lowercase<EventName>;
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?: Infer<T>;
64
- new?: Infer<T>;
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: EventName;
51
+ Records: Array<{
52
+ eventName: 'MODIFY';
54
53
  dynamodb: {
55
54
  Keys: unknown;
56
- OldImage?: unknown;
57
- NewImage?: unknown;
55
+ OldImage: unknown;
56
+ NewImage: unknown;
58
57
  };
59
- }[];
60
- }, {
61
- event: Lowercase<EventName>;
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?: Infer<T>;
64
- new?: Infer<T>;
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, optional, transform as transform7, union as union6, unknown as unknown3 } from "valibot";
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 marshall = () => transform7(unknown3(), (value) => table.unmarshall(value));
164
+ const unmarshall = () => transform7(unknown3(), (value) => table.unmarshall(value));
165
165
  return transform7(
166
166
  object4(
167
167
  {
168
168
  Records: array3(
169
- object4({
170
- // For some reason picklist fails to build.
171
- // eventName: picklist(['MODIFY', 'INSERT', 'REMOVE']),
172
- eventName: union6([literal("MODIFY"), literal("INSERT"), literal("REMOVE")]),
173
- dynamodb: object4({
174
- Keys: marshall(),
175
- OldImage: optional(marshall()),
176
- NewImage: optional(marshall())
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 = record;
186
- return {
199
+ const item = {
187
200
  event: record.eventName.toLowerCase(),
188
- keys: item.dynamodb.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.21",
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/dynamodb": "^0.2.12",
29
- "@awsless/duration": "^0.0.3",
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/duration": "^0.0.3",
35
- "@awsless/dynamodb": "^0.2.12",
36
- "@awsless/json": "^0.0.10"
34
+ "@awsless/dynamodb": "^0.2.14",
35
+ "@awsless/json": "^0.0.10",
36
+ "@awsless/duration": "^0.0.4"
37
37
  },
38
38
  "dependencies": {
39
39
  "valibot": "^0.30.0"