relq 1.0.59 → 1.0.60

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.
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.json = exports.xml = exports.uuid = exports.tsquery = exports.tsvector = exports.varbit = exports.bitVarying = exports.bit = exports.macaddr8 = exports.macaddr = exports.inet = exports.cidr = exports.circle = exports.polygon = exports.path = exports.box = exports.lseg = exports.line = exports.point = exports.bool = exports.boolean = exports.timeWithTimeZone = exports.date = exports.timestampWithTimeZone = exports.bytea = exports.text = exports.character = exports.characterVarying = exports.money = exports.float8 = exports.doublePrecision = exports.float4 = exports.real = exports.numeric = exports.decimal = exports.serial8 = exports.bigserial = exports.serial2 = exports.smallserial = exports.serial4 = exports.serial = exports.int8 = exports.bigint = exports.int2 = exports.smallint = exports.int4 = exports.int = exports.integer = exports.EMPTY_ARRAY = exports.EMPTY_OBJECT = void 0;
4
- exports.index = exports.raw = exports.emptyArray = exports.emptyObject = exports.currentDate = exports.currentTimestamp = exports.now = exports.uuidV4 = exports.genRandomUuid = exports.SQL_BRAND = exports.compositeType = exports.domainType = exports.enumType = exports.customType = exports.box3d = exports.box2d = exports.geoPoint = exports.geography = exports.geometry = exports.semver = exports.cube = exports.hstore = exports.ltxtquery = exports.lquery = exports.ltree = exports.citext = exports.pgSnapshot = exports.pgLsn = exports.regtype = exports.regproc = exports.regclass = exports.oid = exports.datemultirange = exports.tstzmultirange = exports.tsmultirange = exports.nummultirange = exports.int8multirange = exports.int4multirange = exports.daterange = exports.tstzrange = exports.tsrange = exports.numrange = exports.int8range = exports.int4range = exports.jsonb = void 0;
3
+ exports.xml = exports.uuid = exports.tsquery = exports.tsvector = exports.varbit = exports.bitVarying = exports.bit = exports.macaddr8 = exports.macaddr = exports.inet = exports.cidr = exports.circle = exports.polygon = exports.path = exports.box = exports.lseg = exports.line = exports.point = exports.bool = exports.boolean = exports.timeWithTimeZone = exports.date = exports.timestampWithTimeZone = exports.bytea = exports.text = exports.character = exports.characterVarying = exports.money = exports.float8 = exports.doublePrecision = exports.float4 = exports.real = exports.numeric = exports.decimal = exports.epoch = exports.serial8 = exports.bigserial = exports.serial2 = exports.smallserial = exports.serial4 = exports.serial = exports.int8 = exports.bigint = exports.int2 = exports.smallint = exports.int4 = exports.int = exports.integer = exports.EMPTY_ARRAY = exports.EMPTY_OBJECT = void 0;
4
+ exports.index = exports.raw = exports.emptyArray = exports.emptyObject = exports.currentDate = exports.currentTimestamp = exports.now = exports.uuidV4 = exports.genRandomUuid = exports.SQL_BRAND = exports.compositeType = exports.domainType = exports.enumType = exports.customType = exports.box3d = exports.box2d = exports.geoPoint = exports.geography = exports.geometry = exports.semver = exports.cube = exports.hstore = exports.ltxtquery = exports.lquery = exports.ltree = exports.citext = exports.pgSnapshot = exports.pgLsn = exports.regtype = exports.regproc = exports.regclass = exports.oid = exports.datemultirange = exports.tstzmultirange = exports.tsmultirange = exports.nummultirange = exports.int8multirange = exports.int4multirange = exports.daterange = exports.tstzrange = exports.tsrange = exports.numrange = exports.int8range = exports.int4range = exports.jsonb = exports.json = void 0;
5
5
  exports.createFluentGenExpr = createFluentGenExpr;
6
6
  exports.varchar = varchar;
7
7
  exports.char = char;
@@ -653,6 +653,8 @@ exports.serial2 = exports.smallserial;
653
653
  const bigserial = (columnName) => createColumnWithName('BIGSERIAL', columnName);
654
654
  exports.bigserial = bigserial;
655
655
  exports.serial8 = exports.bigserial;
656
+ const epoch = (columnName) => createColumnWithName('BIGINT', columnName);
657
+ exports.epoch = epoch;
656
658
  const decimal = (columnNameOrOpts, scale) => {
657
659
  if (typeof columnNameOrOpts === 'string' && !columnNameOrOpts.includes('.')) {
658
660
  return createColumnWithName('DECIMAL', columnNameOrOpts);
@@ -21,6 +21,8 @@ exports.DEFAULT = {
21
21
  clockTimestamp: () => createDefault('clock_timestamp()'),
22
22
  timeofday: () => createDefault('timeofday()'),
23
23
  interval: (value) => createDefault(`INTERVAL '${value}'`),
24
+ epochNow: () => createDefault('(EXTRACT(EPOCH FROM NOW()) * 1000)::bigint'),
25
+ epochSeconds: () => createDefault('EXTRACT(EPOCH FROM NOW())::bigint'),
24
26
  currentUser: () => createDefault('CURRENT_USER'),
25
27
  sessionUser: () => createDefault('SESSION_USER'),
26
28
  user: () => createDefault('USER'),
@@ -630,6 +630,7 @@ export const smallserial = (columnName) => createColumnWithName('SMALLSERIAL', c
630
630
  export const serial2 = smallserial;
631
631
  export const bigserial = (columnName) => createColumnWithName('BIGSERIAL', columnName);
632
632
  export const serial8 = bigserial;
633
+ export const epoch = (columnName) => createColumnWithName('BIGINT', columnName);
633
634
  export const decimal = (columnNameOrOpts, scale) => {
634
635
  if (typeof columnNameOrOpts === 'string' && !columnNameOrOpts.includes('.')) {
635
636
  return createColumnWithName('DECIMAL', columnNameOrOpts);
@@ -18,6 +18,8 @@ export const DEFAULT = {
18
18
  clockTimestamp: () => createDefault('clock_timestamp()'),
19
19
  timeofday: () => createDefault('timeofday()'),
20
20
  interval: (value) => createDefault(`INTERVAL '${value}'`),
21
+ epochNow: () => createDefault('(EXTRACT(EPOCH FROM NOW()) * 1000)::bigint'),
22
+ epochSeconds: () => createDefault('EXTRACT(EPOCH FROM NOW())::bigint'),
21
23
  currentUser: () => createDefault('CURRENT_USER'),
22
24
  sessionUser: () => createDefault('SESSION_USER'),
23
25
  user: () => createDefault('USER'),
@@ -23,6 +23,10 @@ export declare const DEFAULT: {
23
23
  readonly clockTimestamp: () => DefaultValue;
24
24
  readonly timeofday: () => DefaultValue;
25
25
  readonly interval: (value: string) => DefaultValue;
26
+ /** Current time as epoch milliseconds (BIGINT) - use with epoch() column */
27
+ readonly epochNow: () => DefaultValue;
28
+ /** Current time as epoch seconds (BIGINT) */
29
+ readonly epochSeconds: () => DefaultValue;
26
30
  readonly currentUser: () => DefaultValue;
27
31
  readonly sessionUser: () => DefaultValue;
28
32
  readonly user: () => DefaultValue;
@@ -978,6 +982,17 @@ export declare const smallserial: (columnName?: string) => ColumnBuilder<number,
978
982
  export declare const serial2: (columnName?: string) => ColumnBuilder<number, ColumnConfig<number>>;
979
983
  export declare const bigserial: (columnName?: string) => ColumnBuilder<bigint, ColumnConfig<bigint>>;
980
984
  export declare const serial8: (columnName?: string) => ColumnBuilder<bigint, ColumnConfig<bigint>>;
985
+ /**
986
+ * Epoch timestamp column (BIGINT storing milliseconds since Unix epoch)
987
+ * Use with DEFAULT.epochNow() for auto-generated timestamps
988
+ *
989
+ * @example
990
+ * ```typescript
991
+ * createdAt: epoch().default(DEFAULT.epochNow()),
992
+ * updatedAt: epoch().default(DEFAULT.epochNow()),
993
+ * ```
994
+ */
995
+ export declare const epoch: (columnName?: string) => ColumnBuilder<number, ColumnConfig<number>>;
981
996
  export declare const decimal: (columnNameOrOpts?: string | number | {
982
997
  precision?: number;
983
998
  scale?: number;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "relq",
3
- "version": "1.0.59",
3
+ "version": "1.0.60",
4
4
  "description": "The Fully-Typed PostgreSQL ORM for TypeScript",
5
5
  "author": "Olajide Mathew O. <olajide.mathew@yuniq.solutions>",
6
6
  "license": "MIT",