drizzle-orm 0.30.7-2c9b73b → 0.30.7-59f2958
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/aws-data-api/common/index.cjs +12 -0
- package/aws-data-api/common/index.cjs.map +1 -1
- package/aws-data-api/common/index.d.cts +1 -1
- package/aws-data-api/common/index.d.ts +1 -1
- package/aws-data-api/common/index.js +12 -0
- package/aws-data-api/common/index.js.map +1 -1
- package/aws-data-api/pg/driver.cjs +25 -0
- package/aws-data-api/pg/driver.cjs.map +1 -1
- package/aws-data-api/pg/driver.d.cts +5 -2
- package/aws-data-api/pg/driver.d.ts +5 -2
- package/aws-data-api/pg/driver.js +26 -1
- package/aws-data-api/pg/driver.js.map +1 -1
- package/package.json +1 -1
- package/version.cjs +1 -1
- package/version.d.cts +1 -1
- package/version.d.ts +1 -1
- package/version.js +1 -1
|
@@ -41,6 +41,18 @@ function getValueFromDataApi(field) {
|
|
|
41
41
|
if (field.arrayValue.stringValues !== void 0) {
|
|
42
42
|
return field.arrayValue.stringValues;
|
|
43
43
|
}
|
|
44
|
+
if (field.arrayValue.longValues !== void 0) {
|
|
45
|
+
return field.arrayValue.longValues;
|
|
46
|
+
}
|
|
47
|
+
if (field.arrayValue.doubleValues !== void 0) {
|
|
48
|
+
return field.arrayValue.doubleValues;
|
|
49
|
+
}
|
|
50
|
+
if (field.arrayValue.booleanValues !== void 0) {
|
|
51
|
+
return field.arrayValue.booleanValues;
|
|
52
|
+
}
|
|
53
|
+
if (field.arrayValue.arrayValues !== void 0) {
|
|
54
|
+
return field.arrayValue.arrayValues;
|
|
55
|
+
}
|
|
44
56
|
throw new Error("Unknown array type");
|
|
45
57
|
} else {
|
|
46
58
|
throw new Error("Unknown type");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/aws-data-api/common/index.ts"],"sourcesContent":["import type { Field } from '@aws-sdk/client-rds-data';\nimport { TypeHint } from '@aws-sdk/client-rds-data';\nimport type { QueryTypingsValue } from '~/sql/sql.ts';\n\nexport function getValueFromDataApi(field: Field) {\n\tif (field.stringValue !== undefined) {\n\t\treturn field.stringValue;\n\t} else if (field.booleanValue !== undefined) {\n\t\treturn field.booleanValue;\n\t} else if (field.doubleValue !== undefined) {\n\t\treturn field.doubleValue;\n\t} else if (field.isNull !== undefined) {\n\t\treturn null;\n\t} else if (field.longValue !== undefined) {\n\t\treturn field.longValue;\n\t} else if (field.blobValue !== undefined) {\n\t\treturn field.blobValue;\n\t\t// eslint-disable-next-line unicorn/no-negated-condition\n\t} else if (field.arrayValue !== undefined) {\n\t\tif (field.arrayValue.stringValues !== undefined) {\n\t\t\treturn field.arrayValue.stringValues;\n\t\t}\n\t\tthrow new Error('Unknown array type');\n\t} else {\n\t\tthrow new Error('Unknown type');\n\t}\n}\n\nexport function typingsToAwsTypeHint(typings?: QueryTypingsValue): TypeHint | undefined {\n\tif (typings === 'date') {\n\t\treturn TypeHint.DATE;\n\t} else if (typings === 'decimal') {\n\t\treturn TypeHint.DECIMAL;\n\t} else if (typings === 'json') {\n\t\treturn TypeHint.JSON;\n\t} else if (typings === 'time') {\n\t\treturn TypeHint.TIME;\n\t} else if (typings === 'timestamp') {\n\t\treturn TypeHint.TIMESTAMP;\n\t} else if (typings === 'uuid') {\n\t\treturn TypeHint.UUID;\n\t} else {\n\t\treturn undefined;\n\t}\n}\n\nexport function toValueParam(value: any, typings?: QueryTypingsValue): { value: Field; typeHint?: TypeHint } {\n\tconst response: { value: Field; typeHint?: TypeHint } = {\n\t\tvalue: {} as any,\n\t\ttypeHint: typingsToAwsTypeHint(typings),\n\t};\n\n\tif (value === null) {\n\t\tresponse.value = { isNull: true };\n\t} else if (typeof value === 'string') {\n\t\tswitch (response.typeHint) {\n\t\t\tcase TypeHint.DATE: {\n\t\t\t\tresponse.value = { stringValue: value.split('T')[0]! };\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tcase TypeHint.TIMESTAMP: {\n\t\t\t\tresponse.value = { stringValue: value.replace('T', ' ').replace('Z', '') };\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tdefault: {\n\t\t\t\tresponse.value = { stringValue: value };\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t} else if (typeof value === 'number' && Number.isInteger(value)) {\n\t\tresponse.value = { longValue: value };\n\t} else if (typeof value === 'number' && !Number.isInteger(value)) {\n\t\tresponse.value = { doubleValue: value };\n\t} else if (typeof value === 'boolean') {\n\t\tresponse.value = { booleanValue: value };\n\t} else if (value instanceof Date) { // eslint-disable-line no-instanceof/no-instanceof\n\t\t// TODO: check if this clause is needed? Seems like date value always comes as string\n\t\tresponse.value = { stringValue: value.toISOString().replace('T', ' ').replace('Z', '') };\n\t} else {\n\t\tthrow new Error(`Unknown type for ${value}`);\n\t}\n\n\treturn response;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,6BAAyB;AAGlB,SAAS,oBAAoB,OAAc;AACjD,MAAI,MAAM,gBAAgB,QAAW;AACpC,WAAO,MAAM;AAAA,EACd,WAAW,MAAM,iBAAiB,QAAW;AAC5C,WAAO,MAAM;AAAA,EACd,WAAW,MAAM,gBAAgB,QAAW;AAC3C,WAAO,MAAM;AAAA,EACd,WAAW,MAAM,WAAW,QAAW;AACtC,WAAO;AAAA,EACR,WAAW,MAAM,cAAc,QAAW;AACzC,WAAO,MAAM;AAAA,EACd,WAAW,MAAM,cAAc,QAAW;AACzC,WAAO,MAAM;AAAA,EAEd,WAAW,MAAM,eAAe,QAAW;AAC1C,QAAI,MAAM,WAAW,iBAAiB,QAAW;AAChD,aAAO,MAAM,WAAW;AAAA,IACzB;AACA,UAAM,IAAI,MAAM,oBAAoB;AAAA,EACrC,OAAO;AACN,UAAM,IAAI,MAAM,cAAc;AAAA,EAC/B;AACD;AAEO,SAAS,qBAAqB,SAAmD;AACvF,MAAI,YAAY,QAAQ;AACvB,WAAO,gCAAS;AAAA,EACjB,WAAW,YAAY,WAAW;AACjC,WAAO,gCAAS;AAAA,EACjB,WAAW,YAAY,QAAQ;AAC9B,WAAO,gCAAS;AAAA,EACjB,WAAW,YAAY,QAAQ;AAC9B,WAAO,gCAAS;AAAA,EACjB,WAAW,YAAY,aAAa;AACnC,WAAO,gCAAS;AAAA,EACjB,WAAW,YAAY,QAAQ;AAC9B,WAAO,gCAAS;AAAA,EACjB,OAAO;AACN,WAAO;AAAA,EACR;AACD;AAEO,SAAS,aAAa,OAAY,SAAoE;AAC5G,QAAM,WAAkD;AAAA,IACvD,OAAO,CAAC;AAAA,IACR,UAAU,qBAAqB,OAAO;AAAA,EACvC;AAEA,MAAI,UAAU,MAAM;AACnB,aAAS,QAAQ,EAAE,QAAQ,KAAK;AAAA,EACjC,WAAW,OAAO,UAAU,UAAU;AACrC,YAAQ,SAAS,UAAU;AAAA,MAC1B,KAAK,gCAAS,MAAM;AACnB,iBAAS,QAAQ,EAAE,aAAa,MAAM,MAAM,GAAG,EAAE,CAAC,EAAG;AACrD;AAAA,MACD;AAAA,MACA,KAAK,gCAAS,WAAW;AACxB,iBAAS,QAAQ,EAAE,aAAa,MAAM,QAAQ,KAAK,GAAG,EAAE,QAAQ,KAAK,EAAE,EAAE;AACzE;AAAA,MACD;AAAA,MACA,SAAS;AACR,iBAAS,QAAQ,EAAE,aAAa,MAAM;AACtC;AAAA,MACD;AAAA,IACD;AAAA,EACD,WAAW,OAAO,UAAU,YAAY,OAAO,UAAU,KAAK,GAAG;AAChE,aAAS,QAAQ,EAAE,WAAW,MAAM;AAAA,EACrC,WAAW,OAAO,UAAU,YAAY,CAAC,OAAO,UAAU,KAAK,GAAG;AACjE,aAAS,QAAQ,EAAE,aAAa,MAAM;AAAA,EACvC,WAAW,OAAO,UAAU,WAAW;AACtC,aAAS,QAAQ,EAAE,cAAc,MAAM;AAAA,EACxC,WAAW,iBAAiB,MAAM;AAEjC,aAAS,QAAQ,EAAE,aAAa,MAAM,YAAY,EAAE,QAAQ,KAAK,GAAG,EAAE,QAAQ,KAAK,EAAE,EAAE;AAAA,EACxF,OAAO;AACN,UAAM,IAAI,MAAM,oBAAoB,KAAK,EAAE;AAAA,EAC5C;AAEA,SAAO;AACR;","names":[]}
|
|
1
|
+
{"version":3,"sources":["../../../src/aws-data-api/common/index.ts"],"sourcesContent":["import type { Field } from '@aws-sdk/client-rds-data';\nimport { TypeHint } from '@aws-sdk/client-rds-data';\nimport type { QueryTypingsValue } from '~/sql/sql.ts';\n\nexport function getValueFromDataApi(field: Field) {\n\tif (field.stringValue !== undefined) {\n\t\treturn field.stringValue;\n\t} else if (field.booleanValue !== undefined) {\n\t\treturn field.booleanValue;\n\t} else if (field.doubleValue !== undefined) {\n\t\treturn field.doubleValue;\n\t} else if (field.isNull !== undefined) {\n\t\treturn null;\n\t} else if (field.longValue !== undefined) {\n\t\treturn field.longValue;\n\t} else if (field.blobValue !== undefined) {\n\t\treturn field.blobValue;\n\t\t// eslint-disable-next-line unicorn/no-negated-condition\n\t} else if (field.arrayValue !== undefined) {\n\t\tif (field.arrayValue.stringValues !== undefined) {\n\t\t\treturn field.arrayValue.stringValues;\n\t\t}\n\t\tif (field.arrayValue.longValues !== undefined) {\n\t\t\treturn field.arrayValue.longValues;\n\t\t}\n\t\tif (field.arrayValue.doubleValues !== undefined) {\n\t\t\treturn field.arrayValue.doubleValues;\n\t\t}\n\t\tif (field.arrayValue.booleanValues !== undefined) {\n\t\t\treturn field.arrayValue.booleanValues;\n\t\t}\n\t\tif (field.arrayValue.arrayValues !== undefined) {\n\t\t\treturn field.arrayValue.arrayValues;\n\t\t}\n\n\t\tthrow new Error('Unknown array type');\n\t} else {\n\t\tthrow new Error('Unknown type');\n\t}\n}\n\nexport function typingsToAwsTypeHint(typings?: QueryTypingsValue): TypeHint | undefined {\n\tif (typings === 'date') {\n\t\treturn TypeHint.DATE;\n\t} else if (typings === 'decimal') {\n\t\treturn TypeHint.DECIMAL;\n\t} else if (typings === 'json') {\n\t\treturn TypeHint.JSON;\n\t} else if (typings === 'time') {\n\t\treturn TypeHint.TIME;\n\t} else if (typings === 'timestamp') {\n\t\treturn TypeHint.TIMESTAMP;\n\t} else if (typings === 'uuid') {\n\t\treturn TypeHint.UUID;\n\t} else {\n\t\treturn undefined;\n\t}\n}\n\nexport function toValueParam(value: any, typings?: QueryTypingsValue): { value: Field; typeHint?: TypeHint } {\n\tconst response: { value: Field; typeHint?: TypeHint } = {\n\t\tvalue: {} as any,\n\t\ttypeHint: typingsToAwsTypeHint(typings),\n\t};\n\n\tif (value === null) {\n\t\tresponse.value = { isNull: true };\n\t} else if (typeof value === 'string') {\n\t\tswitch (response.typeHint) {\n\t\t\tcase TypeHint.DATE: {\n\t\t\t\tresponse.value = { stringValue: value.split('T')[0]! };\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tcase TypeHint.TIMESTAMP: {\n\t\t\t\tresponse.value = { stringValue: value.replace('T', ' ').replace('Z', '') };\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tdefault: {\n\t\t\t\tresponse.value = { stringValue: value };\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t} else if (typeof value === 'number' && Number.isInteger(value)) {\n\t\tresponse.value = { longValue: value };\n\t} else if (typeof value === 'number' && !Number.isInteger(value)) {\n\t\tresponse.value = { doubleValue: value };\n\t} else if (typeof value === 'boolean') {\n\t\tresponse.value = { booleanValue: value };\n\t} else if (value instanceof Date) { // eslint-disable-line no-instanceof/no-instanceof\n\t\t// TODO: check if this clause is needed? Seems like date value always comes as string\n\t\tresponse.value = { stringValue: value.toISOString().replace('T', ' ').replace('Z', '') };\n\t} else {\n\t\tthrow new Error(`Unknown type for ${value}`);\n\t}\n\n\treturn response;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,6BAAyB;AAGlB,SAAS,oBAAoB,OAAc;AACjD,MAAI,MAAM,gBAAgB,QAAW;AACpC,WAAO,MAAM;AAAA,EACd,WAAW,MAAM,iBAAiB,QAAW;AAC5C,WAAO,MAAM;AAAA,EACd,WAAW,MAAM,gBAAgB,QAAW;AAC3C,WAAO,MAAM;AAAA,EACd,WAAW,MAAM,WAAW,QAAW;AACtC,WAAO;AAAA,EACR,WAAW,MAAM,cAAc,QAAW;AACzC,WAAO,MAAM;AAAA,EACd,WAAW,MAAM,cAAc,QAAW;AACzC,WAAO,MAAM;AAAA,EAEd,WAAW,MAAM,eAAe,QAAW;AAC1C,QAAI,MAAM,WAAW,iBAAiB,QAAW;AAChD,aAAO,MAAM,WAAW;AAAA,IACzB;AACA,QAAI,MAAM,WAAW,eAAe,QAAW;AAC9C,aAAO,MAAM,WAAW;AAAA,IACzB;AACA,QAAI,MAAM,WAAW,iBAAiB,QAAW;AAChD,aAAO,MAAM,WAAW;AAAA,IACzB;AACA,QAAI,MAAM,WAAW,kBAAkB,QAAW;AACjD,aAAO,MAAM,WAAW;AAAA,IACzB;AACA,QAAI,MAAM,WAAW,gBAAgB,QAAW;AAC/C,aAAO,MAAM,WAAW;AAAA,IACzB;AAEA,UAAM,IAAI,MAAM,oBAAoB;AAAA,EACrC,OAAO;AACN,UAAM,IAAI,MAAM,cAAc;AAAA,EAC/B;AACD;AAEO,SAAS,qBAAqB,SAAmD;AACvF,MAAI,YAAY,QAAQ;AACvB,WAAO,gCAAS;AAAA,EACjB,WAAW,YAAY,WAAW;AACjC,WAAO,gCAAS;AAAA,EACjB,WAAW,YAAY,QAAQ;AAC9B,WAAO,gCAAS;AAAA,EACjB,WAAW,YAAY,QAAQ;AAC9B,WAAO,gCAAS;AAAA,EACjB,WAAW,YAAY,aAAa;AACnC,WAAO,gCAAS;AAAA,EACjB,WAAW,YAAY,QAAQ;AAC9B,WAAO,gCAAS;AAAA,EACjB,OAAO;AACN,WAAO;AAAA,EACR;AACD;AAEO,SAAS,aAAa,OAAY,SAAoE;AAC5G,QAAM,WAAkD;AAAA,IACvD,OAAO,CAAC;AAAA,IACR,UAAU,qBAAqB,OAAO;AAAA,EACvC;AAEA,MAAI,UAAU,MAAM;AACnB,aAAS,QAAQ,EAAE,QAAQ,KAAK;AAAA,EACjC,WAAW,OAAO,UAAU,UAAU;AACrC,YAAQ,SAAS,UAAU;AAAA,MAC1B,KAAK,gCAAS,MAAM;AACnB,iBAAS,QAAQ,EAAE,aAAa,MAAM,MAAM,GAAG,EAAE,CAAC,EAAG;AACrD;AAAA,MACD;AAAA,MACA,KAAK,gCAAS,WAAW;AACxB,iBAAS,QAAQ,EAAE,aAAa,MAAM,QAAQ,KAAK,GAAG,EAAE,QAAQ,KAAK,EAAE,EAAE;AACzE;AAAA,MACD;AAAA,MACA,SAAS;AACR,iBAAS,QAAQ,EAAE,aAAa,MAAM;AACtC;AAAA,MACD;AAAA,IACD;AAAA,EACD,WAAW,OAAO,UAAU,YAAY,OAAO,UAAU,KAAK,GAAG;AAChE,aAAS,QAAQ,EAAE,WAAW,MAAM;AAAA,EACrC,WAAW,OAAO,UAAU,YAAY,CAAC,OAAO,UAAU,KAAK,GAAG;AACjE,aAAS,QAAQ,EAAE,aAAa,MAAM;AAAA,EACvC,WAAW,OAAO,UAAU,WAAW;AACtC,aAAS,QAAQ,EAAE,cAAc,MAAM;AAAA,EACxC,WAAW,iBAAiB,MAAM;AAEjC,aAAS,QAAQ,EAAE,aAAa,MAAM,YAAY,EAAE,QAAQ,KAAK,GAAG,EAAE,QAAQ,KAAK,EAAE,EAAE;AAAA,EACxF,OAAO;AACN,UAAM,IAAI,MAAM,oBAAoB,KAAK,EAAE;AAAA,EAC5C;AAEA,SAAO;AACR;","names":[]}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { Field } from '@aws-sdk/client-rds-data';
|
|
2
2
|
import { TypeHint } from '@aws-sdk/client-rds-data';
|
|
3
3
|
import type { QueryTypingsValue } from "../../sql/sql.cjs";
|
|
4
|
-
export declare function getValueFromDataApi(field: Field): string | number | boolean | string[] | Uint8Array | null;
|
|
4
|
+
export declare function getValueFromDataApi(field: Field): string | number | boolean | string[] | number[] | Uint8Array | boolean[] | import("@aws-sdk/client-rds-data").ArrayValue[] | null;
|
|
5
5
|
export declare function typingsToAwsTypeHint(typings?: QueryTypingsValue): TypeHint | undefined;
|
|
6
6
|
export declare function toValueParam(value: any, typings?: QueryTypingsValue): {
|
|
7
7
|
value: Field;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { Field } from '@aws-sdk/client-rds-data';
|
|
2
2
|
import { TypeHint } from '@aws-sdk/client-rds-data';
|
|
3
3
|
import type { QueryTypingsValue } from "../../sql/sql.js";
|
|
4
|
-
export declare function getValueFromDataApi(field: Field): string | number | boolean | string[] | Uint8Array | null;
|
|
4
|
+
export declare function getValueFromDataApi(field: Field): string | number | boolean | string[] | number[] | Uint8Array | boolean[] | import("@aws-sdk/client-rds-data").ArrayValue[] | null;
|
|
5
5
|
export declare function typingsToAwsTypeHint(typings?: QueryTypingsValue): TypeHint | undefined;
|
|
6
6
|
export declare function toValueParam(value: any, typings?: QueryTypingsValue): {
|
|
7
7
|
value: Field;
|
|
@@ -16,6 +16,18 @@ function getValueFromDataApi(field) {
|
|
|
16
16
|
if (field.arrayValue.stringValues !== void 0) {
|
|
17
17
|
return field.arrayValue.stringValues;
|
|
18
18
|
}
|
|
19
|
+
if (field.arrayValue.longValues !== void 0) {
|
|
20
|
+
return field.arrayValue.longValues;
|
|
21
|
+
}
|
|
22
|
+
if (field.arrayValue.doubleValues !== void 0) {
|
|
23
|
+
return field.arrayValue.doubleValues;
|
|
24
|
+
}
|
|
25
|
+
if (field.arrayValue.booleanValues !== void 0) {
|
|
26
|
+
return field.arrayValue.booleanValues;
|
|
27
|
+
}
|
|
28
|
+
if (field.arrayValue.arrayValues !== void 0) {
|
|
29
|
+
return field.arrayValue.arrayValues;
|
|
30
|
+
}
|
|
19
31
|
throw new Error("Unknown array type");
|
|
20
32
|
} else {
|
|
21
33
|
throw new Error("Unknown type");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/aws-data-api/common/index.ts"],"sourcesContent":["import type { Field } from '@aws-sdk/client-rds-data';\nimport { TypeHint } from '@aws-sdk/client-rds-data';\nimport type { QueryTypingsValue } from '~/sql/sql.ts';\n\nexport function getValueFromDataApi(field: Field) {\n\tif (field.stringValue !== undefined) {\n\t\treturn field.stringValue;\n\t} else if (field.booleanValue !== undefined) {\n\t\treturn field.booleanValue;\n\t} else if (field.doubleValue !== undefined) {\n\t\treturn field.doubleValue;\n\t} else if (field.isNull !== undefined) {\n\t\treturn null;\n\t} else if (field.longValue !== undefined) {\n\t\treturn field.longValue;\n\t} else if (field.blobValue !== undefined) {\n\t\treturn field.blobValue;\n\t\t// eslint-disable-next-line unicorn/no-negated-condition\n\t} else if (field.arrayValue !== undefined) {\n\t\tif (field.arrayValue.stringValues !== undefined) {\n\t\t\treturn field.arrayValue.stringValues;\n\t\t}\n\t\tthrow new Error('Unknown array type');\n\t} else {\n\t\tthrow new Error('Unknown type');\n\t}\n}\n\nexport function typingsToAwsTypeHint(typings?: QueryTypingsValue): TypeHint | undefined {\n\tif (typings === 'date') {\n\t\treturn TypeHint.DATE;\n\t} else if (typings === 'decimal') {\n\t\treturn TypeHint.DECIMAL;\n\t} else if (typings === 'json') {\n\t\treturn TypeHint.JSON;\n\t} else if (typings === 'time') {\n\t\treturn TypeHint.TIME;\n\t} else if (typings === 'timestamp') {\n\t\treturn TypeHint.TIMESTAMP;\n\t} else if (typings === 'uuid') {\n\t\treturn TypeHint.UUID;\n\t} else {\n\t\treturn undefined;\n\t}\n}\n\nexport function toValueParam(value: any, typings?: QueryTypingsValue): { value: Field; typeHint?: TypeHint } {\n\tconst response: { value: Field; typeHint?: TypeHint } = {\n\t\tvalue: {} as any,\n\t\ttypeHint: typingsToAwsTypeHint(typings),\n\t};\n\n\tif (value === null) {\n\t\tresponse.value = { isNull: true };\n\t} else if (typeof value === 'string') {\n\t\tswitch (response.typeHint) {\n\t\t\tcase TypeHint.DATE: {\n\t\t\t\tresponse.value = { stringValue: value.split('T')[0]! };\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tcase TypeHint.TIMESTAMP: {\n\t\t\t\tresponse.value = { stringValue: value.replace('T', ' ').replace('Z', '') };\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tdefault: {\n\t\t\t\tresponse.value = { stringValue: value };\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t} else if (typeof value === 'number' && Number.isInteger(value)) {\n\t\tresponse.value = { longValue: value };\n\t} else if (typeof value === 'number' && !Number.isInteger(value)) {\n\t\tresponse.value = { doubleValue: value };\n\t} else if (typeof value === 'boolean') {\n\t\tresponse.value = { booleanValue: value };\n\t} else if (value instanceof Date) { // eslint-disable-line no-instanceof/no-instanceof\n\t\t// TODO: check if this clause is needed? Seems like date value always comes as string\n\t\tresponse.value = { stringValue: value.toISOString().replace('T', ' ').replace('Z', '') };\n\t} else {\n\t\tthrow new Error(`Unknown type for ${value}`);\n\t}\n\n\treturn response;\n}\n"],"mappings":"AACA,SAAS,gBAAgB;AAGlB,SAAS,oBAAoB,OAAc;AACjD,MAAI,MAAM,gBAAgB,QAAW;AACpC,WAAO,MAAM;AAAA,EACd,WAAW,MAAM,iBAAiB,QAAW;AAC5C,WAAO,MAAM;AAAA,EACd,WAAW,MAAM,gBAAgB,QAAW;AAC3C,WAAO,MAAM;AAAA,EACd,WAAW,MAAM,WAAW,QAAW;AACtC,WAAO;AAAA,EACR,WAAW,MAAM,cAAc,QAAW;AACzC,WAAO,MAAM;AAAA,EACd,WAAW,MAAM,cAAc,QAAW;AACzC,WAAO,MAAM;AAAA,EAEd,WAAW,MAAM,eAAe,QAAW;AAC1C,QAAI,MAAM,WAAW,iBAAiB,QAAW;AAChD,aAAO,MAAM,WAAW;AAAA,IACzB;AACA,UAAM,IAAI,MAAM,oBAAoB;AAAA,EACrC,OAAO;AACN,UAAM,IAAI,MAAM,cAAc;AAAA,EAC/B;AACD;AAEO,SAAS,qBAAqB,SAAmD;AACvF,MAAI,YAAY,QAAQ;AACvB,WAAO,SAAS;AAAA,EACjB,WAAW,YAAY,WAAW;AACjC,WAAO,SAAS;AAAA,EACjB,WAAW,YAAY,QAAQ;AAC9B,WAAO,SAAS;AAAA,EACjB,WAAW,YAAY,QAAQ;AAC9B,WAAO,SAAS;AAAA,EACjB,WAAW,YAAY,aAAa;AACnC,WAAO,SAAS;AAAA,EACjB,WAAW,YAAY,QAAQ;AAC9B,WAAO,SAAS;AAAA,EACjB,OAAO;AACN,WAAO;AAAA,EACR;AACD;AAEO,SAAS,aAAa,OAAY,SAAoE;AAC5G,QAAM,WAAkD;AAAA,IACvD,OAAO,CAAC;AAAA,IACR,UAAU,qBAAqB,OAAO;AAAA,EACvC;AAEA,MAAI,UAAU,MAAM;AACnB,aAAS,QAAQ,EAAE,QAAQ,KAAK;AAAA,EACjC,WAAW,OAAO,UAAU,UAAU;AACrC,YAAQ,SAAS,UAAU;AAAA,MAC1B,KAAK,SAAS,MAAM;AACnB,iBAAS,QAAQ,EAAE,aAAa,MAAM,MAAM,GAAG,EAAE,CAAC,EAAG;AACrD;AAAA,MACD;AAAA,MACA,KAAK,SAAS,WAAW;AACxB,iBAAS,QAAQ,EAAE,aAAa,MAAM,QAAQ,KAAK,GAAG,EAAE,QAAQ,KAAK,EAAE,EAAE;AACzE;AAAA,MACD;AAAA,MACA,SAAS;AACR,iBAAS,QAAQ,EAAE,aAAa,MAAM;AACtC;AAAA,MACD;AAAA,IACD;AAAA,EACD,WAAW,OAAO,UAAU,YAAY,OAAO,UAAU,KAAK,GAAG;AAChE,aAAS,QAAQ,EAAE,WAAW,MAAM;AAAA,EACrC,WAAW,OAAO,UAAU,YAAY,CAAC,OAAO,UAAU,KAAK,GAAG;AACjE,aAAS,QAAQ,EAAE,aAAa,MAAM;AAAA,EACvC,WAAW,OAAO,UAAU,WAAW;AACtC,aAAS,QAAQ,EAAE,cAAc,MAAM;AAAA,EACxC,WAAW,iBAAiB,MAAM;AAEjC,aAAS,QAAQ,EAAE,aAAa,MAAM,YAAY,EAAE,QAAQ,KAAK,GAAG,EAAE,QAAQ,KAAK,EAAE,EAAE;AAAA,EACxF,OAAO;AACN,UAAM,IAAI,MAAM,oBAAoB,KAAK,EAAE;AAAA,EAC5C;AAEA,SAAO;AACR;","names":[]}
|
|
1
|
+
{"version":3,"sources":["../../../src/aws-data-api/common/index.ts"],"sourcesContent":["import type { Field } from '@aws-sdk/client-rds-data';\nimport { TypeHint } from '@aws-sdk/client-rds-data';\nimport type { QueryTypingsValue } from '~/sql/sql.ts';\n\nexport function getValueFromDataApi(field: Field) {\n\tif (field.stringValue !== undefined) {\n\t\treturn field.stringValue;\n\t} else if (field.booleanValue !== undefined) {\n\t\treturn field.booleanValue;\n\t} else if (field.doubleValue !== undefined) {\n\t\treturn field.doubleValue;\n\t} else if (field.isNull !== undefined) {\n\t\treturn null;\n\t} else if (field.longValue !== undefined) {\n\t\treturn field.longValue;\n\t} else if (field.blobValue !== undefined) {\n\t\treturn field.blobValue;\n\t\t// eslint-disable-next-line unicorn/no-negated-condition\n\t} else if (field.arrayValue !== undefined) {\n\t\tif (field.arrayValue.stringValues !== undefined) {\n\t\t\treturn field.arrayValue.stringValues;\n\t\t}\n\t\tif (field.arrayValue.longValues !== undefined) {\n\t\t\treturn field.arrayValue.longValues;\n\t\t}\n\t\tif (field.arrayValue.doubleValues !== undefined) {\n\t\t\treturn field.arrayValue.doubleValues;\n\t\t}\n\t\tif (field.arrayValue.booleanValues !== undefined) {\n\t\t\treturn field.arrayValue.booleanValues;\n\t\t}\n\t\tif (field.arrayValue.arrayValues !== undefined) {\n\t\t\treturn field.arrayValue.arrayValues;\n\t\t}\n\n\t\tthrow new Error('Unknown array type');\n\t} else {\n\t\tthrow new Error('Unknown type');\n\t}\n}\n\nexport function typingsToAwsTypeHint(typings?: QueryTypingsValue): TypeHint | undefined {\n\tif (typings === 'date') {\n\t\treturn TypeHint.DATE;\n\t} else if (typings === 'decimal') {\n\t\treturn TypeHint.DECIMAL;\n\t} else if (typings === 'json') {\n\t\treturn TypeHint.JSON;\n\t} else if (typings === 'time') {\n\t\treturn TypeHint.TIME;\n\t} else if (typings === 'timestamp') {\n\t\treturn TypeHint.TIMESTAMP;\n\t} else if (typings === 'uuid') {\n\t\treturn TypeHint.UUID;\n\t} else {\n\t\treturn undefined;\n\t}\n}\n\nexport function toValueParam(value: any, typings?: QueryTypingsValue): { value: Field; typeHint?: TypeHint } {\n\tconst response: { value: Field; typeHint?: TypeHint } = {\n\t\tvalue: {} as any,\n\t\ttypeHint: typingsToAwsTypeHint(typings),\n\t};\n\n\tif (value === null) {\n\t\tresponse.value = { isNull: true };\n\t} else if (typeof value === 'string') {\n\t\tswitch (response.typeHint) {\n\t\t\tcase TypeHint.DATE: {\n\t\t\t\tresponse.value = { stringValue: value.split('T')[0]! };\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tcase TypeHint.TIMESTAMP: {\n\t\t\t\tresponse.value = { stringValue: value.replace('T', ' ').replace('Z', '') };\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tdefault: {\n\t\t\t\tresponse.value = { stringValue: value };\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t} else if (typeof value === 'number' && Number.isInteger(value)) {\n\t\tresponse.value = { longValue: value };\n\t} else if (typeof value === 'number' && !Number.isInteger(value)) {\n\t\tresponse.value = { doubleValue: value };\n\t} else if (typeof value === 'boolean') {\n\t\tresponse.value = { booleanValue: value };\n\t} else if (value instanceof Date) { // eslint-disable-line no-instanceof/no-instanceof\n\t\t// TODO: check if this clause is needed? Seems like date value always comes as string\n\t\tresponse.value = { stringValue: value.toISOString().replace('T', ' ').replace('Z', '') };\n\t} else {\n\t\tthrow new Error(`Unknown type for ${value}`);\n\t}\n\n\treturn response;\n}\n"],"mappings":"AACA,SAAS,gBAAgB;AAGlB,SAAS,oBAAoB,OAAc;AACjD,MAAI,MAAM,gBAAgB,QAAW;AACpC,WAAO,MAAM;AAAA,EACd,WAAW,MAAM,iBAAiB,QAAW;AAC5C,WAAO,MAAM;AAAA,EACd,WAAW,MAAM,gBAAgB,QAAW;AAC3C,WAAO,MAAM;AAAA,EACd,WAAW,MAAM,WAAW,QAAW;AACtC,WAAO;AAAA,EACR,WAAW,MAAM,cAAc,QAAW;AACzC,WAAO,MAAM;AAAA,EACd,WAAW,MAAM,cAAc,QAAW;AACzC,WAAO,MAAM;AAAA,EAEd,WAAW,MAAM,eAAe,QAAW;AAC1C,QAAI,MAAM,WAAW,iBAAiB,QAAW;AAChD,aAAO,MAAM,WAAW;AAAA,IACzB;AACA,QAAI,MAAM,WAAW,eAAe,QAAW;AAC9C,aAAO,MAAM,WAAW;AAAA,IACzB;AACA,QAAI,MAAM,WAAW,iBAAiB,QAAW;AAChD,aAAO,MAAM,WAAW;AAAA,IACzB;AACA,QAAI,MAAM,WAAW,kBAAkB,QAAW;AACjD,aAAO,MAAM,WAAW;AAAA,IACzB;AACA,QAAI,MAAM,WAAW,gBAAgB,QAAW;AAC/C,aAAO,MAAM,WAAW;AAAA,IACzB;AAEA,UAAM,IAAI,MAAM,oBAAoB;AAAA,EACrC,OAAO;AACN,UAAM,IAAI,MAAM,cAAc;AAAA,EAC/B;AACD;AAEO,SAAS,qBAAqB,SAAmD;AACvF,MAAI,YAAY,QAAQ;AACvB,WAAO,SAAS;AAAA,EACjB,WAAW,YAAY,WAAW;AACjC,WAAO,SAAS;AAAA,EACjB,WAAW,YAAY,QAAQ;AAC9B,WAAO,SAAS;AAAA,EACjB,WAAW,YAAY,QAAQ;AAC9B,WAAO,SAAS;AAAA,EACjB,WAAW,YAAY,aAAa;AACnC,WAAO,SAAS;AAAA,EACjB,WAAW,YAAY,QAAQ;AAC9B,WAAO,SAAS;AAAA,EACjB,OAAO;AACN,WAAO;AAAA,EACR;AACD;AAEO,SAAS,aAAa,OAAY,SAAoE;AAC5G,QAAM,WAAkD;AAAA,IACvD,OAAO,CAAC;AAAA,IACR,UAAU,qBAAqB,OAAO;AAAA,EACvC;AAEA,MAAI,UAAU,MAAM;AACnB,aAAS,QAAQ,EAAE,QAAQ,KAAK;AAAA,EACjC,WAAW,OAAO,UAAU,UAAU;AACrC,YAAQ,SAAS,UAAU;AAAA,MAC1B,KAAK,SAAS,MAAM;AACnB,iBAAS,QAAQ,EAAE,aAAa,MAAM,MAAM,GAAG,EAAE,CAAC,EAAG;AACrD;AAAA,MACD;AAAA,MACA,KAAK,SAAS,WAAW;AACxB,iBAAS,QAAQ,EAAE,aAAa,MAAM,QAAQ,KAAK,GAAG,EAAE,QAAQ,KAAK,EAAE,EAAE;AACzE;AAAA,MACD;AAAA,MACA,SAAS;AACR,iBAAS,QAAQ,EAAE,aAAa,MAAM;AACtC;AAAA,MACD;AAAA,IACD;AAAA,EACD,WAAW,OAAO,UAAU,YAAY,OAAO,UAAU,KAAK,GAAG;AAChE,aAAS,QAAQ,EAAE,WAAW,MAAM;AAAA,EACrC,WAAW,OAAO,UAAU,YAAY,CAAC,OAAO,UAAU,KAAK,GAAG;AACjE,aAAS,QAAQ,EAAE,aAAa,MAAM;AAAA,EACvC,WAAW,OAAO,UAAU,WAAW;AACtC,aAAS,QAAQ,EAAE,cAAc,MAAM;AAAA,EACxC,WAAW,iBAAiB,MAAM;AAEjC,aAAS,QAAQ,EAAE,aAAa,MAAM,YAAY,EAAE,QAAQ,KAAK,GAAG,EAAE,QAAQ,KAAK,EAAE,EAAE;AAAA,EACxF,OAAO;AACN,UAAM,IAAI,MAAM,oBAAoB,KAAK,EAAE;AAAA,EAC5C;AAEA,SAAO;AACR;","names":[]}
|
|
@@ -24,9 +24,11 @@ __export(driver_exports, {
|
|
|
24
24
|
});
|
|
25
25
|
module.exports = __toCommonJS(driver_exports);
|
|
26
26
|
var import_entity = require("../../entity.cjs");
|
|
27
|
+
var import__ = require("../../index.cjs");
|
|
27
28
|
var import_logger = require("../../logger.cjs");
|
|
28
29
|
var import_db = require("../../pg-core/db.cjs");
|
|
29
30
|
var import_dialect = require("../../pg-core/dialect.cjs");
|
|
31
|
+
var import_pg_core = require("../../pg-core/index.cjs");
|
|
30
32
|
var import_relations = require("../../relations.cjs");
|
|
31
33
|
var import_session = require("./session.cjs");
|
|
32
34
|
class AwsDataApiPgDatabase extends import_db.PgDatabase {
|
|
@@ -40,6 +42,29 @@ class AwsPgDialect extends import_dialect.PgDialect {
|
|
|
40
42
|
escapeParam(num) {
|
|
41
43
|
return `:${num + 1}`;
|
|
42
44
|
}
|
|
45
|
+
buildInsertQuery({ table, values, onConflict, returning }) {
|
|
46
|
+
const columns = table[import__.Table.Symbol.Columns];
|
|
47
|
+
const colEntries = Object.entries(columns);
|
|
48
|
+
for (const value of values) {
|
|
49
|
+
for (const [fieldName, col] of colEntries) {
|
|
50
|
+
const colValue = value[fieldName];
|
|
51
|
+
if ((0, import_entity.is)(colValue, import__.Param) && colValue.value !== void 0 && (0, import_entity.is)(colValue.encoder, import_pg_core.PgArray) && Array.isArray(colValue.value)) {
|
|
52
|
+
value[fieldName] = import__.sql`cast(${col.mapToDriverValue(colValue.value)} as ${import__.sql.raw(colValue.encoder.getSQLType())})`;
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
return super.buildInsertQuery({ table, values, onConflict, returning });
|
|
57
|
+
}
|
|
58
|
+
buildUpdateSet(table, set) {
|
|
59
|
+
const columns = table[import__.Table.Symbol.Columns];
|
|
60
|
+
for (const [colName, colValue] of Object.entries(set)) {
|
|
61
|
+
const currentColumn = columns[colName];
|
|
62
|
+
if (currentColumn && (0, import_entity.is)(colValue, import__.Param) && colValue.value !== void 0 && (0, import_entity.is)(colValue.encoder, import_pg_core.PgArray) && Array.isArray(colValue.value)) {
|
|
63
|
+
set[colName] = import__.sql`cast(${currentColumn?.mapToDriverValue(colValue.value)} as ${import__.sql.raw(colValue.encoder.getSQLType())})`;
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
return super.buildUpdateSet(table, set);
|
|
67
|
+
}
|
|
43
68
|
}
|
|
44
69
|
function drizzle(client, config) {
|
|
45
70
|
const dialect = new AwsPgDialect();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/aws-data-api/pg/driver.ts"],"sourcesContent":["import { entityKind } from '~/entity.ts';\nimport type { SQLWrapper } from '~/index.ts';\nimport type { Logger } from '~/logger.ts';\nimport { DefaultLogger } from '~/logger.ts';\nimport { PgDatabase } from '~/pg-core/db.ts';\nimport { PgDialect } from '~/pg-core/dialect.ts';\nimport type { PgRaw } from '~/pg-core/query-builders/raw.ts';\nimport {\n\tcreateTableRelationsHelpers,\n\textractTablesRelationalConfig,\n\ttype RelationalSchemaConfig,\n\ttype TablesRelationalConfig,\n} from '~/relations.ts';\nimport type { DrizzleConfig } from '~/utils.ts';\nimport type { AwsDataApiClient, AwsDataApiPgQueryResult, AwsDataApiPgQueryResultHKT } from './session.ts';\nimport { AwsDataApiSession } from './session.ts';\n\nexport interface PgDriverOptions {\n\tlogger?: Logger;\n\tdatabase: string;\n\tresourceArn: string;\n\tsecretArn: string;\n}\n\nexport interface DrizzleAwsDataApiPgConfig<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n> extends DrizzleConfig<TSchema> {\n\tdatabase: string;\n\tresourceArn: string;\n\tsecretArn: string;\n}\n\nexport class AwsDataApiPgDatabase<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n> extends PgDatabase<AwsDataApiPgQueryResultHKT, TSchema> {\n\tstatic readonly [entityKind]: string = 'AwsDataApiPgDatabase';\n\n\toverride execute<\n\t\tTRow extends Record<string, unknown> = Record<string, unknown>,\n\t>(query: SQLWrapper): PgRaw<AwsDataApiPgQueryResult<TRow>> {\n\t\treturn super.execute(query);\n\t}\n}\n\nexport class AwsPgDialect extends PgDialect {\n\tstatic readonly [entityKind]: string = 'AwsPgDialect';\n\n\toverride escapeParam(num: number): string {\n\t\treturn `:${num + 1}`;\n\t}\n}\n\nexport function drizzle<TSchema extends Record<string, unknown> = Record<string, never>>(\n\tclient: AwsDataApiClient,\n\tconfig: DrizzleAwsDataApiPgConfig<TSchema>,\n): AwsDataApiPgDatabase<TSchema> {\n\tconst dialect = new AwsPgDialect();\n\tlet logger;\n\tif (config.logger === true) {\n\t\tlogger = new DefaultLogger();\n\t} else if (config.logger !== false) {\n\t\tlogger = config.logger;\n\t}\n\n\tlet schema: RelationalSchemaConfig<TablesRelationalConfig> | undefined;\n\tif (config.schema) {\n\t\tconst tablesConfig = extractTablesRelationalConfig(\n\t\t\tconfig.schema,\n\t\t\tcreateTableRelationsHelpers,\n\t\t);\n\t\tschema = {\n\t\t\tfullSchema: config.schema,\n\t\t\tschema: tablesConfig.tables,\n\t\t\ttableNamesMap: tablesConfig.tableNamesMap,\n\t\t};\n\t}\n\n\tconst session = new AwsDataApiSession(client, dialect, schema, { ...config, logger }, undefined);\n\treturn new PgDatabase(dialect, session, schema) as AwsDataApiPgDatabase<TSchema>;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,
|
|
1
|
+
{"version":3,"sources":["../../../src/aws-data-api/pg/driver.ts"],"sourcesContent":["import { entityKind, is } from '~/entity.ts';\nimport type { SQL, SQLWrapper } from '~/index.ts';\nimport { Param, sql, Table } from '~/index.ts';\nimport type { Logger } from '~/logger.ts';\nimport { DefaultLogger } from '~/logger.ts';\nimport { PgDatabase } from '~/pg-core/db.ts';\nimport { PgDialect } from '~/pg-core/dialect.ts';\nimport type { PgColumn, PgInsertConfig, PgTable, TableConfig } from '~/pg-core/index.ts';\nimport { PgArray } from '~/pg-core/index.ts';\nimport type { PgRaw } from '~/pg-core/query-builders/raw.ts';\nimport {\n\tcreateTableRelationsHelpers,\n\textractTablesRelationalConfig,\n\ttype RelationalSchemaConfig,\n\ttype TablesRelationalConfig,\n} from '~/relations.ts';\nimport type { DrizzleConfig, UpdateSet } from '~/utils.ts';\nimport type { AwsDataApiClient, AwsDataApiPgQueryResult, AwsDataApiPgQueryResultHKT } from './session.ts';\nimport { AwsDataApiSession } from './session.ts';\n\nexport interface PgDriverOptions {\n\tlogger?: Logger;\n\tdatabase: string;\n\tresourceArn: string;\n\tsecretArn: string;\n}\n\nexport interface DrizzleAwsDataApiPgConfig<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n> extends DrizzleConfig<TSchema> {\n\tdatabase: string;\n\tresourceArn: string;\n\tsecretArn: string;\n}\n\nexport class AwsDataApiPgDatabase<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n> extends PgDatabase<AwsDataApiPgQueryResultHKT, TSchema> {\n\tstatic readonly [entityKind]: string = 'AwsDataApiPgDatabase';\n\n\toverride execute<\n\t\tTRow extends Record<string, unknown> = Record<string, unknown>,\n\t>(query: SQLWrapper): PgRaw<AwsDataApiPgQueryResult<TRow>> {\n\t\treturn super.execute(query);\n\t}\n}\n\nexport class AwsPgDialect extends PgDialect {\n\tstatic readonly [entityKind]: string = 'AwsPgDialect';\n\n\toverride escapeParam(num: number): string {\n\t\treturn `:${num + 1}`;\n\t}\n\n\toverride buildInsertQuery(\n\t\t{ table, values, onConflict, returning }: PgInsertConfig<PgTable<TableConfig>>,\n\t): SQL<unknown> {\n\t\tconst columns: Record<string, PgColumn> = table[Table.Symbol.Columns];\n\t\tconst colEntries: [string, PgColumn][] = Object.entries(columns);\n\t\tfor (const value of values) {\n\t\t\tfor (const [fieldName, col] of colEntries) {\n\t\t\t\tconst colValue = value[fieldName];\n\t\t\t\tif (\n\t\t\t\t\tis(colValue, Param) && colValue.value !== undefined && is(colValue.encoder, PgArray)\n\t\t\t\t\t&& Array.isArray(colValue.value)\n\t\t\t\t) {\n\t\t\t\t\tvalue[fieldName] = sql`cast(${col.mapToDriverValue(colValue.value)} as ${\n\t\t\t\t\t\tsql.raw(colValue.encoder.getSQLType())\n\t\t\t\t\t})`;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn super.buildInsertQuery({ table, values, onConflict, returning });\n\t}\n\n\toverride buildUpdateSet(table: PgTable<TableConfig>, set: UpdateSet): SQL<unknown> {\n\t\tconst columns: Record<string, PgColumn> = table[Table.Symbol.Columns];\n\n\t\tfor (const [colName, colValue] of Object.entries(set)) {\n\t\t\tconst currentColumn = columns[colName];\n\t\t\tif (\n\t\t\t\tcurrentColumn && is(colValue, Param) && colValue.value !== undefined && is(colValue.encoder, PgArray)\n\t\t\t\t&& Array.isArray(colValue.value)\n\t\t\t) {\n\t\t\t\tset[colName] = sql`cast(${currentColumn?.mapToDriverValue(colValue.value)} as ${\n\t\t\t\t\tsql.raw(colValue.encoder.getSQLType())\n\t\t\t\t})`;\n\t\t\t}\n\t\t}\n\t\treturn super.buildUpdateSet(table, set);\n\t}\n}\n\nexport function drizzle<TSchema extends Record<string, unknown> = Record<string, never>>(\n\tclient: AwsDataApiClient,\n\tconfig: DrizzleAwsDataApiPgConfig<TSchema>,\n): AwsDataApiPgDatabase<TSchema> {\n\tconst dialect = new AwsPgDialect();\n\tlet logger;\n\tif (config.logger === true) {\n\t\tlogger = new DefaultLogger();\n\t} else if (config.logger !== false) {\n\t\tlogger = config.logger;\n\t}\n\n\tlet schema: RelationalSchemaConfig<TablesRelationalConfig> | undefined;\n\tif (config.schema) {\n\t\tconst tablesConfig = extractTablesRelationalConfig(\n\t\t\tconfig.schema,\n\t\t\tcreateTableRelationsHelpers,\n\t\t);\n\t\tschema = {\n\t\t\tfullSchema: config.schema,\n\t\t\tschema: tablesConfig.tables,\n\t\t\ttableNamesMap: tablesConfig.tableNamesMap,\n\t\t};\n\t}\n\n\tconst session = new AwsDataApiSession(client, dialect, schema, { ...config, logger }, undefined);\n\treturn new PgDatabase(dialect, session, schema) as AwsDataApiPgDatabase<TSchema>;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oBAA+B;AAE/B,eAAkC;AAElC,oBAA8B;AAC9B,gBAA2B;AAC3B,qBAA0B;AAE1B,qBAAwB;AAExB,uBAKO;AAGP,qBAAkC;AAiB3B,MAAM,6BAEH,qBAAgD;AAAA,EACzD,QAAiB,wBAAU,IAAY;AAAA,EAE9B,QAEP,OAAyD;AAC1D,WAAO,MAAM,QAAQ,KAAK;AAAA,EAC3B;AACD;AAEO,MAAM,qBAAqB,yBAAU;AAAA,EAC3C,QAAiB,wBAAU,IAAY;AAAA,EAE9B,YAAY,KAAqB;AACzC,WAAO,IAAI,MAAM,CAAC;AAAA,EACnB;AAAA,EAES,iBACR,EAAE,OAAO,QAAQ,YAAY,UAAU,GACxB;AACf,UAAM,UAAoC,MAAM,eAAM,OAAO,OAAO;AACpE,UAAM,aAAmC,OAAO,QAAQ,OAAO;AAC/D,eAAW,SAAS,QAAQ;AAC3B,iBAAW,CAAC,WAAW,GAAG,KAAK,YAAY;AAC1C,cAAM,WAAW,MAAM,SAAS;AAChC,gBACC,kBAAG,UAAU,cAAK,KAAK,SAAS,UAAU,cAAa,kBAAG,SAAS,SAAS,sBAAO,KAChF,MAAM,QAAQ,SAAS,KAAK,GAC9B;AACD,gBAAM,SAAS,IAAI,oBAAW,IAAI,iBAAiB,SAAS,KAAK,CAAC,OACjE,aAAI,IAAI,SAAS,QAAQ,WAAW,CAAC,CACtC;AAAA,QACD;AAAA,MACD;AAAA,IACD;AAEA,WAAO,MAAM,iBAAiB,EAAE,OAAO,QAAQ,YAAY,UAAU,CAAC;AAAA,EACvE;AAAA,EAES,eAAe,OAA6B,KAA8B;AAClF,UAAM,UAAoC,MAAM,eAAM,OAAO,OAAO;AAEpE,eAAW,CAAC,SAAS,QAAQ,KAAK,OAAO,QAAQ,GAAG,GAAG;AACtD,YAAM,gBAAgB,QAAQ,OAAO;AACrC,UACC,qBAAiB,kBAAG,UAAU,cAAK,KAAK,SAAS,UAAU,cAAa,kBAAG,SAAS,SAAS,sBAAO,KACjG,MAAM,QAAQ,SAAS,KAAK,GAC9B;AACD,YAAI,OAAO,IAAI,oBAAW,eAAe,iBAAiB,SAAS,KAAK,CAAC,OACxE,aAAI,IAAI,SAAS,QAAQ,WAAW,CAAC,CACtC;AAAA,MACD;AAAA,IACD;AACA,WAAO,MAAM,eAAe,OAAO,GAAG;AAAA,EACvC;AACD;AAEO,SAAS,QACf,QACA,QACgC;AAChC,QAAM,UAAU,IAAI,aAAa;AACjC,MAAI;AACJ,MAAI,OAAO,WAAW,MAAM;AAC3B,aAAS,IAAI,4BAAc;AAAA,EAC5B,WAAW,OAAO,WAAW,OAAO;AACnC,aAAS,OAAO;AAAA,EACjB;AAEA,MAAI;AACJ,MAAI,OAAO,QAAQ;AAClB,UAAM,mBAAe;AAAA,MACpB,OAAO;AAAA,MACP;AAAA,IACD;AACA,aAAS;AAAA,MACR,YAAY,OAAO;AAAA,MACnB,QAAQ,aAAa;AAAA,MACrB,eAAe,aAAa;AAAA,IAC7B;AAAA,EACD;AAEA,QAAM,UAAU,IAAI,iCAAkB,QAAQ,SAAS,QAAQ,EAAE,GAAG,QAAQ,OAAO,GAAG,MAAS;AAC/F,SAAO,IAAI,qBAAW,SAAS,SAAS,MAAM;AAC/C;","names":[]}
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import { entityKind } from "../../entity.cjs";
|
|
2
|
-
import type { SQLWrapper } from "../../index.cjs";
|
|
2
|
+
import type { SQL, SQLWrapper } from "../../index.cjs";
|
|
3
3
|
import type { Logger } from "../../logger.cjs";
|
|
4
4
|
import { PgDatabase } from "../../pg-core/db.cjs";
|
|
5
5
|
import { PgDialect } from "../../pg-core/dialect.cjs";
|
|
6
|
+
import type { PgInsertConfig, PgTable, TableConfig } from "../../pg-core/index.cjs";
|
|
6
7
|
import type { PgRaw } from "../../pg-core/query-builders/raw.cjs";
|
|
7
|
-
import type { DrizzleConfig } from "../../utils.cjs";
|
|
8
|
+
import type { DrizzleConfig, UpdateSet } from "../../utils.cjs";
|
|
8
9
|
import type { AwsDataApiClient, AwsDataApiPgQueryResult, AwsDataApiPgQueryResultHKT } from "./session.cjs";
|
|
9
10
|
export interface PgDriverOptions {
|
|
10
11
|
logger?: Logger;
|
|
@@ -24,5 +25,7 @@ export declare class AwsDataApiPgDatabase<TSchema extends Record<string, unknown
|
|
|
24
25
|
export declare class AwsPgDialect extends PgDialect {
|
|
25
26
|
static readonly [entityKind]: string;
|
|
26
27
|
escapeParam(num: number): string;
|
|
28
|
+
buildInsertQuery({ table, values, onConflict, returning }: PgInsertConfig<PgTable<TableConfig>>): SQL<unknown>;
|
|
29
|
+
buildUpdateSet(table: PgTable<TableConfig>, set: UpdateSet): SQL<unknown>;
|
|
27
30
|
}
|
|
28
31
|
export declare function drizzle<TSchema extends Record<string, unknown> = Record<string, never>>(client: AwsDataApiClient, config: DrizzleAwsDataApiPgConfig<TSchema>): AwsDataApiPgDatabase<TSchema>;
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import { entityKind } from "../../entity.js";
|
|
2
|
-
import type { SQLWrapper } from "../../index.js";
|
|
2
|
+
import type { SQL, SQLWrapper } from "../../index.js";
|
|
3
3
|
import type { Logger } from "../../logger.js";
|
|
4
4
|
import { PgDatabase } from "../../pg-core/db.js";
|
|
5
5
|
import { PgDialect } from "../../pg-core/dialect.js";
|
|
6
|
+
import type { PgInsertConfig, PgTable, TableConfig } from "../../pg-core/index.js";
|
|
6
7
|
import type { PgRaw } from "../../pg-core/query-builders/raw.js";
|
|
7
|
-
import type { DrizzleConfig } from "../../utils.js";
|
|
8
|
+
import type { DrizzleConfig, UpdateSet } from "../../utils.js";
|
|
8
9
|
import type { AwsDataApiClient, AwsDataApiPgQueryResult, AwsDataApiPgQueryResultHKT } from "./session.js";
|
|
9
10
|
export interface PgDriverOptions {
|
|
10
11
|
logger?: Logger;
|
|
@@ -24,5 +25,7 @@ export declare class AwsDataApiPgDatabase<TSchema extends Record<string, unknown
|
|
|
24
25
|
export declare class AwsPgDialect extends PgDialect {
|
|
25
26
|
static readonly [entityKind]: string;
|
|
26
27
|
escapeParam(num: number): string;
|
|
28
|
+
buildInsertQuery({ table, values, onConflict, returning }: PgInsertConfig<PgTable<TableConfig>>): SQL<unknown>;
|
|
29
|
+
buildUpdateSet(table: PgTable<TableConfig>, set: UpdateSet): SQL<unknown>;
|
|
27
30
|
}
|
|
28
31
|
export declare function drizzle<TSchema extends Record<string, unknown> = Record<string, never>>(client: AwsDataApiClient, config: DrizzleAwsDataApiPgConfig<TSchema>): AwsDataApiPgDatabase<TSchema>;
|
|
@@ -1,7 +1,9 @@
|
|
|
1
|
-
import { entityKind } from "../../entity.js";
|
|
1
|
+
import { entityKind, is } from "../../entity.js";
|
|
2
|
+
import { Param, sql, Table } from "../../index.js";
|
|
2
3
|
import { DefaultLogger } from "../../logger.js";
|
|
3
4
|
import { PgDatabase } from "../../pg-core/db.js";
|
|
4
5
|
import { PgDialect } from "../../pg-core/dialect.js";
|
|
6
|
+
import { PgArray } from "../../pg-core/index.js";
|
|
5
7
|
import {
|
|
6
8
|
createTableRelationsHelpers,
|
|
7
9
|
extractTablesRelationalConfig
|
|
@@ -18,6 +20,29 @@ class AwsPgDialect extends PgDialect {
|
|
|
18
20
|
escapeParam(num) {
|
|
19
21
|
return `:${num + 1}`;
|
|
20
22
|
}
|
|
23
|
+
buildInsertQuery({ table, values, onConflict, returning }) {
|
|
24
|
+
const columns = table[Table.Symbol.Columns];
|
|
25
|
+
const colEntries = Object.entries(columns);
|
|
26
|
+
for (const value of values) {
|
|
27
|
+
for (const [fieldName, col] of colEntries) {
|
|
28
|
+
const colValue = value[fieldName];
|
|
29
|
+
if (is(colValue, Param) && colValue.value !== void 0 && is(colValue.encoder, PgArray) && Array.isArray(colValue.value)) {
|
|
30
|
+
value[fieldName] = sql`cast(${col.mapToDriverValue(colValue.value)} as ${sql.raw(colValue.encoder.getSQLType())})`;
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
return super.buildInsertQuery({ table, values, onConflict, returning });
|
|
35
|
+
}
|
|
36
|
+
buildUpdateSet(table, set) {
|
|
37
|
+
const columns = table[Table.Symbol.Columns];
|
|
38
|
+
for (const [colName, colValue] of Object.entries(set)) {
|
|
39
|
+
const currentColumn = columns[colName];
|
|
40
|
+
if (currentColumn && is(colValue, Param) && colValue.value !== void 0 && is(colValue.encoder, PgArray) && Array.isArray(colValue.value)) {
|
|
41
|
+
set[colName] = sql`cast(${currentColumn?.mapToDriverValue(colValue.value)} as ${sql.raw(colValue.encoder.getSQLType())})`;
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
return super.buildUpdateSet(table, set);
|
|
45
|
+
}
|
|
21
46
|
}
|
|
22
47
|
function drizzle(client, config) {
|
|
23
48
|
const dialect = new AwsPgDialect();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/aws-data-api/pg/driver.ts"],"sourcesContent":["import { entityKind } from '~/entity.ts';\nimport type { SQLWrapper } from '~/index.ts';\nimport type { Logger } from '~/logger.ts';\nimport { DefaultLogger } from '~/logger.ts';\nimport { PgDatabase } from '~/pg-core/db.ts';\nimport { PgDialect } from '~/pg-core/dialect.ts';\nimport type { PgRaw } from '~/pg-core/query-builders/raw.ts';\nimport {\n\tcreateTableRelationsHelpers,\n\textractTablesRelationalConfig,\n\ttype RelationalSchemaConfig,\n\ttype TablesRelationalConfig,\n} from '~/relations.ts';\nimport type { DrizzleConfig } from '~/utils.ts';\nimport type { AwsDataApiClient, AwsDataApiPgQueryResult, AwsDataApiPgQueryResultHKT } from './session.ts';\nimport { AwsDataApiSession } from './session.ts';\n\nexport interface PgDriverOptions {\n\tlogger?: Logger;\n\tdatabase: string;\n\tresourceArn: string;\n\tsecretArn: string;\n}\n\nexport interface DrizzleAwsDataApiPgConfig<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n> extends DrizzleConfig<TSchema> {\n\tdatabase: string;\n\tresourceArn: string;\n\tsecretArn: string;\n}\n\nexport class AwsDataApiPgDatabase<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n> extends PgDatabase<AwsDataApiPgQueryResultHKT, TSchema> {\n\tstatic readonly [entityKind]: string = 'AwsDataApiPgDatabase';\n\n\toverride execute<\n\t\tTRow extends Record<string, unknown> = Record<string, unknown>,\n\t>(query: SQLWrapper): PgRaw<AwsDataApiPgQueryResult<TRow>> {\n\t\treturn super.execute(query);\n\t}\n}\n\nexport class AwsPgDialect extends PgDialect {\n\tstatic readonly [entityKind]: string = 'AwsPgDialect';\n\n\toverride escapeParam(num: number): string {\n\t\treturn `:${num + 1}`;\n\t}\n}\n\nexport function drizzle<TSchema extends Record<string, unknown> = Record<string, never>>(\n\tclient: AwsDataApiClient,\n\tconfig: DrizzleAwsDataApiPgConfig<TSchema>,\n): AwsDataApiPgDatabase<TSchema> {\n\tconst dialect = new AwsPgDialect();\n\tlet logger;\n\tif (config.logger === true) {\n\t\tlogger = new DefaultLogger();\n\t} else if (config.logger !== false) {\n\t\tlogger = config.logger;\n\t}\n\n\tlet schema: RelationalSchemaConfig<TablesRelationalConfig> | undefined;\n\tif (config.schema) {\n\t\tconst tablesConfig = extractTablesRelationalConfig(\n\t\t\tconfig.schema,\n\t\t\tcreateTableRelationsHelpers,\n\t\t);\n\t\tschema = {\n\t\t\tfullSchema: config.schema,\n\t\t\tschema: tablesConfig.tables,\n\t\t\ttableNamesMap: tablesConfig.tableNamesMap,\n\t\t};\n\t}\n\n\tconst session = new AwsDataApiSession(client, dialect, schema, { ...config, logger }, undefined);\n\treturn new PgDatabase(dialect, session, schema) as AwsDataApiPgDatabase<TSchema>;\n}\n"],"mappings":"AAAA,SAAS,
|
|
1
|
+
{"version":3,"sources":["../../../src/aws-data-api/pg/driver.ts"],"sourcesContent":["import { entityKind, is } from '~/entity.ts';\nimport type { SQL, SQLWrapper } from '~/index.ts';\nimport { Param, sql, Table } from '~/index.ts';\nimport type { Logger } from '~/logger.ts';\nimport { DefaultLogger } from '~/logger.ts';\nimport { PgDatabase } from '~/pg-core/db.ts';\nimport { PgDialect } from '~/pg-core/dialect.ts';\nimport type { PgColumn, PgInsertConfig, PgTable, TableConfig } from '~/pg-core/index.ts';\nimport { PgArray } from '~/pg-core/index.ts';\nimport type { PgRaw } from '~/pg-core/query-builders/raw.ts';\nimport {\n\tcreateTableRelationsHelpers,\n\textractTablesRelationalConfig,\n\ttype RelationalSchemaConfig,\n\ttype TablesRelationalConfig,\n} from '~/relations.ts';\nimport type { DrizzleConfig, UpdateSet } from '~/utils.ts';\nimport type { AwsDataApiClient, AwsDataApiPgQueryResult, AwsDataApiPgQueryResultHKT } from './session.ts';\nimport { AwsDataApiSession } from './session.ts';\n\nexport interface PgDriverOptions {\n\tlogger?: Logger;\n\tdatabase: string;\n\tresourceArn: string;\n\tsecretArn: string;\n}\n\nexport interface DrizzleAwsDataApiPgConfig<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n> extends DrizzleConfig<TSchema> {\n\tdatabase: string;\n\tresourceArn: string;\n\tsecretArn: string;\n}\n\nexport class AwsDataApiPgDatabase<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n> extends PgDatabase<AwsDataApiPgQueryResultHKT, TSchema> {\n\tstatic readonly [entityKind]: string = 'AwsDataApiPgDatabase';\n\n\toverride execute<\n\t\tTRow extends Record<string, unknown> = Record<string, unknown>,\n\t>(query: SQLWrapper): PgRaw<AwsDataApiPgQueryResult<TRow>> {\n\t\treturn super.execute(query);\n\t}\n}\n\nexport class AwsPgDialect extends PgDialect {\n\tstatic readonly [entityKind]: string = 'AwsPgDialect';\n\n\toverride escapeParam(num: number): string {\n\t\treturn `:${num + 1}`;\n\t}\n\n\toverride buildInsertQuery(\n\t\t{ table, values, onConflict, returning }: PgInsertConfig<PgTable<TableConfig>>,\n\t): SQL<unknown> {\n\t\tconst columns: Record<string, PgColumn> = table[Table.Symbol.Columns];\n\t\tconst colEntries: [string, PgColumn][] = Object.entries(columns);\n\t\tfor (const value of values) {\n\t\t\tfor (const [fieldName, col] of colEntries) {\n\t\t\t\tconst colValue = value[fieldName];\n\t\t\t\tif (\n\t\t\t\t\tis(colValue, Param) && colValue.value !== undefined && is(colValue.encoder, PgArray)\n\t\t\t\t\t&& Array.isArray(colValue.value)\n\t\t\t\t) {\n\t\t\t\t\tvalue[fieldName] = sql`cast(${col.mapToDriverValue(colValue.value)} as ${\n\t\t\t\t\t\tsql.raw(colValue.encoder.getSQLType())\n\t\t\t\t\t})`;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn super.buildInsertQuery({ table, values, onConflict, returning });\n\t}\n\n\toverride buildUpdateSet(table: PgTable<TableConfig>, set: UpdateSet): SQL<unknown> {\n\t\tconst columns: Record<string, PgColumn> = table[Table.Symbol.Columns];\n\n\t\tfor (const [colName, colValue] of Object.entries(set)) {\n\t\t\tconst currentColumn = columns[colName];\n\t\t\tif (\n\t\t\t\tcurrentColumn && is(colValue, Param) && colValue.value !== undefined && is(colValue.encoder, PgArray)\n\t\t\t\t&& Array.isArray(colValue.value)\n\t\t\t) {\n\t\t\t\tset[colName] = sql`cast(${currentColumn?.mapToDriverValue(colValue.value)} as ${\n\t\t\t\t\tsql.raw(colValue.encoder.getSQLType())\n\t\t\t\t})`;\n\t\t\t}\n\t\t}\n\t\treturn super.buildUpdateSet(table, set);\n\t}\n}\n\nexport function drizzle<TSchema extends Record<string, unknown> = Record<string, never>>(\n\tclient: AwsDataApiClient,\n\tconfig: DrizzleAwsDataApiPgConfig<TSchema>,\n): AwsDataApiPgDatabase<TSchema> {\n\tconst dialect = new AwsPgDialect();\n\tlet logger;\n\tif (config.logger === true) {\n\t\tlogger = new DefaultLogger();\n\t} else if (config.logger !== false) {\n\t\tlogger = config.logger;\n\t}\n\n\tlet schema: RelationalSchemaConfig<TablesRelationalConfig> | undefined;\n\tif (config.schema) {\n\t\tconst tablesConfig = extractTablesRelationalConfig(\n\t\t\tconfig.schema,\n\t\t\tcreateTableRelationsHelpers,\n\t\t);\n\t\tschema = {\n\t\t\tfullSchema: config.schema,\n\t\t\tschema: tablesConfig.tables,\n\t\t\ttableNamesMap: tablesConfig.tableNamesMap,\n\t\t};\n\t}\n\n\tconst session = new AwsDataApiSession(client, dialect, schema, { ...config, logger }, undefined);\n\treturn new PgDatabase(dialect, session, schema) as AwsDataApiPgDatabase<TSchema>;\n}\n"],"mappings":"AAAA,SAAS,YAAY,UAAU;AAE/B,SAAS,OAAO,KAAK,aAAa;AAElC,SAAS,qBAAqB;AAC9B,SAAS,kBAAkB;AAC3B,SAAS,iBAAiB;AAE1B,SAAS,eAAe;AAExB;AAAA,EACC;AAAA,EACA;AAAA,OAGM;AAGP,SAAS,yBAAyB;AAiB3B,MAAM,6BAEH,WAAgD;AAAA,EACzD,QAAiB,UAAU,IAAY;AAAA,EAE9B,QAEP,OAAyD;AAC1D,WAAO,MAAM,QAAQ,KAAK;AAAA,EAC3B;AACD;AAEO,MAAM,qBAAqB,UAAU;AAAA,EAC3C,QAAiB,UAAU,IAAY;AAAA,EAE9B,YAAY,KAAqB;AACzC,WAAO,IAAI,MAAM,CAAC;AAAA,EACnB;AAAA,EAES,iBACR,EAAE,OAAO,QAAQ,YAAY,UAAU,GACxB;AACf,UAAM,UAAoC,MAAM,MAAM,OAAO,OAAO;AACpE,UAAM,aAAmC,OAAO,QAAQ,OAAO;AAC/D,eAAW,SAAS,QAAQ;AAC3B,iBAAW,CAAC,WAAW,GAAG,KAAK,YAAY;AAC1C,cAAM,WAAW,MAAM,SAAS;AAChC,YACC,GAAG,UAAU,KAAK,KAAK,SAAS,UAAU,UAAa,GAAG,SAAS,SAAS,OAAO,KAChF,MAAM,QAAQ,SAAS,KAAK,GAC9B;AACD,gBAAM,SAAS,IAAI,WAAW,IAAI,iBAAiB,SAAS,KAAK,CAAC,OACjE,IAAI,IAAI,SAAS,QAAQ,WAAW,CAAC,CACtC;AAAA,QACD;AAAA,MACD;AAAA,IACD;AAEA,WAAO,MAAM,iBAAiB,EAAE,OAAO,QAAQ,YAAY,UAAU,CAAC;AAAA,EACvE;AAAA,EAES,eAAe,OAA6B,KAA8B;AAClF,UAAM,UAAoC,MAAM,MAAM,OAAO,OAAO;AAEpE,eAAW,CAAC,SAAS,QAAQ,KAAK,OAAO,QAAQ,GAAG,GAAG;AACtD,YAAM,gBAAgB,QAAQ,OAAO;AACrC,UACC,iBAAiB,GAAG,UAAU,KAAK,KAAK,SAAS,UAAU,UAAa,GAAG,SAAS,SAAS,OAAO,KACjG,MAAM,QAAQ,SAAS,KAAK,GAC9B;AACD,YAAI,OAAO,IAAI,WAAW,eAAe,iBAAiB,SAAS,KAAK,CAAC,OACxE,IAAI,IAAI,SAAS,QAAQ,WAAW,CAAC,CACtC;AAAA,MACD;AAAA,IACD;AACA,WAAO,MAAM,eAAe,OAAO,GAAG;AAAA,EACvC;AACD;AAEO,SAAS,QACf,QACA,QACgC;AAChC,QAAM,UAAU,IAAI,aAAa;AACjC,MAAI;AACJ,MAAI,OAAO,WAAW,MAAM;AAC3B,aAAS,IAAI,cAAc;AAAA,EAC5B,WAAW,OAAO,WAAW,OAAO;AACnC,aAAS,OAAO;AAAA,EACjB;AAEA,MAAI;AACJ,MAAI,OAAO,QAAQ;AAClB,UAAM,eAAe;AAAA,MACpB,OAAO;AAAA,MACP;AAAA,IACD;AACA,aAAS;AAAA,MACR,YAAY,OAAO;AAAA,MACnB,QAAQ,aAAa;AAAA,MACrB,eAAe,aAAa;AAAA,IAC7B;AAAA,EACD;AAEA,QAAM,UAAU,IAAI,kBAAkB,QAAQ,SAAS,QAAQ,EAAE,GAAG,QAAQ,OAAO,GAAG,MAAS;AAC/F,SAAO,IAAI,WAAW,SAAS,SAAS,MAAM;AAC/C;","names":[]}
|
package/package.json
CHANGED
package/version.cjs
CHANGED
package/version.d.cts
CHANGED
package/version.d.ts
CHANGED
package/version.js
CHANGED