dinah 0.14.0 → 0.15.1
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/cdk.cjs +1 -1
- package/dist/cdk.cjs.map +1 -1
- package/dist/cdk.d.cts +1 -1
- package/dist/cdk.d.cts.map +1 -1
- package/dist/cdk.d.mts +1 -1
- package/dist/cdk.d.mts.map +1 -1
- package/dist/cdk.mjs +1 -1
- package/dist/cdk.mjs.map +1 -1
- package/dist/index.cjs +25 -20
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +36 -35
- package/dist/index.d.cts.map +1 -1
- package/dist/index.d.mts +36 -35
- package/dist/index.d.mts.map +1 -1
- package/dist/index.mjs +25 -20
- package/dist/index.mjs.map +1 -1
- package/dist/streams.cjs +0 -1
- package/dist/streams.cjs.map +1 -1
- package/dist/streams.d.cts.map +1 -1
- package/dist/streams.d.mts.map +1 -1
- package/dist/streams.mjs.map +1 -1
- package/dist/{table-GSI2RvTa.d.cts → table-CcZ5Kv5z.d.cts} +1 -1
- package/dist/table-CcZ5Kv5z.d.cts.map +1 -0
- package/dist/{table-O4EneQbj.d.mts → table-CcZ5Kv5z.d.mts} +1 -1
- package/dist/table-CcZ5Kv5z.d.mts.map +1 -0
- package/dist/{util-DT6vwquI.cjs → util-CYPpI7J0.cjs} +1 -1
- package/dist/{util-DT6vwquI.cjs.map → util-CYPpI7J0.cjs.map} +1 -1
- package/dist/{util-0kc6E2VD.mjs → util-q3_Y61hN.mjs} +1 -1
- package/dist/{util-0kc6E2VD.mjs.map → util-q3_Y61hN.mjs.map} +1 -1
- package/package.json +3 -3
- package/dist/table-GSI2RvTa.d.cts.map +0 -1
- package/dist/table-O4EneQbj.d.mts.map +0 -1
package/dist/cdk.cjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
-
const require_util = require("./util-
|
|
2
|
+
const require_util = require("./util-CYPpI7J0.cjs");
|
|
3
3
|
let aws_cdk_lib_aws_dynamodb = require("aws-cdk-lib/aws-dynamodb");
|
|
4
4
|
aws_cdk_lib_aws_dynamodb = require_util.__toESM(aws_cdk_lib_aws_dynamodb, 1);
|
|
5
5
|
//#region src/cdk.ts
|
package/dist/cdk.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cdk.cjs","names":["resolveAttrType","cdk"],"sources":["../src/cdk.ts"],"sourcesContent":["import type { Table } from \"./table\";\nimport * as cdk from \"aws-cdk-lib/aws-dynamodb\";\nimport { resolveAttrType } from \"./util\";\nimport type { TSchema } from \"typebox\";\n\nexport const resolveAttrs = (\n schema: TSchema,\n attrNames: (string | undefined)[],\n): cdk.Attribute[] | undefined => {\n const names = attrNames.filter((name) => name !== undefined);\n if (!names.length) return undefined;\n return names.map((name) => ({\n name,\n type:\n resolveAttrType(schema, name) === \"S\" ? cdk.AttributeType.STRING : cdk.AttributeType.NUMBER,\n }));\n};\n\nexport const extractTableCdkConfig = (\n table: Table,\n): Pick<\n cdk.TablePropsV2,\n \"tableName\" | \"partitionKey\" | \"sortKey\" | \"timeToLiveAttribute\" | \"globalSecondaryIndexes\"\n> => {\n const { schema, def } = table;\n\n const globalSecondaryIndexes = def.gsis\n ? Object.entries(def.gsis).map(([indexName, gsi]) => ({\n indexName,\n partitionKeys: resolveAttrs(schema, [gsi.partitionKey].flat()),\n sortKeys: resolveAttrs(schema, [gsi.sortKey].flat()),\n }))\n : undefined;\n\n return {\n tableName: def.name,\n partitionKey: resolveAttrs(schema, [def.partitionKey])?.at(0)!,\n sortKey: resolveAttrs(schema, [def.sortKey])?.at(0),\n timeToLiveAttribute: def.ttlAttribute,\n //billing: def.billingMode as cdk.BillingMode,\n // stream: def.stream as cdk.StreamViewType,\n globalSecondaryIndexes,\n };\n};\n"],"mappings":";;;;;AAKA,MAAa,gBACX,QACA,cACgC;CAChC,MAAM,QAAQ,UAAU,QAAQ,SAAS,SAAS,KAAA,
|
|
1
|
+
{"version":3,"file":"cdk.cjs","names":["resolveAttrType","cdk"],"sources":["../src/cdk.ts"],"sourcesContent":["import type { Table } from \"./table\";\nimport * as cdk from \"aws-cdk-lib/aws-dynamodb\";\nimport { resolveAttrType } from \"./util\";\nimport type { TSchema } from \"typebox\";\n\nexport const resolveAttrs = (\n schema: TSchema,\n attrNames: (string | undefined)[],\n): cdk.Attribute[] | undefined => {\n const names = attrNames.filter((name) => name !== undefined);\n if (!names.length) return undefined;\n return names.map((name) => ({\n name,\n type:\n resolveAttrType(schema, name) === \"S\" ? cdk.AttributeType.STRING : cdk.AttributeType.NUMBER,\n }));\n};\n\nexport const extractTableCdkConfig = (\n table: Table,\n): Pick<\n cdk.TablePropsV2,\n \"tableName\" | \"partitionKey\" | \"sortKey\" | \"timeToLiveAttribute\" | \"globalSecondaryIndexes\"\n> => {\n const { schema, def } = table;\n\n const globalSecondaryIndexes = def.gsis\n ? Object.entries(def.gsis).map(([indexName, gsi]) => ({\n indexName,\n partitionKeys: resolveAttrs(schema, [gsi.partitionKey].flat()),\n sortKeys: resolveAttrs(schema, [gsi.sortKey].flat()),\n }))\n : undefined;\n\n return {\n tableName: def.name,\n partitionKey: resolveAttrs(schema, [def.partitionKey])?.at(0)!,\n sortKey: resolveAttrs(schema, [def.sortKey])?.at(0),\n timeToLiveAttribute: def.ttlAttribute,\n //billing: def.billingMode as cdk.BillingMode,\n // stream: def.stream as cdk.StreamViewType,\n globalSecondaryIndexes,\n };\n};\n"],"mappings":";;;;;AAKA,MAAa,gBACX,QACA,cACgC;CAChC,MAAM,QAAQ,UAAU,QAAQ,SAAS,SAAS,KAAA,CAAS;CAC3D,IAAI,CAAC,MAAM,QAAQ,OAAO,KAAA;CAC1B,OAAO,MAAM,KAAK,UAAU;EAC1B;EACA,MACEA,aAAAA,gBAAgB,QAAQ,IAAI,MAAM,MAAMC,yBAAI,cAAc,SAASA,yBAAI,cAAc;CACzF,EAAE;AACJ;AAEA,MAAa,yBACX,UAIG;CACH,MAAM,EAAE,QAAQ,QAAQ;CAExB,MAAM,yBAAyB,IAAI,OAC/B,OAAO,QAAQ,IAAI,IAAI,CAAC,CAAC,KAAK,CAAC,WAAW,UAAU;EAClD;EACA,eAAe,aAAa,QAAQ,CAAC,IAAI,YAAY,CAAC,CAAC,KAAK,CAAC;EAC7D,UAAU,aAAa,QAAQ,CAAC,IAAI,OAAO,CAAC,CAAC,KAAK,CAAC;CACrD,EAAE,IACF,KAAA;CAEJ,OAAO;EACL,WAAW,IAAI;EACf,cAAc,aAAa,QAAQ,CAAC,IAAI,YAAY,CAAC,CAAC,EAAE,GAAG,CAAC;EAC5D,SAAS,aAAa,QAAQ,CAAC,IAAI,OAAO,CAAC,CAAC,EAAE,GAAG,CAAC;EAClD,qBAAqB,IAAI;EAGzB;CACF;AACF"}
|
package/dist/cdk.d.cts
CHANGED
package/dist/cdk.d.cts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cdk.d.cts","names":[],"sources":["../src/cdk.ts"],"mappings":";;;;;cAKa,YAAA,GAAY,MAAA,EACf,OAAA,EAAO,SAAA,6BAEd,GAAA,CAAI,
|
|
1
|
+
{"version":3,"file":"cdk.d.cts","names":[],"sources":["../src/cdk.ts"],"mappings":";;;;;cAKa,YAAA,GAAY,MAAA,EACf,OAAA,EAAO,SAAA,6BAEd,GAAA,CAAI,SAAS;AAAA,cAUH,qBAAA,GAAqB,KAAA,EACzB,KAAA,KACN,IAAA,CACD,GAAA,CAAI,YAAA"}
|
package/dist/cdk.d.mts
CHANGED
package/dist/cdk.d.mts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cdk.d.mts","names":[],"sources":["../src/cdk.ts"],"mappings":";;;;;cAKa,YAAA,GAAY,MAAA,EACf,OAAA,EAAO,SAAA,6BAEd,GAAA,CAAI,
|
|
1
|
+
{"version":3,"file":"cdk.d.mts","names":[],"sources":["../src/cdk.ts"],"mappings":";;;;;cAKa,YAAA,GAAY,MAAA,EACf,OAAA,EAAO,SAAA,6BAEd,GAAA,CAAI,SAAS;AAAA,cAUH,qBAAA,GAAqB,KAAA,EACzB,KAAA,KACN,IAAA,CACD,GAAA,CAAI,YAAA"}
|
package/dist/cdk.mjs
CHANGED
package/dist/cdk.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cdk.mjs","names":[],"sources":["../src/cdk.ts"],"sourcesContent":["import type { Table } from \"./table\";\nimport * as cdk from \"aws-cdk-lib/aws-dynamodb\";\nimport { resolveAttrType } from \"./util\";\nimport type { TSchema } from \"typebox\";\n\nexport const resolveAttrs = (\n schema: TSchema,\n attrNames: (string | undefined)[],\n): cdk.Attribute[] | undefined => {\n const names = attrNames.filter((name) => name !== undefined);\n if (!names.length) return undefined;\n return names.map((name) => ({\n name,\n type:\n resolveAttrType(schema, name) === \"S\" ? cdk.AttributeType.STRING : cdk.AttributeType.NUMBER,\n }));\n};\n\nexport const extractTableCdkConfig = (\n table: Table,\n): Pick<\n cdk.TablePropsV2,\n \"tableName\" | \"partitionKey\" | \"sortKey\" | \"timeToLiveAttribute\" | \"globalSecondaryIndexes\"\n> => {\n const { schema, def } = table;\n\n const globalSecondaryIndexes = def.gsis\n ? Object.entries(def.gsis).map(([indexName, gsi]) => ({\n indexName,\n partitionKeys: resolveAttrs(schema, [gsi.partitionKey].flat()),\n sortKeys: resolveAttrs(schema, [gsi.sortKey].flat()),\n }))\n : undefined;\n\n return {\n tableName: def.name,\n partitionKey: resolveAttrs(schema, [def.partitionKey])?.at(0)!,\n sortKey: resolveAttrs(schema, [def.sortKey])?.at(0),\n timeToLiveAttribute: def.ttlAttribute,\n //billing: def.billingMode as cdk.BillingMode,\n // stream: def.stream as cdk.StreamViewType,\n globalSecondaryIndexes,\n };\n};\n"],"mappings":";;;AAKA,MAAa,gBACX,QACA,cACgC;CAChC,MAAM,QAAQ,UAAU,QAAQ,SAAS,SAAS,KAAA,
|
|
1
|
+
{"version":3,"file":"cdk.mjs","names":[],"sources":["../src/cdk.ts"],"sourcesContent":["import type { Table } from \"./table\";\nimport * as cdk from \"aws-cdk-lib/aws-dynamodb\";\nimport { resolveAttrType } from \"./util\";\nimport type { TSchema } from \"typebox\";\n\nexport const resolveAttrs = (\n schema: TSchema,\n attrNames: (string | undefined)[],\n): cdk.Attribute[] | undefined => {\n const names = attrNames.filter((name) => name !== undefined);\n if (!names.length) return undefined;\n return names.map((name) => ({\n name,\n type:\n resolveAttrType(schema, name) === \"S\" ? cdk.AttributeType.STRING : cdk.AttributeType.NUMBER,\n }));\n};\n\nexport const extractTableCdkConfig = (\n table: Table,\n): Pick<\n cdk.TablePropsV2,\n \"tableName\" | \"partitionKey\" | \"sortKey\" | \"timeToLiveAttribute\" | \"globalSecondaryIndexes\"\n> => {\n const { schema, def } = table;\n\n const globalSecondaryIndexes = def.gsis\n ? Object.entries(def.gsis).map(([indexName, gsi]) => ({\n indexName,\n partitionKeys: resolveAttrs(schema, [gsi.partitionKey].flat()),\n sortKeys: resolveAttrs(schema, [gsi.sortKey].flat()),\n }))\n : undefined;\n\n return {\n tableName: def.name,\n partitionKey: resolveAttrs(schema, [def.partitionKey])?.at(0)!,\n sortKey: resolveAttrs(schema, [def.sortKey])?.at(0),\n timeToLiveAttribute: def.ttlAttribute,\n //billing: def.billingMode as cdk.BillingMode,\n // stream: def.stream as cdk.StreamViewType,\n globalSecondaryIndexes,\n };\n};\n"],"mappings":";;;AAKA,MAAa,gBACX,QACA,cACgC;CAChC,MAAM,QAAQ,UAAU,QAAQ,SAAS,SAAS,KAAA,CAAS;CAC3D,IAAI,CAAC,MAAM,QAAQ,OAAO,KAAA;CAC1B,OAAO,MAAM,KAAK,UAAU;EAC1B;EACA,MACE,gBAAgB,QAAQ,IAAI,MAAM,MAAM,IAAI,cAAc,SAAS,IAAI,cAAc;CACzF,EAAE;AACJ;AAEA,MAAa,yBACX,UAIG;CACH,MAAM,EAAE,QAAQ,QAAQ;CAExB,MAAM,yBAAyB,IAAI,OAC/B,OAAO,QAAQ,IAAI,IAAI,CAAC,CAAC,KAAK,CAAC,WAAW,UAAU;EAClD;EACA,eAAe,aAAa,QAAQ,CAAC,IAAI,YAAY,CAAC,CAAC,KAAK,CAAC;EAC7D,UAAU,aAAa,QAAQ,CAAC,IAAI,OAAO,CAAC,CAAC,KAAK,CAAC;CACrD,EAAE,IACF,KAAA;CAEJ,OAAO;EACL,WAAW,IAAI;EACf,cAAc,aAAa,QAAQ,CAAC,IAAI,YAAY,CAAC,CAAC,EAAE,GAAG,CAAC;EAC5D,SAAS,aAAa,QAAQ,CAAC,IAAI,OAAO,CAAC,CAAC,EAAE,GAAG,CAAC;EAClD,qBAAqB,IAAI;EAGzB;CACF;AACF"}
|
package/dist/index.cjs
CHANGED
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
-
const require_util = require("./util-
|
|
2
|
+
const require_util = require("./util-CYPpI7J0.cjs");
|
|
3
3
|
let _aws_sdk_client_dynamodb = require("@aws-sdk/client-dynamodb");
|
|
4
4
|
let _aws_sdk_lib_dynamodb = require("@aws-sdk/lib-dynamodb");
|
|
5
5
|
_aws_sdk_lib_dynamodb = require_util.__toESM(_aws_sdk_lib_dynamodb, 1);
|
|
6
6
|
//#region src/error.ts
|
|
7
7
|
function dinahErrorMessage(details) {
|
|
8
8
|
switch (details.type) {
|
|
9
|
-
case "NOT_FOUND": return `${details.resource ?? "Item"} not found
|
|
10
|
-
case "
|
|
9
|
+
case "NOT_FOUND": return `${details.resource ?? "Item"} not found.`;
|
|
10
|
+
case "ALREADY_EXISTS": return `${details.resource ?? "Item"} already exists.`;
|
|
11
|
+
case "CONDITIONAL_CHECK_FAILED": return `${details.resource ?? "Item"} condition check failed.`;
|
|
11
12
|
case "VALIDATION": return `Validation error: ${details.message}`;
|
|
12
13
|
case "DATA_INTEGRITY": return `Data integrity error: ${details.message}`;
|
|
13
14
|
case "TRANSACTION_CANCELED": return `Transaction canceled: ${details.reasons.map((r) => r.type).join(", ")}`;
|
|
@@ -317,18 +318,25 @@ var Repo = class {
|
|
|
317
318
|
});
|
|
318
319
|
return this.applyTransformIfNeeded(result);
|
|
319
320
|
}
|
|
320
|
-
async create(item
|
|
321
|
-
const { condition: otherCondition, ...otherOptions } = options ?? {};
|
|
321
|
+
async create(item) {
|
|
322
322
|
const condition = { $and: [{ [this.table.def.partitionKey]: { $exists: false } }] };
|
|
323
|
-
if (otherCondition) condition.$and.push(otherCondition);
|
|
324
323
|
const normalizedItem = this.applyCreateTransforms(item);
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
324
|
+
let result;
|
|
325
|
+
try {
|
|
326
|
+
result = await this.db.put({
|
|
327
|
+
table: this.tableName,
|
|
328
|
+
item: normalizedItem,
|
|
329
|
+
resource: this.resourceName,
|
|
330
|
+
condition
|
|
331
|
+
});
|
|
332
|
+
} catch (err) {
|
|
333
|
+
if (err instanceof DinahError && err.details.type === "CONDITIONAL_CHECK_FAILED") throw new DinahError({
|
|
334
|
+
type: "ALREADY_EXISTS",
|
|
335
|
+
key: this.extractKey(item),
|
|
336
|
+
resource: this.resourceName
|
|
337
|
+
}, { cause: err });
|
|
338
|
+
throw err;
|
|
339
|
+
}
|
|
332
340
|
return this.applyTransformIfNeeded(result);
|
|
333
341
|
}
|
|
334
342
|
async delete(key, options) {
|
|
@@ -563,8 +571,8 @@ var Repo = class {
|
|
|
563
571
|
async trxUpdate(keys, update, options) {
|
|
564
572
|
return this.db.trxWrite(...keys.map((key) => this.trxUpdateRequest(key, update, options)));
|
|
565
573
|
}
|
|
566
|
-
async trxCreate(items
|
|
567
|
-
return this.db.trxWrite(...items.map((item) => this.trxCreateRequest(item
|
|
574
|
+
async trxCreate(items) {
|
|
575
|
+
return this.db.trxWrite(...items.map((item) => this.trxCreateRequest(item)));
|
|
568
576
|
}
|
|
569
577
|
trxGetRequest(key, options) {
|
|
570
578
|
return {
|
|
@@ -608,17 +616,14 @@ var Repo = class {
|
|
|
608
616
|
condition: this.withDiscriminatorCondition(key, options?.condition)
|
|
609
617
|
};
|
|
610
618
|
}
|
|
611
|
-
trxCreateRequest(item
|
|
612
|
-
const { condition: otherCondition, ...otherOptions } = options ?? {};
|
|
619
|
+
trxCreateRequest(item) {
|
|
613
620
|
const condition = { $and: [{ [this.table.def.partitionKey]: { $exists: false } }] };
|
|
614
|
-
if (otherCondition) condition.$and.push(otherCondition);
|
|
615
621
|
const normalizedItem = this.applyCreateTransforms(item);
|
|
616
622
|
return {
|
|
617
623
|
table: this.tableName,
|
|
618
624
|
type: "PUT",
|
|
619
625
|
item: normalizedItem,
|
|
620
|
-
condition
|
|
621
|
-
...otherOptions
|
|
626
|
+
condition
|
|
622
627
|
};
|
|
623
628
|
}
|
|
624
629
|
applyCreateTransforms(item) {
|