@powersync/service-jpgwire 0.20.0 → 0.20.2
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/LICENSE +3 -3
- package/dist/pgwire_types.d.ts +3 -1
- package/dist/pgwire_types.js +4 -0
- package/dist/pgwire_types.js.map +1 -1
- package/dist/util.d.ts +5 -2
- package/dist/util.js +29 -15
- package/dist/util.js.map +1 -1
- package/package.json +4 -3
package/LICENSE
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
# Functional Source License, Version 1.1,
|
|
1
|
+
# Functional Source License, Version 1.1, ALv2 Future License
|
|
2
2
|
|
|
3
3
|
## Abbreviation
|
|
4
4
|
|
|
5
|
-
FSL-1.1-
|
|
5
|
+
FSL-1.1-ALv2
|
|
6
6
|
|
|
7
7
|
## Notice
|
|
8
8
|
|
|
9
|
-
Copyright 2023-
|
|
9
|
+
Copyright 2023-2025 Journey Mobile, Inc.
|
|
10
10
|
|
|
11
11
|
## Terms and Conditions
|
|
12
12
|
|
package/dist/pgwire_types.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { type DatabaseInputValue } from '@powersync/service-sync-rules';
|
|
1
2
|
export declare enum PgTypeOid {
|
|
2
3
|
TEXT = 25,
|
|
3
4
|
UUID = 2950,
|
|
@@ -13,13 +14,14 @@ export declare enum PgTypeOid {
|
|
|
13
14
|
DATE = 1082,
|
|
14
15
|
TIMESTAMP = 1114,
|
|
15
16
|
TIMESTAMPTZ = 1184,
|
|
17
|
+
TIME = 1083,
|
|
16
18
|
JSON = 114,
|
|
17
19
|
JSONB = 3802,
|
|
18
20
|
PG_LSN = 3220
|
|
19
21
|
}
|
|
20
22
|
export declare class PgType {
|
|
21
23
|
static getArrayType(typeOid: number): number | undefined;
|
|
22
|
-
static decode(text: string, typeOid: number):
|
|
24
|
+
static decode(text: string, typeOid: number): DatabaseInputValue;
|
|
23
25
|
static _elemTypeOid(arrayTypeOid: number): number | undefined;
|
|
24
26
|
static _decodeArray(text: string, elemTypeOid: number): any;
|
|
25
27
|
static _decodeBytea(text: string): Uint8Array;
|
package/dist/pgwire_types.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
// Adapted from https://github.com/kagis/pgwire/blob/0dc927f9f8990a903f238737326e53ba1c8d094f/mod.js#L2218
|
|
2
2
|
import { JsonContainer } from '@powersync/service-jsonbig';
|
|
3
|
+
import { TimeValue } from '@powersync/service-sync-rules';
|
|
3
4
|
import { dateToSqlite, lsnMakeComparable, timestampToSqlite, timestamptzToSqlite } from './util.js';
|
|
4
5
|
export var PgTypeOid;
|
|
5
6
|
(function (PgTypeOid) {
|
|
@@ -17,6 +18,7 @@ export var PgTypeOid;
|
|
|
17
18
|
PgTypeOid[PgTypeOid["DATE"] = 1082] = "DATE";
|
|
18
19
|
PgTypeOid[PgTypeOid["TIMESTAMP"] = 1114] = "TIMESTAMP";
|
|
19
20
|
PgTypeOid[PgTypeOid["TIMESTAMPTZ"] = 1184] = "TIMESTAMPTZ";
|
|
21
|
+
PgTypeOid[PgTypeOid["TIME"] = 1083] = "TIME";
|
|
20
22
|
PgTypeOid[PgTypeOid["JSON"] = 114] = "JSON";
|
|
21
23
|
PgTypeOid[PgTypeOid["JSONB"] = 3802] = "JSONB";
|
|
22
24
|
PgTypeOid[PgTypeOid["PG_LSN"] = 3220] = "PG_LSN";
|
|
@@ -125,6 +127,8 @@ export class PgType {
|
|
|
125
127
|
return timestampToSqlite(text);
|
|
126
128
|
case PgTypeOid.TIMESTAMPTZ:
|
|
127
129
|
return timestamptzToSqlite(text);
|
|
130
|
+
case PgTypeOid.TIME:
|
|
131
|
+
return TimeValue.parse(text);
|
|
128
132
|
case PgTypeOid.JSON:
|
|
129
133
|
case PgTypeOid.JSONB:
|
|
130
134
|
// Don't parse the contents
|
package/dist/pgwire_types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pgwire_types.js","sourceRoot":"","sources":["../src/pgwire_types.ts"],"names":[],"mappings":"AAAA,0GAA0G;AAE1G,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAEpG,MAAM,CAAN,IAAY,
|
|
1
|
+
{"version":3,"file":"pgwire_types.js","sourceRoot":"","sources":["../src/pgwire_types.ts"],"names":[],"mappings":"AAAA,0GAA0G;AAE1G,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,SAAS,EAA2B,MAAM,+BAA+B,CAAC;AACnF,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAEpG,MAAM,CAAN,IAAY,SAmBX;AAnBD,WAAY,SAAS;IACnB,0CAAS,CAAA;IACT,4CAAW,CAAA;IACX,kDAAc,CAAA;IACd,0CAAS,CAAA;IACT,4CAAU,CAAA;IACV,0CAAS,CAAA;IACT,0CAAS,CAAA;IACT,wCAAQ,CAAA;IACR,0CAAS,CAAA;IACT,+CAAY,CAAA;IACZ,+CAAY,CAAA;IACZ,4CAAW,CAAA;IACX,sDAAgB,CAAA;IAChB,0DAAkB,CAAA;IAClB,4CAAW,CAAA;IACX,2CAAU,CAAA;IACV,8CAAY,CAAA;IACZ,gDAAa,CAAA;AACf,CAAC,EAnBW,SAAS,KAAT,SAAS,QAmBpB;AAED,kBAAkB;AAClB,8GAA8G;AAC9G,MAAM,iBAAiB,GAAG,IAAI,GAAG,CAAiB;IAChD,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,OAAO;IACnB,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,QAAQ;IACpB,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,OAAO;IACnB,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,OAAO;IACnB,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,OAAO;IACnB,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,OAAO;IACnB,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,aAAa;IACzB,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,OAAO;IACnB,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,UAAU;IACtB,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,OAAO;IACnB,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,MAAM;IAClB,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,MAAM;IAClB,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,MAAM;IAClB,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,MAAM;IAClB,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,YAAY;IACxB,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,UAAU;IACrB,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,eAAe;IAC1B,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,UAAU;IACrB,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,WAAW;IACtB,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,OAAO;IACnB,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,MAAM;IAClB,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,OAAO;IACpB,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,QAAQ;IACrB,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,OAAO;IACpB,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,OAAO;IACpB,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,MAAM;IACnB,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,UAAU;IACvB,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,OAAO;IACnB,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,SAAS;IACtB,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,SAAS;IACtB,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,UAAU;IACpB,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,SAAS;IACrB,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,QAAQ;IACpB,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,UAAU;IACvB,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,OAAO;IACpB,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,OAAO;IACnB,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,WAAW;IACvB,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,UAAU;IACxB,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,SAAS;IACvB,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,UAAU;IACxB,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,OAAO;IACrB,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,OAAO;IACrB,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,YAAY;IAC1B,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,cAAc;IAC5B,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,WAAW;IACzB,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,SAAS;IACvB,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,MAAM;IACpB,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,SAAS;IACvB,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,UAAU;IACxB,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,YAAY;IAC1B,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,eAAe;IAC7B,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,UAAU;IACxB,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,cAAc;IAC5B,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,WAAW;IACzB,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,eAAe;IAC7B,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,UAAU;IACxB,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,UAAU;IACxB,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,eAAe;IAC7B,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,OAAO;IACrB,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,SAAS;IACvB,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,WAAW;IACzB,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,YAAY;IAC1B,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,UAAU;IACxB,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,YAAY;IAC1B,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,gBAAgB;IAC9B,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,QAAQ;IACtB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,WAAW;CACzB,CAAC,CAAC;AAEH,MAAM,iBAAiB,GAAG,IAAI,GAAG,EAAkB,CAAC;AACpD,iBAAiB,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;IACvC,iBAAiB,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;AACpC,CAAC,CAAC,CAAC;AAEH,MAAM,OAAO,MAAM;IACjB,MAAM,CAAC,YAAY,CAAC,OAAe;QACjC,OAAO,iBAAiB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IACxC,CAAC;IAED,MAAM,CAAC,MAAM,CAAC,IAAY,EAAE,OAAe;QACzC,QAAQ,OAAO,EAAE,CAAC;YAChB,uCAAuC;YACvC,KAAK,SAAS,CAAC,IAAI,CAAC;YACpB,KAAK,SAAS,CAAC,IAAI,CAAC;YACpB,KAAK,SAAS,CAAC,OAAO;gBACpB,OAAO,IAAI,CAAC;YACd,KAAK,SAAS,CAAC,IAAI;gBACjB,OAAO,IAAI,IAAI,GAAG,CAAC;YACrB,KAAK,SAAS,CAAC,KAAK;gBAClB,OAAO,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;YACjC,KAAK,SAAS,CAAC,IAAI,CAAC;YACpB,KAAK,SAAS,CAAC,IAAI,CAAC;YACpB,KAAK,SAAS,CAAC,GAAG,CAAC;YACnB,KAAK,SAAS,CAAC,IAAI;gBACjB,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC;YACtB,KAAK,SAAS,CAAC,MAAM,CAAC;YACtB,KAAK,SAAS,CAAC,MAAM;gBACnB,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC;YACtB,KAAK,SAAS,CAAC,IAAI;gBACjB,OAAO,YAAY,CAAC,IAAI,CAAC,CAAC;YAC5B,KAAK,SAAS,CAAC,SAAS;gBACtB,OAAO,iBAAiB,CAAC,IAAI,CAAC,CAAC;YACjC,KAAK,SAAS,CAAC,WAAW;gBACxB,OAAO,mBAAmB,CAAC,IAAI,CAAC,CAAC;YACnC,KAAK,SAAS,CAAC,IAAI;gBACjB,OAAO,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAC/B,KAAK,SAAS,CAAC,IAAI,CAAC;YACpB,KAAK,SAAS,CAAC,KAAK;gBAClB,2BAA2B;gBAC3B,OAAO,IAAI,aAAa,CAAC,IAAI,CAAC,CAAC;YACjC,KAAK,SAAS,CAAC,MAAM;gBACnB,OAAO,iBAAiB,CAAC,IAAI,CAAC,CAAC;QACnC,CAAC;QACD,MAAM,UAAU,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;QAC9C,IAAI,UAAU,IAAI,IAAI,EAAE,CAAC;YACvB,OAAO,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;QAC7C,CAAC;QACD,OAAO,IAAI,CAAC,CAAC,eAAe;IAC9B,CAAC;IAED,MAAM,CAAC,YAAY,CAAC,YAAoB;QACtC,sHAAsH;QACtH,OAAO,iBAAiB,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;IAC7C,CAAC;IAED,MAAM,CAAC,YAAY,CAAC,IAAY,EAAE,WAAmB;QACnD,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC,kBAAkB;QACrD,IAAI,MAAW,CAAC;QAChB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,QAAQ,GAAG,KAAK,EAAE,OAAO,GAAG,CAAC,EAAE,KAAK,GAAU,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACvF,MAAM,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;YAC9B,IAAI,EAAE,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;gBACrB,CAAC,EAAE,CAAC,CAAC,SAAS;YAChB,CAAC;iBAAM,IAAI,EAAE,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;gBAC5B,QAAQ,GAAG,CAAC,QAAQ,CAAC;YACvB,CAAC;iBAAM,IAAI,QAAQ,EAAE,CAAC;YACtB,CAAC;iBAAM,IAAI,EAAE,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;gBAC5B,WAAW;gBACX,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;YACvC,CAAC;iBAAM,IAAI,EAAE,IAAI,IAAI,CAAC,KAAK,IAAI,EAAE,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;gBAChD,8BAA8B;gBAC9B,8DAA8D;gBAC9D,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,0BAA0B;gBAClE,IAAI,MAAM,EAAE,CAAC;oBACX,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBACxB,CAAC;qBAAM,IAAI,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;oBACnC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACtB,CAAC;qBAAM,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;oBAC1B,MAAM,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC,kBAAkB,EAAE,EAAE,CAAC,CAAC;oBAC1D,oCAAoC;oBACpC,2CAA2C;oBAC3C,6CAA6C;oBAC7C,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;oBACpD,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBACzB,CAAC;gBACD,MAAM,GAAG,EAAE,IAAI,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;gBAC3C,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,WAAW;YAC9B,CAAC;QACH,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,MAAM,CAAC,YAAY,CAAC,IAAY;QAC9B,mEAAmE;QACnE,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;YAC3B,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,kCAAkC;YAC7D,MAAM,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC;YACvD,OAAO,KAAK,CAAC;QACf,CAAC;QACD,wBAAwB;QACxB,MAAM,IAAI,KAAK,CAAC,eAAe,CAAC,CAAC;IACnC,CAAC;IACD,MAAM,CAAC,YAAY,CAAC,KAAiB;QACnC,OAAO,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACpF,CAAC;CACF"}
|
package/dist/util.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import * as net from 'node:net';
|
|
2
2
|
import * as tls from 'node:tls';
|
|
3
3
|
import * as pgwire from './pgwire.js';
|
|
4
|
+
import { DateTimeValue } from '@powersync/service-sync-rules';
|
|
4
5
|
export interface NormalizedConnectionConfig {
|
|
5
6
|
id: string;
|
|
6
7
|
tag: string;
|
|
@@ -31,6 +32,7 @@ export declare function clientTlsOptions(options: PgWireConnectionOptions): tls.
|
|
|
31
32
|
export declare function makeTlsOptions(options: PgWireConnectionOptions): false | tls.ConnectionOptions;
|
|
32
33
|
export declare function connectPgWire(config: PgWireConnectionOptions, options?: {
|
|
33
34
|
type?: 'standard' | 'replication';
|
|
35
|
+
applicationName: string;
|
|
34
36
|
}): Promise<pgwire.PgConnection>;
|
|
35
37
|
export interface PgPoolOptions {
|
|
36
38
|
/**
|
|
@@ -45,6 +47,7 @@ export interface PgPoolOptions {
|
|
|
45
47
|
* Idle timeout in ms before a connection is closed.
|
|
46
48
|
*/
|
|
47
49
|
idleTimeout?: number | undefined;
|
|
50
|
+
applicationName?: string;
|
|
48
51
|
}
|
|
49
52
|
/**
|
|
50
53
|
* Open a postgres pool.
|
|
@@ -64,7 +67,7 @@ export declare function lsnMakeComparable(text: string): string;
|
|
|
64
67
|
*
|
|
65
68
|
* We have specific exceptions for -infinity and infinity.
|
|
66
69
|
*/
|
|
67
|
-
export declare function timestamptzToSqlite(source?: string):
|
|
70
|
+
export declare function timestamptzToSqlite(source?: string): DateTimeValue | null;
|
|
68
71
|
/**
|
|
69
72
|
* For timestamp without timezone, we keep it mostly as-is.
|
|
70
73
|
*
|
|
@@ -72,7 +75,7 @@ export declare function timestamptzToSqlite(source?: string): string | null;
|
|
|
72
75
|
*
|
|
73
76
|
* https://www.postgresql.org/docs/current/datatype-datetime.html#DATATYPE-DATETIME-SPECIAL-VALUES
|
|
74
77
|
*/
|
|
75
|
-
export declare function timestampToSqlite(source?: string):
|
|
78
|
+
export declare function timestampToSqlite(source?: string): DateTimeValue | null;
|
|
76
79
|
/**
|
|
77
80
|
* For date, we keep it mostly as-is.
|
|
78
81
|
*
|
package/dist/util.js
CHANGED
|
@@ -2,6 +2,7 @@ import * as datefns from 'date-fns';
|
|
|
2
2
|
import { DEFAULT_CERTS } from './certs.js';
|
|
3
3
|
import * as pgwire from './pgwire.js';
|
|
4
4
|
import { PgType } from './pgwire_types.js';
|
|
5
|
+
import { DateTimeValue } from '@powersync/service-sync-rules';
|
|
5
6
|
export function clientTlsOptions(options) {
|
|
6
7
|
if (options.client_certificate && options.client_private_key) {
|
|
7
8
|
return {
|
|
@@ -49,7 +50,7 @@ export function makeTlsOptions(options) {
|
|
|
49
50
|
}
|
|
50
51
|
export async function connectPgWire(config, options) {
|
|
51
52
|
let connectionOptions = {
|
|
52
|
-
application_name: '
|
|
53
|
+
application_name: options?.applicationName ?? 'powersync',
|
|
53
54
|
// tlsOptions below contains the original hostname
|
|
54
55
|
hostname: config.resolved_ip ?? config.hostname,
|
|
55
56
|
port: config.port,
|
|
@@ -104,7 +105,7 @@ export function connectPgWirePool(config, options) {
|
|
|
104
105
|
const idleTimeout = options?.idleTimeout;
|
|
105
106
|
const maxSize = options?.maxSize ?? 5;
|
|
106
107
|
let connectionOptions = {
|
|
107
|
-
application_name: '
|
|
108
|
+
application_name: options?.applicationName ?? 'powersync',
|
|
108
109
|
// tlsOptions below contains the original hostname
|
|
109
110
|
hostname: config.resolved_ip ?? config.hostname,
|
|
110
111
|
port: config.port,
|
|
@@ -139,6 +140,7 @@ export function lsnMakeComparable(text) {
|
|
|
139
140
|
const [h, l] = text.split('/');
|
|
140
141
|
return h.padStart(8, '0') + '/' + l.padStart(8, '0');
|
|
141
142
|
}
|
|
143
|
+
const timeRegex = /^([\d\-]+) ([\d:]+)(\.\d+)?([+-][\d:]+)?$/;
|
|
142
144
|
/**
|
|
143
145
|
* Convert a postgres timestamptz to a SQLite-compatible/normalized timestamp.
|
|
144
146
|
*
|
|
@@ -155,13 +157,13 @@ export function timestamptzToSqlite(source) {
|
|
|
155
157
|
return null;
|
|
156
158
|
}
|
|
157
159
|
// Make compatible with SQLite
|
|
158
|
-
const match =
|
|
160
|
+
const match = timeRegex.exec(source);
|
|
159
161
|
if (match == null) {
|
|
160
162
|
if (source == 'infinity') {
|
|
161
|
-
return '9999-12-
|
|
163
|
+
return new DateTimeValue('9999-12-31T23:59:59Z');
|
|
162
164
|
}
|
|
163
165
|
else if (source == '-infinity') {
|
|
164
|
-
return '0000-01-
|
|
166
|
+
return new DateTimeValue('0000-01-01T00:00:00Z');
|
|
165
167
|
}
|
|
166
168
|
else {
|
|
167
169
|
return null;
|
|
@@ -176,8 +178,14 @@ export function timestamptzToSqlite(source) {
|
|
|
176
178
|
if (isNaN(parsed.getTime())) {
|
|
177
179
|
return null;
|
|
178
180
|
}
|
|
179
|
-
const
|
|
180
|
-
|
|
181
|
+
const baseValue = parsed.toISOString().replace('.000', '').replace('Z', '');
|
|
182
|
+
// In the new format, we always use ISO 8601. Since Postgres drops zeroes from the fractional seconds, we also pad
|
|
183
|
+
// that back to the highest theoretical precision (microseconds). This ensures that sorting returned values as text
|
|
184
|
+
// returns them in order of the time value they represent.
|
|
185
|
+
//
|
|
186
|
+
// In the old format, we keep the sub-second precision only if it's not `.000`.
|
|
187
|
+
const missingPrecision = precision?.padEnd(7, '0') ?? '.000000';
|
|
188
|
+
return new DateTimeValue(`${baseValue}${missingPrecision}Z`, `${baseValue.replace('T', ' ')}${precision ?? ''}Z`);
|
|
181
189
|
}
|
|
182
190
|
/**
|
|
183
191
|
* For timestamp without timezone, we keep it mostly as-is.
|
|
@@ -190,15 +198,21 @@ export function timestampToSqlite(source) {
|
|
|
190
198
|
if (source == null) {
|
|
191
199
|
return null;
|
|
192
200
|
}
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
+
const match = timeRegex.exec(source);
|
|
202
|
+
if (match == null) {
|
|
203
|
+
if (source == 'infinity') {
|
|
204
|
+
return new DateTimeValue('9999-12-31T23:59:59');
|
|
205
|
+
}
|
|
206
|
+
else if (source == '-infinity') {
|
|
207
|
+
return new DateTimeValue('0000-01-01T00:00:00');
|
|
208
|
+
}
|
|
209
|
+
else {
|
|
210
|
+
return null;
|
|
211
|
+
}
|
|
201
212
|
}
|
|
213
|
+
const [_, date, time, precision, __] = match;
|
|
214
|
+
const missingPrecision = precision?.padEnd(7, '0') ?? '.000000';
|
|
215
|
+
return new DateTimeValue(`${date}T${time}${missingPrecision}`, source);
|
|
202
216
|
}
|
|
203
217
|
/**
|
|
204
218
|
* For date, we keep it mostly as-is.
|
package/dist/util.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"util.js","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,UAAU,CAAC;AAGpC,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,KAAK,MAAM,MAAM,aAAa,CAAC;AACtC,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"util.js","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -5,9 +5,9 @@
|
|
|
5
5
|
"publishConfig": {
|
|
6
6
|
"access": "public"
|
|
7
7
|
},
|
|
8
|
-
"version": "0.20.
|
|
8
|
+
"version": "0.20.2",
|
|
9
9
|
"main": "dist/index.js",
|
|
10
|
-
"license": "FSL-1.1-
|
|
10
|
+
"license": "FSL-1.1-ALv2",
|
|
11
11
|
"files": [
|
|
12
12
|
"dist/**/*",
|
|
13
13
|
"ca/*.pem"
|
|
@@ -16,7 +16,8 @@
|
|
|
16
16
|
"dependencies": {
|
|
17
17
|
"date-fns": "^4.1.0",
|
|
18
18
|
"pgwire": "github:kagis/pgwire#f1cb95f9a0f42a612bb5a6b67bb2eb793fc5fc87",
|
|
19
|
-
"@powersync/service-jsonbig": "^0.17.
|
|
19
|
+
"@powersync/service-jsonbig": "^0.17.11",
|
|
20
|
+
"@powersync/service-sync-rules": "^0.29.0"
|
|
20
21
|
},
|
|
21
22
|
"scripts": {
|
|
22
23
|
"clean": "rm -r ./dist && tsc -b --clean",
|