prostgles-types 4.0.275 → 4.0.277

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,3 +1,4 @@
1
+ import type { DBHandler } from "lib";
1
2
  import type { JSONB } from "./JSONBSchema";
2
3
  type ValidationOptions = {
3
4
  allowExtraProperties?: boolean;
@@ -17,6 +18,19 @@ export declare const getJSONBSchemaValidationError: <S extends JSONB.FieldType>(
17
18
  error?: undefined;
18
19
  data: JSONB.GetType<S>;
19
20
  };
21
+ /**
22
+ * Validates lookup values as well as the synchronous JSONB schema rules.
23
+ * A prostgles DB handler validates every lookup kind. A fetch-row callback
24
+ * validates RowLookup and ValueLookup records, while table/column lookups are
25
+ * structurally validated.
26
+ */
27
+ export declare const getJSONBSchemaValidationErrorAsync: <S extends JSONB.FieldType>(schema: S, obj: any, source: DBHandler, opts?: ValidationOptions) => Promise<{
28
+ error: string;
29
+ data?: undefined;
30
+ } | {
31
+ error?: undefined;
32
+ data: JSONB.GetType<S>;
33
+ }>;
20
34
  export declare const validateJSONBObjectAgainstSchema: <S extends JSONB.ObjectType["type"]>(schema: S, obj: any, objName: string, optional?: boolean) => obj is JSONB.GetObjectType<S>;
21
35
  export declare const assertJSONBObjectAgainstSchema: <S extends JSONB.ObjectType["type"]>(schema: S, obj: any, objName: string, optional?: boolean) => asserts obj is JSONB.GetObjectType<S>;
22
36
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"JSONBSchemaValidation.d.ts","sourceRoot":"","sources":["../../lib/JSONBSchemaValidation/JSONBSchemaValidation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAoB,MAAM,eAAe,CAAC;AAK7D,KAAK,iBAAiB,GAAG;IACvB,oBAAoB,CAAC,EAAE,OAAO,CAAC;CAChC,CAAC;AAEF,eAAO,MAAM,eAAe,GAAI,cAAc,KAAK,CAAC,SAAS,KAAG,KAAK,CAAC,YAIrE,CAAC;AA+TF,eAAO,MAAM,mCAAmC,GAAI,CAAC,SAAS,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,EACpF,QAAQ,CAAC,EACT,KAAK,GAAG,EACR,gBAAiB,EACjB,kBAAgB,EAChB,OAAO,iBAAiB,KACvB;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,SAAS,CAAA;CAAE,GAAG;IAAE,KAAK,CAAC,EAAE,SAAS,CAAC;IAAC,IAAI,EAAE,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,CAAA;CAUzF,CAAC;AAEF,eAAO,MAAM,6BAA6B,GAAI,CAAC,SAAS,KAAK,CAAC,SAAS,EACrE,QAAQ,CAAC,EACT,KAAK,GAAG,EACR,OAAO,iBAAiB,KACvB;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,SAAS,CAAA;CAAE,GAAG;IAAE,KAAK,CAAC,EAAE,SAAS,CAAC;IAAC,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;CAMnF,CAAC;AACF,eAAO,MAAM,gCAAgC,GAAI,CAAC,SAAS,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,EACjF,QAAQ,CAAC,EACT,KAAK,GAAG,EACR,SAAS,MAAM,EACf,kBAAgB,KACf,GAAG,IAAI,KAAK,CAAC,aAAa,CAAC,CAAC,CAG9B,CAAC;AACF,eAAO,MAAM,8BAA8B,GAAI,CAAC,SAAS,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,EAC/E,QAAQ,CAAC,EACT,KAAK,GAAG,EACR,SAAS,MAAM,EACf,kBAAgB,KACf,QAAQ,GAAG,IAAI,KAAK,CAAC,aAAa,CAAC,CAAC,CAKtC,CAAC"}
1
+ {"version":3,"file":"JSONBSchemaValidation.d.ts","sourceRoot":"","sources":["../../lib/JSONBSchemaValidation/JSONBSchemaValidation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,KAAK,CAAC;AAGrC,OAAO,KAAK,EAAE,KAAK,EAAoB,MAAM,eAAe,CAAC;AAG7D,KAAK,iBAAiB,GAAG;IACvB,oBAAoB,CAAC,EAAE,OAAO,CAAC;CAChC,CAAC;AAQF,eAAO,MAAM,eAAe,GAAI,cAAc,KAAK,CAAC,SAAS,KAAG,KAAK,CAAC,YAIrE,CAAC;AAyWF,eAAO,MAAM,mCAAmC,GAAI,CAAC,SAAS,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,EACpF,QAAQ,CAAC,EACT,KAAK,GAAG,EACR,gBAAiB,EACjB,kBAAgB,EAChB,OAAO,iBAAiB,KACvB;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,SAAS,CAAA;CAAE,GAAG;IAAE,KAAK,CAAC,EAAE,SAAS,CAAC;IAAC,IAAI,EAAE,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,CAAA;CAUzF,CAAC;AAEF,eAAO,MAAM,6BAA6B,GAAI,CAAC,SAAS,KAAK,CAAC,SAAS,EACrE,QAAQ,CAAC,EACT,KAAK,GAAG,EACR,OAAO,iBAAiB,KACvB;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,SAAS,CAAA;CAAE,GAAG;IAAE,KAAK,CAAC,EAAE,SAAS,CAAC;IAAC,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;CAMnF,CAAC;AA+EF;;;;;GAKG;AACH,eAAO,MAAM,kCAAkC,GAAU,CAAC,SAAS,KAAK,CAAC,SAAS,EAChF,QAAQ,CAAC,EACT,KAAK,GAAG,EACR,QAAQ,SAAS,EACjB,OAAO,iBAAiB,KACvB,OAAO,CAAC;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,SAAS,CAAA;CAAE,GAAG;IAAE,KAAK,CAAC,EAAE,SAAS,CAAC;IAAC,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;CAAE,CAU7F,CAAC;AAEF,eAAO,MAAM,gCAAgC,GAAI,CAAC,SAAS,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,EACjF,QAAQ,CAAC,EACT,KAAK,GAAG,EACR,SAAS,MAAM,EACf,kBAAgB,KACf,GAAG,IAAI,KAAK,CAAC,aAAa,CAAC,CAAC,CAG9B,CAAC;AACF,eAAO,MAAM,8BAA8B,GAAI,CAAC,SAAS,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,EAC/E,QAAQ,CAAC,EACT,KAAK,GAAG,EACR,SAAS,MAAM,EACf,kBAAgB,KACf,QAAQ,GAAG,IAAI,KAAK,CAAC,aAAa,CAAC,CAAC,CAKtC,CAAC"}
@@ -1,9 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.assertJSONBObjectAgainstSchema = exports.validateJSONBObjectAgainstSchema = exports.getJSONBSchemaValidationError = exports.getJSONBObjectSchemaValidationError = exports.getFieldTypeObj = void 0;
3
+ exports.assertJSONBObjectAgainstSchema = exports.validateJSONBObjectAgainstSchema = exports.getJSONBSchemaValidationErrorAsync = exports.getJSONBSchemaValidationError = exports.getJSONBObjectSchemaValidationError = exports.getFieldTypeObj = void 0;
4
4
  const util_1 = require("../util");
5
- const utils_1 = require("./utils");
6
5
  const includes_1 = require("../utilFuncs/includes");
6
+ const utils_1 = require("./utils");
7
7
  const getFieldTypeObj = (rawFieldType) => {
8
8
  if (typeof rawFieldType === "string")
9
9
  return { type: rawFieldType };
@@ -71,7 +71,7 @@ const getValidator = (type, fieldType) => {
71
71
  }
72
72
  return { isArray: false, validator };
73
73
  };
74
- const getPropertyValidationError = (value, rawFieldType, path = [], opts) => {
74
+ const getPropertyValidationError = (value, rawFieldType, path = [], opts, pendingLookupValidations) => {
75
75
  const err = `${path.join(".")} is of invalid type. Expecting ${getTypeDescription(rawFieldType).replaceAll("\n", "")}`;
76
76
  const fieldDefinition = (0, exports.getFieldTypeObj)(rawFieldType);
77
77
  const { type, allowedValues, nullable, optional } = fieldDefinition;
@@ -106,7 +106,7 @@ const getPropertyValidationError = (value, rawFieldType, path = [], opts) => {
106
106
  if (!propIsOptional && !(0, utils_1.safeHasOwn)(value, subKey)) {
107
107
  return `${[...path, subKey].join(".")} is missing but required`;
108
108
  }
109
- const error = getPropertyValidationError((0, utils_1.safeGetProperty)(value, subKey), subSchema, [...path, subKey], opts);
109
+ const error = getPropertyValidationError((0, utils_1.safeGetProperty)(value, subKey), subSchema, [...path, subKey], opts, pendingLookupValidations);
110
110
  if (error !== undefined) {
111
111
  return error;
112
112
  }
@@ -123,7 +123,35 @@ const getPropertyValidationError = (value, rawFieldType, path = [], opts) => {
123
123
  return;
124
124
  }
125
125
  if (type.includes("Lookup")) {
126
- throw new Error("Lookup types are not supported for validation");
126
+ if (!pendingLookupValidations) {
127
+ throw new Error("Lookup types are not supported for validation");
128
+ }
129
+ const isArray = type.endsWith("[]");
130
+ if (isArray !== Array.isArray(value))
131
+ return err;
132
+ const lookupType = type.replace("[]", "");
133
+ const values = isArray ? value : [value];
134
+ const isValid = values.every((item) => {
135
+ if (lookupType === "RowLookup")
136
+ return (0, util_1.isObject)(item);
137
+ if (lookupType === "ValueLookup") {
138
+ return typeof item !== "function" && typeof item !== "symbol";
139
+ }
140
+ if (lookupType === "TableLookup")
141
+ return typeof item === "string";
142
+ return ((0, util_1.isObject)(item) &&
143
+ typeof (0, utils_1.safeGetProperty)(item, "table") === "string" &&
144
+ typeof (0, utils_1.safeGetProperty)(item, "column") === "string" &&
145
+ (0, utils_1.safeGetKeys)(item).every((key) => key === "table" || key === "column"));
146
+ });
147
+ if (!isValid)
148
+ return err;
149
+ pendingLookupValidations.push({
150
+ schema: fieldDefinition,
151
+ value,
152
+ path,
153
+ });
154
+ return;
127
155
  }
128
156
  const { validator } = getValidator(type, fieldDefinition);
129
157
  const isValid = validator(value, fieldDefinition);
@@ -142,7 +170,7 @@ const getPropertyValidationError = (value, rawFieldType, path = [], opts) => {
142
170
  return `${tuplePath} is of invalid tuple length. Expecting ${tuple.length} elements but got ${value.length}`;
143
171
  }
144
172
  for (let index = 0; index < tuple.length; index++) {
145
- const elementError = getPropertyValidationError(value[index], tuple[index], [...path, `${index}`], opts);
173
+ const elementError = getPropertyValidationError(value[index], tuple[index], [...path, `${index}`], opts, pendingLookupValidations);
146
174
  if (elementError !== undefined) {
147
175
  return elementError;
148
176
  }
@@ -168,7 +196,7 @@ const getPropertyValidationError = (value, rawFieldType, path = [], opts) => {
168
196
  }
169
197
  const error = value
170
198
  .map((element, i) => {
171
- return getPropertyValidationError(element, arrayOf, [...path, `${i}`], opts);
199
+ return getPropertyValidationError(element, arrayOf, [...path, `${i}`], opts, pendingLookupValidations);
172
200
  })
173
201
  .filter(util_1.isDefined)[0];
174
202
  if (error !== undefined) {
@@ -183,7 +211,11 @@ const getPropertyValidationError = (value, rawFieldType, path = [], opts) => {
183
211
  }
184
212
  let firstError;
185
213
  const validMember = oneOf.find((member) => {
186
- const error = getPropertyValidationError(value, member, path, opts);
214
+ const pendingLookupCount = pendingLookupValidations?.length;
215
+ const error = getPropertyValidationError(value, member, path, opts, pendingLookupValidations);
216
+ if (error !== undefined && pendingLookupCount !== undefined) {
217
+ pendingLookupValidations.length = pendingLookupCount;
218
+ }
187
219
  firstError ?? (firstError = error);
188
220
  return error === undefined;
189
221
  });
@@ -212,7 +244,7 @@ const getPropertyValidationError = (value, rawFieldType, path = [], opts) => {
212
244
  if (valuesSchema) {
213
245
  for (const propKey of (0, utils_1.safeGetKeys)(value)) {
214
246
  const propValue = (0, utils_1.safeGetProperty)(value, propKey);
215
- const valError = getPropertyValidationError(propValue, valuesSchema, [...path, propKey], opts);
247
+ const valError = getPropertyValidationError(propValue, valuesSchema, [...path, propKey], opts, pendingLookupValidations);
216
248
  if (valError !== undefined) {
217
249
  return `${valError}`;
218
250
  }
@@ -295,6 +327,83 @@ const getJSONBSchemaValidationError = (schema, obj, opts) => {
295
327
  return { data: obj };
296
328
  };
297
329
  exports.getJSONBSchemaValidationError = getJSONBSchemaValidationError;
330
+ const getLookupValuePath = (path, index) => {
331
+ const result = [...path, ...(index === undefined ? [] : [String(index)])].join(".");
332
+ return result || "value";
333
+ };
334
+ const getLookupTableHandler = (db, table) => {
335
+ if (!(0, utils_1.safeHasOwn)(db, table))
336
+ return;
337
+ const handler = (0, utils_1.safeGetProperty)(db, table);
338
+ return (0, util_1.isObject)(handler) ? handler : undefined;
339
+ };
340
+ const getLookupValidationError = async (lookup, db) => {
341
+ const { schema, path } = lookup;
342
+ const isArray = schema.type.endsWith("[]");
343
+ const values = isArray ? lookup.value : [lookup.value];
344
+ for (const [index, value] of values.entries()) {
345
+ const valuePath = getLookupValuePath(path, isArray ? index : undefined);
346
+ if (schema.type === "TableLookup" || schema.type === "TableLookup[]") {
347
+ if (!getLookupTableHandler(db, value)) {
348
+ return `${valuePath} references an unknown table ${JSON.stringify(value)}`;
349
+ }
350
+ continue;
351
+ }
352
+ if (schema.type === "ColumnLookup" || schema.type === "ColumnLookup[]") {
353
+ const reference = value;
354
+ if (schema.filter?.table && reference.table !== schema.filter.table) {
355
+ return `${valuePath} references a column that does not match the lookup filter`;
356
+ }
357
+ const tableHandler = getLookupTableHandler(db, reference.table);
358
+ if (!tableHandler) {
359
+ return `${valuePath} references an unknown table ${JSON.stringify(reference.table)}`;
360
+ }
361
+ if (typeof tableHandler.getColumns !== "function") {
362
+ throw new Error(`Cannot validate ColumnLookup: table ${JSON.stringify(reference.table)} does not expose getColumns`);
363
+ }
364
+ const columns = await tableHandler.getColumns();
365
+ const column = columns.find(({ name }) => name === reference.column);
366
+ if (!column ||
367
+ (schema.filter?.tsDataType && column.tsDataType !== schema.filter.tsDataType) ||
368
+ (schema.filter?.udt_name && column.udt_name !== schema.filter.udt_name)) {
369
+ return `${valuePath} references an unknown or disallowed column ${JSON.stringify(`${reference.table}.${reference.column}`)}`;
370
+ }
371
+ continue;
372
+ }
373
+ const dataLookup = schema;
374
+ const tableHandler = getLookupTableHandler(db, dataLookup.table);
375
+ if (!tableHandler) {
376
+ throw new Error(`Cannot validate ${dataLookup.type}: table ${JSON.stringify(dataLookup.table)} does not expose findOne`);
377
+ }
378
+ const valueFilter = dataLookup.type === "RowLookup" || dataLookup.type === "RowLookup[]" ?
379
+ value
380
+ : { [dataLookup.column]: value };
381
+ const filter = dataLookup.filter ? { $and: [dataLookup.filter, valueFilter] } : valueFilter;
382
+ const row = await tableHandler?.findOne?.(filter);
383
+ if (row === undefined) {
384
+ return `${valuePath} does not reference an existing row in ${JSON.stringify(dataLookup.table)}`;
385
+ }
386
+ }
387
+ };
388
+ /**
389
+ * Validates lookup values as well as the synchronous JSONB schema rules.
390
+ * A prostgles DB handler validates every lookup kind. A fetch-row callback
391
+ * validates RowLookup and ValueLookup records, while table/column lookups are
392
+ * structurally validated.
393
+ */
394
+ const getJSONBSchemaValidationErrorAsync = async (schema, obj, source, opts) => {
395
+ const pendingLookupValidations = [];
396
+ const error = getPropertyValidationError(obj, schema, undefined, opts, pendingLookupValidations);
397
+ if (error)
398
+ return { error };
399
+ for (const lookup of pendingLookupValidations) {
400
+ const lookupError = await getLookupValidationError(lookup, source);
401
+ if (lookupError)
402
+ return { error: lookupError };
403
+ }
404
+ return { data: obj };
405
+ };
406
+ exports.getJSONBSchemaValidationErrorAsync = getJSONBSchemaValidationErrorAsync;
298
407
  const validateJSONBObjectAgainstSchema = (schema, obj, objName, optional = false) => {
299
408
  const { error } = (0, exports.getJSONBObjectSchemaValidationError)(schema, obj, objName, optional);
300
409
  return error === undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"JSONBSchemaValidation.js","sourceRoot":"","sources":["../../lib/JSONBSchemaValidation/JSONBSchemaValidation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"JSONBSchemaValidation.js","sourceRoot":"","sources":["../../lib/JSONBSchemaValidation/JSONBSchemaValidation.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -18,7 +18,7 @@ export type PG_COLUMN_UDT_DATA_TYPE = (typeof _PG_strings)[number] | (typeof _PG
18
18
  export declare const TS_PG_Types: {
19
19
  readonly "number[]": ("_int2" | "_int4" | "_float4" | "_float8" | "_oid")[];
20
20
  readonly "boolean[]": "_bool"[];
21
- readonly "string[]": ("_text" | "_name" | "_time" | "_timestamp" | "_path" | "_bpchar" | "_char" | "_varchar" | "_citext" | "_uuid" | "_timetz" | "_interval" | "_cidr" | "_inet" | "_macaddr" | "_macaddr8" | "_int4range" | "_int8range" | "_numrange" | "_tsvector" | "_int8" | "_numeric" | "_money" | "_point" | "_line" | "_lseg" | "_box" | "_polygon" | "_circle" | "_date" | "_timestamptz" | "_geometry" | "_geography")[];
21
+ readonly "string[]": ("_text" | "_name" | "_time" | "_timestamp" | "_path" | "_bpchar" | "_char" | "_varchar" | "_citext" | "_uuid" | "_timetz" | "_interval" | "_cidr" | "_inet" | "_macaddr" | "_macaddr8" | "_int4range" | "_int8range" | "_numrange" | "_tsvector" | "_int8" | "_numeric" | "_money" | "_date" | "_timestamptz" | "_point" | "_line" | "_lseg" | "_box" | "_polygon" | "_circle" | "_geometry" | "_geography")[];
22
22
  readonly "any[]": ("_interval" | "_jsonb" | "_json")[];
23
23
  readonly Uint8Array: readonly ["bytea"];
24
24
  readonly string: readonly ["bpchar", "char", "varchar", "text", "citext", "uuid", "time", "timetz", "interval", "name", "cidr", "inet", "macaddr", "macaddr8", "int4range", "int8range", "numrange", "tsvector", "int8", "numeric", "money", "date", "timestamp", "timestamptz", "point", "line", "lseg", "box", "path", "polygon", "circle", "geometry", "geography", "lseg"];
@@ -282,7 +282,7 @@ export type TableInfo<CustomMetadata = Record<string, unknown>> = {
282
282
  delete?: {};
283
283
  };
284
284
  } & CustomMetadata;
285
- export declare const getAllowedTableMethods: ({ publishInfo }: Pick<TableInfo, "publishInfo">) => ("insert" | "update" | "delete" | "find" | "sync" | "getColumns" | "getInfo" | "insertMany" | "upsert" | "updateBatch" | "findOne" | "count" | "size" | "subscribe" | "subscribeOne" | "remove")[];
285
+ export declare const getAllowedTableMethods: ({ publishInfo }: Pick<TableInfo, "publishInfo">) => ("insert" | "update" | "delete" | "find" | "getInfo" | "getColumns" | "findOne" | "subscribe" | "subscribeOne" | "count" | "size" | "updateBatch" | "insertMany" | "upsert" | "sync" | "remove")[];
286
286
  export type RequiredNestedInsert = {
287
287
  ftable: string;
288
288
  minRows?: number;
package/dist/index_umd.js CHANGED
@@ -1 +1 @@
1
- !function(e,t){if("object"==typeof exports&&"object"==typeof module)module.exports=t();else if("function"==typeof define&&define.amd)define([],t);else{var n=t();for(var r in n)("object"==typeof exports?exports:e)[r]=n[r]}}(Object(this||window),()=>(()=>{"use strict";var e={994(e,t,n){Object.defineProperty(t,"__esModule",{value:!0}),t.DATA_TYPES=t.PrimitiveArrayTypes=t.PrimitiveTypes=t.PrimitiveTypesObj=void 0;const r=n(472);t.PrimitiveTypesObj={boolean:1,number:1,integer:1,string:1,Date:1,time:1,timestamp:1,Uint8Array:1,Blob:1,FileLike:1,any:1,unknown:1},t.PrimitiveTypes=(0,r.getKeys)(t.PrimitiveTypesObj),t.PrimitiveArrayTypes=t.PrimitiveTypes.map(e=>`${e}[]`),t.DATA_TYPES=[...t.PrimitiveTypes,...t.PrimitiveArrayTypes]},897(e,t,n){Object.defineProperty(t,"__esModule",{value:!0}),t.assertJSONBObjectAgainstSchema=t.validateJSONBObjectAgainstSchema=t.getJSONBSchemaValidationError=t.getJSONBObjectSchemaValidationError=t.getFieldTypeObj=void 0;const r=n(472),i=n(704),o=n(441);t.getFieldTypeObj=e=>"string"==typeof e?{type:e}:e;const s=e=>e instanceof Blob||"undefined"!=typeof Buffer&&e instanceof Buffer||"undefined"!=typeof ArrayBuffer&&e instanceof ArrayBuffer,a={string:e=>"string"==typeof e,number:e=>"number"==typeof e&&Number.isFinite(e),integer:e=>"number"==typeof e&&Number.isInteger(e),boolean:e=>"boolean"==typeof e,time:e=>"string"==typeof e,timestamp:e=>"string"==typeof e,any:e=>"function"!=typeof e&&"symbol"!=typeof e,unknown:e=>"function"!=typeof e&&"symbol"!=typeof e,Date:e=>"string"==typeof e,Uint8Array:s,Blob:s,FileLike:(e,t)=>{if("FileLike"!==t.type)throw new Error("FileLike type must have type 'FileLike'");const n=(0,r.isObject)(e)&&"string"==typeof e.name&&"string"==typeof e.type&&s(e.data);if(n&&t.mimeTypes&&!Object.keys(t.mimeTypes).some(t=>e.type===t))throw new Error(`Invalid FileLike type. Expected one of: ${Object.keys(t.mimeTypes).join(", ")}`);return n}},l=(0,r.getKeys)(a),c=(e,n,s=[],p)=>{const f=`${s.join(".")} is of invalid type. Expecting ${u(n).replaceAll("\n","")}`,d=(0,t.getFieldTypeObj)(n),{type:y,allowedValues:m,nullable:g,optional:h}=d;if(g&&null===e)return;if(h&&void 0===e)return;if(m){if("string"!=typeof y)throw new Error("allowedValues is only supported for primitive types");const t=y.endsWith("[]"),n=t&&Array.isArray(e)?e:[e],i=m.map(e=>(0,r.isObject)(e)?e.value:e);for(const[e,r]of n.entries())if(!i.includes(r))return`${t?`${s.join(".")}[${e}]`:s.join(".")} is of invalid type. Expecting ${i.map(e=>"string"==typeof e?JSON.stringify(e):String(e)).join(" | ")} But got ${JSON.stringify(r)}`}if(y){if((0,r.isObject)(y)){if(!(0,r.isObject)(e))return f;for(const t of(0,i.safeGetKeys)(y)){const n=(0,i.safeGetProperty)(y,t);if(!((0,r.isObject)(n)&&n.optional||(0,i.safeHasOwn)(e,t)))return`${[...s,t].join(".")} is missing but required`;const o=c((0,i.safeGetProperty)(e,t),n,[...s,t],p);if(void 0!==o)return o}if(!p?.allowExtraProperties){const t=(0,i.safeGetKeys)(e),n=(0,i.safeGetKeys)(y),r=t.filter(e=>!n.includes(e));if(r.length)return`${s.join(".")} has extra properties: ${r.join(", ")}`}return}if(y.includes("Lookup"))throw new Error("Lookup types are not supported for validation");const{validator:t}=((e,t)=>{const n=(e=>{if("string"==typeof e&&e.endsWith("[]")){const t=e.slice(0,-2);if(!(0,o.includes)(l,t))throw new Error(`Invalid array field type ${e}`);return t}})(e);if(n){const e=a[n];return{isArray:!0,validator:n=>Array.isArray(n)&&n.every(n=>e(n,t))}}const r=a[e];if(!r)throw new Error(`Unknown field type ${e}`);return{isArray:!1,validator:r}})(y,d);return t(e,d)?void 0:f}if(d.tuple){const t=d.tuple;if(!Array.isArray(e))return f+`[${t.map(e=>u(e)).join(", ")}]`;if(e.length!==t.length)return`${s.length?s.join("."):"value"} is of invalid tuple length. Expecting ${t.length} elements but got ${e.length}`;for(let n=0;n<t.length;n++){const r=c(e[n],t[n],[...s,`${n}`],p);if(void 0!==r)return r}return}if(d.enum){const t=[];return d.nullable&&t.push(null),d.optional&&t.push(void 0),d.enum.includes(e)?void 0:f}const b=d.arrayOf??(d.arrayOfType?{type:d.arrayOfType}:void 0);if(b){if(!Array.isArray(e))return f+" an array";const t=e.map((e,t)=>c(e,b,[...s,`${t}`],p)).filter(r.isDefined)[0];return void 0!==t?`${f}. Error at index ${s.length>0?s.join(".")+".":""}\n\n${t}`:void 0}const O=d.oneOf??d.oneOfType?.map(e=>({type:e}));if(O){if(!O.length)return f+"to not be empty";let t;if(O.find(n=>{const r=c(e,n,s,p);return t??(t=r),void 0===r}))return;return f}if(d.record){const{keysEnum:t,partial:n,values:o}=d.record;if(!(0,r.isObject)(e))return f+"object";if(n&&(0,r.isEmpty)(e))return;const a=(0,r.getKeys)(e),l=n?void 0:t?.find(e=>!a.includes(e));if(void 0!==l)return`${f} to have key ${l}`;const u=t&&a.filter(e=>!t.includes(e));if(u?.length)return`${f} has extra keys: ${u}`;if(o)for(const t of(0,i.safeGetKeys)(e)){const n=(0,i.safeGetProperty)(e,t),r=c(n,o,[...s,t],p);if(void 0!==r)return`${r}`}return}return`Could not validate field type. Some logic might be missing: ${JSON.stringify(d)}`},u=e=>{const n=(0,t.getFieldTypeObj)(e),{type:i,nullable:o,optional:s,record:a}=n,l=n.oneOf??n.oneOfType?.map(e=>({type:e})),c=[];if(o&&c.push("null"),s&&c.push("undefined"),"string"==typeof i)c.push(i);else if(i&&(0,r.isObject)(i)){const e=[];Object.entries(i).forEach(([t,n])=>{e.push(`${t}: ${u(n)}`)}),c.push(`{ ${e.join("; ")} }`)}if(n.enum?.forEach(e=>{null===e?c.push("null"):void 0===e?c.push("undefined"):"string"==typeof e?c.push(JSON.stringify(e)):c.push(e)}),l?.forEach(e=>{const t=u(e);c.push(t)}),a){const{keysEnum:e,partial:t,values:n}=a,r=t?"?":"",i=n?u(n):"any";e?c.push(`{ [${e.join(" | ")}]${r}: ${i} }`):c.push(`{ [key: string]${r}: ${i} }`)}return c.join(" | ")};t.getJSONBObjectSchemaValidationError=(e,t,n="input",i=!1,o)=>{if(void 0===t&&!i)return{error:`Expecting ${n} to be defined`};if(!(0,r.isObject)(t))return{error:`Expecting ${n} to be an object`};const s=c(t,{type:e},[],o);return s?{error:s}:{data:t}},t.getJSONBSchemaValidationError=(e,t,n)=>{const r=c(t,e,void 0,n);return r?{error:r}:{data:t}},t.validateJSONBObjectAgainstSchema=(e,n,r,i=!1)=>{const{error:o}=(0,t.getJSONBObjectSchemaValidationError)(e,n,r,i);return void 0===o},t.assertJSONBObjectAgainstSchema=(e,n,r,i=!1)=>{const{error:o}=(0,t.getJSONBObjectSchemaValidationError)(e,n,r,i);if(o)throw new Error(o)}},699(e,t,n){Object.defineProperty(t,"__esModule",{value:!0}),t.getJSONSchemaObject=void 0,t.getJSONBSchemaAsJSONSchema=function(e,n,r){return(0,t.getJSONSchemaObject)(r,{id:`${e}.${n}`})};const r=n(472),i=n(704),o=e=>{if(!e)return;const t=e.endsWith("[]")?e.slice(0,-2):e;return{type:"integer"===t?"integer":"boolean"===t?"boolean":"number"===t?"number":"any"===t||"unknown"===t||t.endsWith("Lookup")||"Uint8Array"===t||"Blob"===t||"FileLike"===t?void 0:"string",isArray:e.endsWith("[]")}};t.getJSONSchemaObject=(e,n)=>{const{type:s,arrayOf:a,arrayOfType:l,description:c,nullable:u,oneOf:p,oneOfType:f,title:d,record:y,tuple:m,...g}="string"==typeof e?{type:e}:e;let h={};const b={...(g.enum||g.allowedValues?.length&&("string"!=typeof s||!s.endsWith("[]")))&&{enum:g.allowedValues?.slice(0)??g.enum.slice(0)},...!!c&&{description:c},...!!d&&{title:d}};if(g.enum?.length){const e=typeof g.enum[0];b.type="number"===e?"number":"boolean"===e?"boolean":"string"}if("string"==typeof s||a||l){if(s&&"string"!=typeof s)throw"Not expected";h=a||l||s?.endsWith("[]")?{type:"array",items:a||l?(0,t.getJSONSchemaObject)(a||{type:l}):s?.startsWith("any")?{type:void 0}:{type:o(s)?.type,...g.allowedValues&&{enum:g.allowedValues.slice(0)}}}:{type:o(s)?.type}}else if((0,r.isObject)(s))h={type:"object",required:(0,i.safeGetKeys)(s).filter(e=>{const t=s[e];return"string"==typeof t||!t.optional}),properties:(0,r.getObjectEntries)(s).reduce((e,[n,r])=>({...e,[n]:(0,t.getJSONSchemaObject)(r)}),{})};else if(m)h={type:"array",items:m.map(e=>(0,t.getJSONSchemaObject)(e)),additionalItems:!1,minItems:m.length,maxItems:m.length};else if(p||f){const e=p||f.map(e=>({type:e}));h={oneOf:e.map(e=>(0,t.getJSONSchemaObject)(e))}}else y&&(h={type:"object",...y.values&&!y.keysEnum&&{additionalProperties:(0,t.getJSONSchemaObject)(y.values)},...y.keysEnum&&{properties:y.keysEnum.reduce((e,n)=>({...e,[n]:y.values?(0,t.getJSONSchemaObject)(y.values):{type:{}}}),{})}});if(u){const e={type:"null"};h.oneOf?h.oneOf.push(e):h.enum&&!h.enum.includes(null)?h.enum.push(null):h={oneOf:[h,e]}}return{...n?{$id:n?.id,$schema:"https://json-schema.org/draft/2020-12/schema"}:void 0,...b,...h}}},394(e,t,n){Object.defineProperty(t,"__esModule",{value:!0}),t.getJSONBTSTypes=void 0,t.getJSONBSchemaTSTypes=function(e,n,r="",i){return(0,t.getJSONBTSTypes)(i,{...e,nullable:n.nullable},void 0,r)};const r=n(806),i=n(897),o=e=>null===e?"null":void 0===e?"undefined":"string"==typeof e?JSON.stringify(e):String(e);t.getJSONBTSTypes=(e,n,a=!1,l="",c=0)=>{const u=(0,i.getFieldTypeObj)(n),p=u.nullable?"null | ":"";if("string"==typeof u.type&&u.type.includes("Lookup"))return((e,t)=>{const n=t.nullable?"null | ":"",i=t.type.endsWith("[]")?"[]":"";if("TableLookup"===t.type||"TableLookup[]"===t.type)return`${n}string${i}`;if("ColumnLookup"===t.type||"ColumnLookup[]"===t.type)return`${n}{ "table": string; "column": string; }${i}`;const o=t,s=e.find(e=>e.name===o.table)?.columns;if("ValueLookup"===t.type||"ValueLookup[]"===t.type){const e=t,o=s?.find(t=>t.name===e.column)?.udt_name;return`${n}${(0,r.postgresToTsType)(o??"text")}${i}`}return`${n}${s?`{ ${s.map(e=>`${JSON.stringify(e.name)}: ${e.is_nullable?"null | ":""} ${(0,r.postgresToTsType)(e.udt_name)}; `).join(" ")} }`:"any"}${i}`})(e,u);if("string"==typeof u.type){const e=u.type.replace("integer","number").replace("time","string").replace("timestamp","string").replace("FileLike","{ name: string; type: string; data: Blob; }").replace("Date","string");if(u.allowedValues){const e=u.type.endsWith("[]")?"[]":"";return p+` (${u.allowedValues.map(e=>JSON.stringify((0,r.isObject)(e)?e.value:e)).join(" | ")})${e}`}return p+e}if((0,r.isObject)(u.type)){const n=e=>e.trim().endsWith(";")?e:e.trim()+";",{type:o}=u,l=a?" ":" ";let f=` {${l}`+(0,r.getObjectEntries)(o).map(([r,o])=>{const a=(0,i.getFieldTypeObj)(o),u=s(r)?r:JSON.stringify(r);return`${l}${u}${a.optional?"?":""}: `+n((0,t.getJSONBTSTypes)(e,a,!0,void 0,c+1))}).join(" ")+`${l}}`;return a||(f=n(f)),a&&(f=f.split("\n").join("")),p+f}if(u.enum)return p+u.enum.map(e=>o(e)).join(" | ");if(u.tuple)return`${p}[${u.tuple.map(n=>(0,t.getJSONBTSTypes)(e,n,!0,void 0,c+1)).join(", ")}]`;if(u.oneOf||u.oneOfType){const n=u.oneOf||u.oneOfType.map(e=>({type:e}));return(u.nullable?`\n${l} | null`:"")+n.map(n=>`\n${l} | `+(0,t.getJSONBTSTypes)(e,n,!0,void 0,c+1)).join("")}if(u.arrayOf||u.arrayOfType){const n=u.arrayOf||{type:u.arrayOfType};return`${u.nullable?"null | ":""} ( ${(0,t.getJSONBTSTypes)(e,n,!0,void 0,c+1)} )[]`}if(u.record){const{keysEnum:n,values:r,partial:i}=u.record,s=e=>i?`Partial<Record<${e}>>`:`Record<${e}>`;return`${u.nullable?"null |":""} ${s(`${n?.map(e=>o(e)).join(" | ")??"string"}, ${r?(0,t.getJSONBTSTypes)(e,r,!0,void 0,c+1):"any"}`)}`}throw"Unexpected getSchemaTSTypes: "+JSON.stringify({fieldType:u},null,2)};const s=e=>/^[A-Za-z$_][A-Za-z0-9$_]*$/.test(e)},704(e,t){t.safeGetKeys=t.safeGetProperty=t.safeHasOwn=void 0;const n=["__proto__","constructor","prototype"];t.safeHasOwn=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),t.safeGetProperty=(e,t)=>{if(n.includes(t)){const n=Object.getOwnPropertyDescriptor(e,t);return n?.value}return e[t]},t.safeGetKeys=e=>{const r=Object.keys(e);for(const i of n)(0,t.safeHasOwn)(e,i)&&!r.includes(i)&&r.push(i);return r}},502(e,t,n){Object.defineProperty(t,"__esModule",{value:!0}),t.WAL=void 0;const r=n(806);t.WAL=class{constructor(e){if(this.changed={},this.sending={},this.sentHistory={},this.callbacks=[],this.sort=(e,t)=>{const{orderBy:n}=this.options;return n&&e&&t&&n.map(n=>{if(!(n.fieldName in e)||!(n.fieldName in t))throw"Replication error: \n some orderBy fields missing from data";let r=n.asc?e[n.fieldName]:t[n.fieldName],i=n.asc?t[n.fieldName]:e[n.fieldName],o=+r-+i,s=r<i?-1:r==i?0:1;return"number"===n.tsDataType&&Number.isFinite(o)?o:s}).find(e=>e)||0},this.isInHistory=e=>{if(!e)throw"Provide item";const t=e[this.options.synced_field];if(!Number.isFinite(+t))throw"Provided item Synced field value is missing/invalid ";const n=this.sentHistory[this.getIdStr(e)],r=n?.[this.options.synced_field];if(n){if(!Number.isFinite(+r))throw"Provided historic item Synced field value is missing/invalid";if(+r===+t)return!0}return!1},this.addData=e=>((0,r.isEmpty)(this.changed)&&this.options.onSendStart&&this.options.onSendStart(),e.forEach(e=>{var t;const{initial:n,current:r,delta:i}={...e};if(!r)throw"Expecting { current: object, initial?: object }";const o=this.getIdStr(r);this.changed??(this.changed={}),(t=this.changed)[o]??(t[o]={initial:n,current:r,delta:i}),this.changed[o].current={...this.changed[o].current,...r},this.changed[o].delta={...this.changed[o].delta,...i}}),this.sendItems()),this.isOnSending=!1,this.isSendingTimeout=void 0,this.willDeleteHistory=void 0,this.sendItems=async()=>{const{DEBUG_MODE:e,onSend:t,onSendEnd:n,batch_size:i,throttle:o,historyAgeSeconds:s=2}=this.options;if(this.isSendingTimeout||this.sending&&!(0,r.isEmpty)(this.sending))return;if(!this.changed||(0,r.isEmpty)(this.changed))return;let a,l=[],c=[],u={};Object.keys(this.changed).sort((e,t)=>this.sort(this.changed[e].current,this.changed[t].current)).slice(0,i).map(e=>{let t={...this.changed[e]};this.sending[e]={...t},c.push({...t}),u[e]={...t.current},delete this.changed[e]}),l=c.map(e=>{let t={};return Object.keys(e.current).map(n=>{const i=e.initial?.[n],o=e.current[n];![this.options.synced_field,...this.options.id_fields].includes(n)&&(0,r.isEqual)(i,o)||(t[n]=o)}),t}),e&&console.log(this.options.id," SENDING lr->",l[l.length-1]),this.isSendingTimeout||(this.isSendingTimeout=setTimeout(()=>{this.isSendingTimeout=void 0,(0,r.isEmpty)(this.changed)||this.sendItems()},o)),this.isOnSending=!0;try{await t(l,c),s&&(this.sentHistory={...this.sentHistory,...u},this.willDeleteHistory||(this.willDeleteHistory=setTimeout(()=>{this.willDeleteHistory=void 0,this.sentHistory={}},1e3*s)))}catch(e){a=e,console.error("WAL onSend failed:",e,l,c)}if(this.isOnSending=!1,this.callbacks.length){const e=Object.keys(this.sending);this.callbacks.forEach((t,n)=>{t.idStrs=t.idStrs.filter(t=>e.includes(t)),t.idStrs.length||t.cb(a)}),this.callbacks=this.callbacks.filter(e=>e.idStrs.length)}this.sending={},e&&console.log(this.options.id," SENT lr->",l[l.length-1]),(0,r.isEmpty)(this.changed)?n&&n(l,c,a):this.sendItems()},this.options={...e},!this.options.orderBy){const{synced_field:t,id_fields:n}=e;this.options.orderBy=[t,...n.sort()].map(e=>({fieldName:e,tsDataType:e===t?"number":"string",asc:!0}))}}isSending(){const e=this.isOnSending||!((0,r.isEmpty)(this.sending)&&(0,r.isEmpty)(this.changed));return this.options.DEBUG_MODE&&console.log(this.options.id," CHECKING isSending ->",e),e}getIdStr(e){return this.options.id_fields.sort().map(t=>String(e[t])).join(".")}getIdObj(e){let t={};return this.options.id_fields.sort().map(n=>{t[n]=e[n]}),t}getDeltaObj(e){let t={};return Object.keys(e).map(n=>{this.options.id_fields.includes(n)||(t[n]=e[n])}),t}}},618(e,t){Object.defineProperty(t,"__esModule",{value:!0})},521(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.CONTENT_TYPE_TO_EXT=void 0,t.CONTENT_TYPE_TO_EXT={"text/html":["html","htm","shtml"],"text/css":["css"],"text/csv":["csv"],"text/tsv":["tsv"],"text/xml":["xml"],"text/mathml":["mml"],"text/plain":["txt"],"text/vnd.sun.j2me.app-descriptor":["jad"],"text/vnd.wap.wml":["wml"],"text/x-component":["htc"],"image/gif":["gif"],"image/jpeg":["jpeg","jpg"],"image/png":["png"],"image/tiff":["tif","tiff"],"image/vnd.wap.wbmp":["wbmp"],"image/x-icon":["ico"],"image/x-jng":["jng"],"image/x-ms-bmp":["bmp"],"image/svg+xml":["svg"],"image/webp":["webp"],"application/sql":["sql"],"application/x-javascript":["js"],"application/atom+xml":["atom"],"application/rss+xml":["rss"],"application/java-archive":["jar","war","ear"],"application/mac-binhex40":["hqx"],"application/msword":["doc","docx"],"application/pdf":["pdf"],"application/postscript":["ps","eps","ai"],"application/rtf":["rtf"],"application/vnd.ms-excel":["xls","xlsx"],"application/vnd.ms-powerpoint":["ppt","pptx"],"application/vnd.wap.wmlc":["wmlc"],"application/vnd.google-earth.kml+xml":["kml"],"application/vnd.google-earth.kmz":["kmz"],"application/x-7z-compressed":["7z"],"application/x-cocoa":["cco"],"application/x-java-archive-diff":["jardiff"],"application/x-java-jnlp-file":["jnlp"],"application/x-makeself":["run"],"application/x-perl":["pl","pm"],"application/x-pilot":["prc","pdb"],"application/x-rar-compressed":["rar"],"application/x-redhat-package-manager":["rpm"],"application/x-sea":["sea"],"application/x-shockwave-flash":["swf"],"application/x-stuffit":["sit"],"application/x-tcl":["tcl","tk"],"application/x-x509-ca-cert":["der","pem","crt"],"application/x-xpinstall":["xpi"],"application/xhtml+xml":["xhtml"],"application/zip":["zip"],"application/octet-stream":["bin","exe","dll","deb","dmg","eot","iso","img","msi","msp","msm"],"audio/midi":["mid","midi","kar"],"audio/mpeg":["mp3"],"audio/ogg":["ogg"],"audio/x-realaudio":["ra"],"video/3gpp":["3gpp","3gp"],"video/mpeg":["mpeg","mpg"],"video/quicktime":["mov"],"video/x-flv":["flv"],"video/x-mng":["mng"],"video/x-ms-asf":["asx","asf"],"video/x-ms-wmv":["wmv"],"video/x-msvideo":["avi"],"video/mp4":["m4v","mp4"],"video/webm":["webm"]}},209(e,t,n){Object.defineProperty(t,"__esModule",{value:!0}),t.COMPLEX_FILTER_KEY=t.ComplexFilterComparisonKeys=t.EXISTS_KEYS=t.GeomFilter_Funcs=t.GeomFilterKeys=t.ArrayFilterOperands=t.TextFilter_FullTextSearchFilterKeys=t.TextFilterFTSKeys=t.TextFilterKeys=t.JsonbFilterKeys=t.JsonbOperands=t.BetweenFilterKeys=t.CompareInFilterKeys=t.CompareFilterKeys=void 0;const r=n(472);t.CompareFilterKeys=["=","<>",">","<",">=","<=","$eq","$ne","$gt","$gte","$lt","$lte","$isDistinctFrom","$isNotDistinctFrom"],t.CompareInFilterKeys=["$in","$nin"],t.BetweenFilterKeys=["$between","$notBetween"],t.JsonbOperands={"@>":{Operator:"@>","Right Operand Type":"jsonb",Description:"Does the left JSON value contain the right JSON path/value entries at the top level?",Example:'\'{"a":1, "b":2}\'::jsonb @> \'{"b":2}\'::jsonb'},"<@":{Operator:"<@","Right Operand Type":"jsonb",Description:"Are the left JSON path/value entries contained at the top level within the right JSON value?",Example:'\'{"b":2}\'::jsonb <@ \'{"a":1, "b":2}\'::jsonb'},"?":{Operator:"?","Right Operand Type":"text",Description:"Does the string exist as a top-level key within the JSON value?",Example:"'{\"a\":1, \"b\":2}'::jsonb ? 'b'"},"?|":{Operator:"?|","Right Operand Type":"text[]",Description:"Do any of these array strings exist as top-level keys?",Example:"'{\"a\":1, \"b\":2, \"c\":3}'::jsonb ?| array['b', 'c']"},"?&":{Operator:"?&","Right Operand Type":"text[]",Description:"Do all of these array strings exist as top-level keys?",Example:"'[\"a\", \"b\"]'::jsonb ?& array['a', 'b']"},"||":{Operator:"||","Right Operand Type":"jsonb",Description:"Concatenate two jsonb values into a new jsonb value",Example:'\'["a", "b"]\'::jsonb || \'["c", "d"]\'::jsonb'},"-":{Operator:"-","Right Operand Type":"integer",Description:"Delete the array element with specified index (Negative integers count from the end). Throws an error if top level container is not an array.",Example:'\'["a", "b"]\'::jsonb - 1'},"#-":{Operator:"#-","Right Operand Type":"text[]",Description:"Delete the field or element with specified path (for JSON arrays, negative integers count from the end)",Example:"'[\"a\", {\"b\":1}]'::jsonb #- '{1,b}'"},"@?":{Operator:"@?","Right Operand Type":"jsonpath",Description:"Does JSON path return any item for the specified JSON value?",Example:"'{\"a\":[1,2,3,4,5]}'::jsonb @? '$.a[*] ? (@ > 2)'"},"@@":{Operator:"@@","Right Operand Type":"jsonpath",Description:"Returns the result of JSON path predicate check for the specified JSON value. Only the first item of the result is taken into account. If the result is not Boolean, then null is returned.",Example:"'{\"a\":[1,2,3,4,5]}'::jsonb @@ '$.a[*] > 2'"}},t.JsonbFilterKeys=(0,r.getKeys)(t.JsonbOperands),t.TextFilterKeys=["$ilike","$like","$nilike","$nlike"],t.TextFilterFTSKeys=["@@","@>","<@","$contains","$containedBy"],t.TextFilter_FullTextSearchFilterKeys=["to_tsquery","plainto_tsquery","phraseto_tsquery","websearch_to_tsquery"],t.ArrayFilterOperands=["@>","<@","=","$eq","$contains","$containedBy","&&","$overlaps"],t.GeomFilterKeys=["~","~=","@","|&>","|>>",">>","=","<<|","<<","&>","&<|","&<","&&&","&&"],t.GeomFilter_Funcs=["ST_MakeEnvelope","st_makeenvelope","ST_MakePolygon","st_makepolygon"],t.EXISTS_KEYS=["$exists","$notExists","$existsJoined","$notExistsJoined"],t.ComplexFilterComparisonKeys=[...t.TextFilterKeys,...t.JsonbFilterKeys,...t.CompareFilterKeys,...t.BetweenFilterKeys,...t.CompareInFilterKeys],t.COMPLEX_FILTER_KEY="$filter"},806(e,t,n){var r=this&&this.__createBinding||(Object.create?function(e,t,n,r){void 0===r&&(r=n);var i=Object.getOwnPropertyDescriptor(t,n);i&&!("get"in i?!t.__esModule:i.writable||i.configurable)||(i={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,r,i)}:function(e,t,n,r){void 0===r&&(r=n),e[r]=t[n]}),i=this&&this.__exportStar||function(e,t){for(var n in e)"default"===n||Object.prototype.hasOwnProperty.call(t,n)||r(t,e,n)};Object.defineProperty(t,"__esModule",{value:!0}),t.ABORTABLE_METHODS=t.CONTENT_TYPE_TO_EXT=t.getPossibleNestedInsert=t.SQL_COMMAND_TABLE_METHODS=t.CHANNELS=t.CHANNEL_PREFIX=t.JOIN_PARAMS=t.JOIN_KEYS=t.getAllowedTableMethods=t.postgresToTsType=t.TS_PG_Types=t._PG_bytes=t._PG_geometric=t._PG_postgis=t._PG_interval=t._PG_date=t._PG_bool=t._PG_json=t._PG_numbers=t._PG_numbers_str=t._PG_numbers_num=t._PG_strings=void 0;const o=n(472),s=n(441);t._PG_strings=["bpchar","char","varchar","text","citext","uuid","time","timetz","interval","name","cidr","inet","macaddr","macaddr8","int4range","int8range","numrange","tsvector"],t._PG_numbers_num=["int2","int4","float4","float8","oid"],t._PG_numbers_str=["int8","numeric","money"],t._PG_numbers=[...t._PG_numbers_num,...t._PG_numbers_str],t._PG_json=["json","jsonb"],t._PG_bool=["bool"],t._PG_date=["date","timestamp","timestamptz"],t._PG_interval=["interval"],t._PG_postgis=["geometry","geography"],t._PG_geometric=["point","line","lseg","box","path","polygon","circle"],t._PG_bytes=["bytea"];const a={Uint8Array:t._PG_bytes,string:[...t._PG_strings,...t._PG_numbers_str,...t._PG_date,...t._PG_geometric,...t._PG_postgis,"lseg"],number:t._PG_numbers_num,boolean:t._PG_bool,any:[...t._PG_json,...t._PG_interval]};t.TS_PG_Types={...a,"number[]":a.number.map(e=>`_${e}`),"boolean[]":a.boolean.map(e=>`_${e}`),"string[]":a.string.map(e=>`_${e}`),"any[]":a.any.map(e=>`_${e}`)},t.postgresToTsType=e=>(0,o.getKeys)(t.TS_PG_Types).find(n=>(0,s.includes)(t.TS_PG_Types[n],e))??"any",t.getAllowedTableMethods=({publishInfo:e})=>{let n=[...e.select||e.insert||e.delete||e.update?t.SQL_COMMAND_TABLE_METHODS.schema:[],...t.SQL_COMMAND_TABLE_METHODS.select.filter(t=>"sync"===t?void 0!==e.select?.syncConfig:e.select&&!Object.keys(e.select.disabledMethods??{}).includes(t)),...t.SQL_COMMAND_TABLE_METHODS.update.filter(t=>e.update&&!Object.keys(e.update.disabledMethods??{}).includes(t)),...e.insert?t.SQL_COMMAND_TABLE_METHODS.insert:[],...e.delete?t.SQL_COMMAND_TABLE_METHODS.delete:[]];const r=new Map;return Object.values(t.SQL_COMMAND_TABLE_METHODS).forEach(e=>{e.forEach(e=>{r.set(e,(r.get(e)??0)+1)})}),r.forEach((e,t)=>{n.filter(e=>e===t).length!==e&&r.delete(t)}),Array.from(r.keys())},t.JOIN_KEYS=["$innerJoin","$leftJoin"],t.JOIN_PARAMS=["select","filter","$path","$condition","offset","limit","orderBy"],t.CHANNEL_PREFIX="_psqlWS_.",t.CHANNELS={SCHEMA_CHANGED:t.CHANNEL_PREFIX+"schema-changed",SCHEMA:t.CHANNEL_PREFIX+"schema",DEFAULT:t.CHANNEL_PREFIX,SQL:`${t.CHANNEL_PREFIX}sql`,SQL_STREAM:`${t.CHANNEL_PREFIX}sql-stream`,METHOD:`${t.CHANNEL_PREFIX}method`,NOTICE_EV:`${t.CHANNEL_PREFIX}notice`,LISTEN_EV:`${t.CHANNEL_PREFIX}listen`,REGISTER:`${t.CHANNEL_PREFIX}register`,LOGIN:`${t.CHANNEL_PREFIX}login`,LOGOUT:`${t.CHANNEL_PREFIX}logout`,AUTH_GUARD:`${t.CHANNEL_PREFIX}authguard`,CONNECTION:`${t.CHANNEL_PREFIX}connection`,_preffix:t.CHANNEL_PREFIX},t.SQL_COMMAND_TABLE_METHODS={schema:["getColumns","getInfo"],insert:["insert","insertMany","upsert"],update:["update","upsert","updateBatch"],select:["findOne","find","count","size","subscribe","subscribeOne","sync"],delete:["delete","remove"]},t.getPossibleNestedInsert=(e,t,n=!0)=>{const r=(e.references??[]).map(e=>{const{ftable:n,fcols:r}=e,i=t.find(e=>e.name===n);if(!i)return;const o=i.columns.filter(e=>r.includes(e.name));return o.length?{ref:e,fcolsInfo:o}:void 0}).filter(o.isDefined),[i,...s]=r??[];if(!s.length)return i?.ref;const[a,...l]=r.filter(e=>e.fcolsInfo.some(e=>e.is_pkey));if(!l.length)return a?.ref;if(!n)throw["Cannot do a nested insert on column that references multiple tables.","Expecting only one reference to a single primary key fcol"].join("\n")},i(n(618),t);var l=n(521);Object.defineProperty(t,"CONTENT_TYPE_TO_EXT",{enumerable:!0,get:function(){return l.CONTENT_TYPE_TO_EXT}}),i(n(209),t),i(n(319),t),i(n(699),t),i(n(394),t),i(n(994),t),i(n(897),t),i(n(164),t),i(n(472),t),i(n(502),t),i(n(778),t),t.ABORTABLE_METHODS=["find","findOne","count","size"]},319(e,t,n){Object.defineProperty(t,"__esModule",{value:!0}),t.leftJoin=t.innerJoin=void 0;const r=n(472),i=(e="$leftJoin")=>(t,n,i,o={})=>({[e]:o.path??t,filter:n,...(0,r.omitKeys)(o,["path","select"]),select:i});t.innerJoin=i("$innerJoin"),t.leftJoin=i("$leftJoin")},666(e,t){function n(e,t){var n=e[0],r=e[1],l=e[2],c=e[3];n=i(n,r,l,c,t[0],7,-680876936),c=i(c,n,r,l,t[1],12,-389564586),l=i(l,c,n,r,t[2],17,606105819),r=i(r,l,c,n,t[3],22,-1044525330),n=i(n,r,l,c,t[4],7,-176418897),c=i(c,n,r,l,t[5],12,1200080426),l=i(l,c,n,r,t[6],17,-1473231341),r=i(r,l,c,n,t[7],22,-45705983),n=i(n,r,l,c,t[8],7,1770035416),c=i(c,n,r,l,t[9],12,-1958414417),l=i(l,c,n,r,t[10],17,-42063),r=i(r,l,c,n,t[11],22,-1990404162),n=i(n,r,l,c,t[12],7,1804603682),c=i(c,n,r,l,t[13],12,-40341101),l=i(l,c,n,r,t[14],17,-1502002290),n=o(n,r=i(r,l,c,n,t[15],22,1236535329),l,c,t[1],5,-165796510),c=o(c,n,r,l,t[6],9,-1069501632),l=o(l,c,n,r,t[11],14,643717713),r=o(r,l,c,n,t[0],20,-373897302),n=o(n,r,l,c,t[5],5,-701558691),c=o(c,n,r,l,t[10],9,38016083),l=o(l,c,n,r,t[15],14,-660478335),r=o(r,l,c,n,t[4],20,-405537848),n=o(n,r,l,c,t[9],5,568446438),c=o(c,n,r,l,t[14],9,-1019803690),l=o(l,c,n,r,t[3],14,-187363961),r=o(r,l,c,n,t[8],20,1163531501),n=o(n,r,l,c,t[13],5,-1444681467),c=o(c,n,r,l,t[2],9,-51403784),l=o(l,c,n,r,t[7],14,1735328473),n=s(n,r=o(r,l,c,n,t[12],20,-1926607734),l,c,t[5],4,-378558),c=s(c,n,r,l,t[8],11,-2022574463),l=s(l,c,n,r,t[11],16,1839030562),r=s(r,l,c,n,t[14],23,-35309556),n=s(n,r,l,c,t[1],4,-1530992060),c=s(c,n,r,l,t[4],11,1272893353),l=s(l,c,n,r,t[7],16,-155497632),r=s(r,l,c,n,t[10],23,-1094730640),n=s(n,r,l,c,t[13],4,681279174),c=s(c,n,r,l,t[0],11,-358537222),l=s(l,c,n,r,t[3],16,-722521979),r=s(r,l,c,n,t[6],23,76029189),n=s(n,r,l,c,t[9],4,-640364487),c=s(c,n,r,l,t[12],11,-421815835),l=s(l,c,n,r,t[15],16,530742520),n=a(n,r=s(r,l,c,n,t[2],23,-995338651),l,c,t[0],6,-198630844),c=a(c,n,r,l,t[7],10,1126891415),l=a(l,c,n,r,t[14],15,-1416354905),r=a(r,l,c,n,t[5],21,-57434055),n=a(n,r,l,c,t[12],6,1700485571),c=a(c,n,r,l,t[3],10,-1894986606),l=a(l,c,n,r,t[10],15,-1051523),r=a(r,l,c,n,t[1],21,-2054922799),n=a(n,r,l,c,t[8],6,1873313359),c=a(c,n,r,l,t[15],10,-30611744),l=a(l,c,n,r,t[6],15,-1560198380),r=a(r,l,c,n,t[13],21,1309151649),n=a(n,r,l,c,t[4],6,-145523070),c=a(c,n,r,l,t[11],10,-1120210379),l=a(l,c,n,r,t[2],15,718787259),r=a(r,l,c,n,t[9],21,-343485551),e[0]=f(n,e[0]),e[1]=f(r,e[1]),e[2]=f(l,e[2]),e[3]=f(c,e[3])}function r(e,t,n,r,i,o){return t=f(f(t,e),f(r,o)),f(t<<i|t>>>32-i,n)}function i(e,t,n,i,o,s,a){return r(t&n|~t&i,e,t,o,s,a)}function o(e,t,n,i,o,s,a){return r(t&i|n&~i,e,t,o,s,a)}function s(e,t,n,i,o,s,a){return r(t^n^i,e,t,o,s,a)}function a(e,t,n,i,o,s,a){return r(n^(t|~i),e,t,o,s,a)}function l(e){var t,n=[];for(t=0;t<64;t+=4)n[t>>2]=e.charCodeAt(t)+(e.charCodeAt(t+1)<<8)+(e.charCodeAt(t+2)<<16)+(e.charCodeAt(t+3)<<24);return n}t.md5=p;var c="0123456789abcdef".split("");function u(e){for(var t="",n=0;n<4;n++)t+=c[e>>8*n+4&15]+c[e>>8*n&15];return t}function p(e){return function(e){for(var t=0;t<e.length;t++)e[t]=u(e[t]);return e.join("")}(function(e){var t,r=e.length,i=[1732584193,-271733879,-1732584194,271733878];for(t=64;t<=e.length;t+=64)n(i,l(e.substring(t-64,t)));e=e.substring(t-64);var o=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];for(t=0;t<e.length;t++)o[t>>2]|=e.charCodeAt(t)<<(t%4<<3);if(o[t>>2]|=128<<(t%4<<3),t>55)for(n(i,o),t=0;t<16;t++)o[t]=0;return o[14]=8*r,n(i,o),i}(e))}function f(e,t){return e+t&4294967295}p("hello")},164(e,t,n){Object.defineProperty(t,"__esModule",{value:!0}),t.ReplicationProtocol=t.getSyncChannelName=void 0;const r=n(806);var i;t.getSyncChannelName=({tableName:e,filter:t={},select:n="*"})=>[r.CHANNEL_PREFIX,e,"sync",(0,r.stableStringify)(t),"string"==typeof n?n:(0,r.stableStringify)(n)].join("."),function(e){e.CreateSchema={name:"Create",source:"client",request:{type:{tableName:"string",command:{enum:["sync"]},param1:{record:{values:"unknown"}},param2:{type:{select:"unknown"}}}},response:{type:{id_fields:"string[]",synced_field:"string",channelName:"string",data:"any[]",isSynced:"boolean"}}};const t={state:{enum:["syncing"]},c_fr:{optional:!0,record:{values:"unknown"}},c_lr:{optional:!0,record:{values:"unknown"}},c_count:"number"},n={state:{enum:["syncing-data"]},c_fr:{record:{values:"unknown"}},c_lr:{record:{values:"unknown"}},c_count:"number",data:{arrayOf:{record:{values:"unknown"}}}},i={from_synced:{oneOf:["string","number",{enum:[void 0]}]},to_synced:{oneOf:["string","number",{enum:[void 0]}]}};e.ServerSyncRequest={name:"ServerSyncRequest",source:"server",request:{type:{...i,end_offset:{oneOf:["number",{enum:[null]}]}}},response:{oneOfType:[t,n,{state:{enum:["error"]},err:"unknown"}]}},e.ClientSyncRequest={name:"ClientSyncRequest",source:"client",request:{oneOfType:[t,n]},response:{oneOfType:[{success:{enum:[!0]}},{success:{enum:[!1]},err:"unknown"}]}},e.PullRequest={name:"PullRequest",source:"server",request:{type:{...i,offset:{oneOf:["number",{enum:[void 0]}]},limit:{oneOf:["number",{enum:[void 0]}]}}},response:{oneOfType:[{success:{enum:[!0]},data:{arrayOf:{record:{values:"unknown"}}}},{success:{enum:[!1]},err:"unknown"}]}},e.UpdateRequest={name:"UpdateRequest",source:"server",request:{oneOfType:[{state:{enum:["error"]},err:"unknown"},{state:{enum:["synced"]},isSynced:"boolean"},{state:{enum:["syncing"]},data:{arrayOf:{record:{values:"unknown"}}}}]},response:{oneOfType:[{success:{enum:[!0]}},{success:{enum:[!1]},err:"unknown"}]}};const o={ClientSyncRequest:e.ClientSyncRequest,ServerSyncRequest:e.ServerSyncRequest,PullRequest:e.PullRequest,UpdateRequest:e.UpdateRequest},s=Object.values(o),a=(e,t,n,i)=>(t.removeAllListeners(e),t.on(e,async(e,t)=>{const{type:o,request:a}=(0,r.isObject)(e)?e:{};if("string"!=typeof o||!a)return void t("Unexpected data");const l=s.find(e=>e.name===o&&e.source!==n);if(!l)return void t("Invalid data.type");if(l.source===n)return void t("Invalid schema.source");if("server"===n){const e=(0,r.getJSONBSchemaValidationError)(l.request,a);if(void 0!==e.error)return console.error("Invalid request from client",e.error,a),void t(e.error)}const c=l.name;try{t(await(0,r.withTimeout)(Promise.resolve(i[c](a)),1e4))}catch(e){t((0,r.getSerialisableError)(e))}}),(0,r.fromEntries)((0,r.getEntries)(o).map(([i,o])=>{if(o.source===n)return[i,i=>(0,r.createPromiseWithTimeout)((s,a)=>{t.emit(e,{type:o.name,request:i},e=>{if("server"===n){const t=(0,r.getJSONBSchemaValidationError)(o.response,e);if(void 0!==t.error)return console.error("Invalid response from client for "+o.name,t.error,e),void a(t.error)}s(e)})},1e4)]}).filter(r.isDefined)));e.getServerHandlers=(e,t,n)=>a(e,t,"server",n),e.getClientHandlers=(e,t,n)=>a(e,t,"client",n)}(i||(t.ReplicationProtocol=i={}))},472(e,t,n){Object.defineProperty(t,"__esModule",{value:!0}),t.fromEntries=t.getEntries=t.createPromiseWithTimeout=t.withTimeout=t.getProperty=t.getSerialisableError=t.safeStringify=t.extractTypeUtil=t.reverseParsedPath=t.reverseJoinOn=t.tryCatch=t.getObjectEntries=t.isNotEmpty=t.pickKeys=void 0,t.asName=function(e){if(null==e||!e.toString||!e.toString())throw"Expecting a non empty string";return`"${e.toString().replace(/"/g,'""')}"`},t.omitKeys=i,t.filter=o,t.find=function(e,t){return o(e,t)[0]},t.stableStringify=function(e,t={}){t||(t={}),"function"==typeof t&&(t={cmp:t});var n,r="boolean"==typeof t.cycles&&t.cycles,i=t.cmp&&(n=t.cmp,function(e){return function(t,r){var i={key:t,value:e[t]},o={key:r,value:e[r]};return n(i,o)}}),o=[];return function e(t){if(t&&t.toJSON&&"function"==typeof t.toJSON&&(t=t.toJSON()),void 0!==t){if("number"==typeof t)return isFinite(t)?""+t:"null";if("object"!=typeof t)return JSON.stringify(t);var n,s;if(Array.isArray(t)){for(s="[",n=0;n<t.length;n++)n&&(s+=","),s+=e(t[n])||"null";return s+"]"}if(null===t)return"null";if(-1!==o.indexOf(t)){if(r)return JSON.stringify("__cycle__");throw new TypeError("Converting circular structure to JSON")}var a=o.push(t)-1,l=Object.keys(t).sort(i&&i(t));for(s="",n=0;n<l.length;n++){var c=l[n],u=e(t[c]);u&&(s&&(s+=","),s+=JSON.stringify(c)+":"+u)}return o.splice(a,1),"{"+s+"}"}}(e)},t.getTextPatch=function(e,t){if(!(e&&t&&e.trim().length&&t.trim().length))return t;if(e===t)return{from:0,to:0,text:"",md5:(0,r.md5)(t)};function n(n=1){let r=n<1?-1:0,i=!1;for(;!i&&Math.abs(r)<=t.length;){const o=n<1?[r]:[0,r];e.slice(...o)!==t.slice(...o)?i=!0:r+=1*Math.sign(n)}return r}let i=n()-1,o=e.length+n(-1)+1,s=t.length+n(-1)+1;return{from:i,to:o,text:t.slice(i,s),md5:(0,r.md5)(t)}},t.unpatchText=function(e,t){if(!t||"string"==typeof t)return t;const{from:n,to:i,text:o,md5:s}=t;if(null===o||null===e)return o;let a=e.slice(0,n)+o+e.slice(i);if(s&&(0,r.md5)(a)!==s)throw"Patch text error: Could not match md5 hash: (original/result) \n"+e+"\n"+a;return a},t.isEmpty=s,t.get=function(e,t){let n=t,r=e;return e?("string"==typeof n&&(n=n.split(".")),n.reduce((e,t)=>e&&e[t]?e[t]:void 0,r)):e},t.isObject=function(e){return Boolean(e&&"object"==typeof e&&!Array.isArray(e))},t.isDefined=a,t.getKeys=l;const r=n(666);function i(e,n){return(0,t.pickKeys)(e,l(e).filter(e=>!n.includes(e)))}function o(e,t){return e.filter(e=>Object.entries(t).every(([t,n])=>e[t]===n))}function s(e){for(var t in e)return!1;return!0}function a(e){return null!=e}function l(e){return Object.keys(e)}t.pickKeys=(e,t=[],n=!0)=>{if(!t.length)return{};if(e&&t.length){let r={};return t.forEach(t=>{n&&void 0===e[t]||(r[t]=e[t])}),r}return e},t.isNotEmpty=e=>!s(e),t.getObjectEntries=e=>Object.entries(e),t.tryCatch=async e=>{const t=Date.now();try{return{...await e(),duration:Date.now()-t}}catch(e){return{error:e,hasError:!0,duration:Date.now()-t}}},t.reverseJoinOn=e=>e.map(e=>Object.fromEntries(Object.entries(e).map(([e,t])=>[t,e]))),t.reverseParsedPath=(e,n)=>{const r=[{table:n,on:[{}]},...e??[]];return r.map((e,n)=>{const i=r[n+1];if(i)return{table:e.table,on:(0,t.reverseJoinOn)(i.on)}}).filter(a).reverse()},t.extractTypeUtil=(e,t)=>{if(Object.entries(t).every(([t,n])=>e[t]===n))return e},t.safeStringify=e=>{const t=new WeakSet;return JSON.stringify(e,(e,n)=>{if("object"==typeof n&&null!==n){if(t.has(n))return"[Circular]";t.add(n)}return n})},t.getSerialisableError=(e,n=!1)=>{if(null==e)return e;if("string"==typeof e||"boolean"==typeof e||"bigint"==typeof e||void 0===e||"number"==typeof e)return e?.toString();if(e instanceof DOMException)return{name:e.name,message:e.message,code:e.code,...n?{stack:e.stack}:{}};if(e instanceof Error){const r=Object.getOwnPropertyNames(e).reduce((t,n)=>({...t,[n]:e[n]}),{}),o=JSON.parse((0,t.safeStringify)(r));return n?o:i(o,["stack"])}return Array.isArray(e)?e.map(e=>(0,t.getSerialisableError)(e,n)):e},t.getProperty=(e,t)=>{if(Object.keys(e).includes(t))return e[t]},t.withTimeout=(e,t)=>{const n=new Promise((e,n)=>setTimeout(()=>n(new Error(`Timed out after ${t}ms`)),t));return Promise.race([e,n])},t.createPromiseWithTimeout=(e,t)=>{const n=new Promise((e,n)=>setTimeout(()=>n(new Error(`Timed out after ${t}ms`)),t)),r=new Promise(e);return Promise.race([r,n])},t.getEntries=e=>Object.entries(e),t.fromEntries=e=>Object.fromEntries(e)},441(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.includes=function(e,t){return e.some(e=>e===t)}},778(e,t,n){var r=this&&this.__createBinding||(Object.create?function(e,t,n,r){void 0===r&&(r=n);var i=Object.getOwnPropertyDescriptor(t,n);i&&!("get"in i?!t.__esModule:i.writable||i.configurable)||(i={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,r,i)}:function(e,t,n,r){void 0===r&&(r=n),e[r]=t[n]}),i=this&&this.__exportStar||function(e,t){for(var n in e)"default"===n||Object.prototype.hasOwnProperty.call(t,n)||r(t,e,n)};Object.defineProperty(t,"__esModule",{value:!0}),i(n(102),t),i(n(436),t),i(n(441),t)},102(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.isEqual=void 0,t.isEqual=(e,t,r="trace")=>n(e,t,void 0,r);const n=(e,t,r=new WeakMap,i)=>{if(e===t)return!0;if(typeof e!=typeof t)return!1;if(null===e||null===t)return!1;if("object"!=typeof e||"object"!=typeof t)return e!=e&&t!=t;let o=r.get(e);if(o?.has(t)){if("quiet"!==i&&console.trace("Circular reference detected in isEqual",e,t),"error"===i)throw new Error("Circular reference detected in isEqual");return"return-true"===i}if(o||(o=new WeakSet,r.set(e,o)),o.add(t),e instanceof Date&&t instanceof Date)return e.getTime()===t.getTime();if(e instanceof RegExp&&t instanceof RegExp)return e.source===t.source&&e.flags===t.flags;const s=Array.isArray(e),a=Array.isArray(t);if(s&&a){if(e.length!==t.length)return!1;for(let o=0;o<e.length;o++)if(!n(e[o],t[o],r,i))return!1;return!0}if(s!==a)return!1;if(ArrayBuffer.isView(e)&&ArrayBuffer.isView(t)){if(e.byteLength!==t.byteLength)return!1;const n=new Uint8Array(e.buffer,e.byteOffset,e.byteLength),r=new Uint8Array(t.buffer,t.byteOffset,t.byteLength);for(let e=0;e<n.length;e++)if(n[e]!==r[e])return!1;return!0}if(e instanceof ArrayBuffer&&t instanceof ArrayBuffer){if(e.byteLength!==t.byteLength)return!1;const n=new Uint8Array(e),r=new Uint8Array(t);for(let e=0;e<n.length;e++)if(n[e]!==r[e])return!1;return!0}const l=Object.keys(e);if(l.length!==Object.keys(t).length)return!1;for(const o of l){if(!(o in t))return!1;{const s=e[o],a=t[o];if(!n(s,a,r,i))return!1}}return!0}},436(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.tryCatchV2=void 0,t.tryCatchV2=e=>{const t=Date.now();try{const n=e();return n instanceof Promise?new Promise(async(e,r)=>{e({...await n.then(e=>({data:e})).catch(e=>({error:e,hasError:!0})),duration:Date.now()-t})}):{data:n,duration:Date.now()-t}}catch(e){return{error:e,hasError:!0,duration:Date.now()-t}}}}};const t={};return function n(r){const i=t[r];if(void 0!==i)return i.exports;const o=t[r]={exports:{}};return e[r].call(o.exports,o,o.exports,n),o.exports}(806)})());
1
+ !function(e,t){if("object"==typeof exports&&"object"==typeof module)module.exports=t();else if("function"==typeof define&&define.amd)define([],t);else{var n=t();for(var r in n)("object"==typeof exports?exports:e)[r]=n[r]}}(Object(this||window),()=>(()=>{"use strict";var e={994(e,t,n){Object.defineProperty(t,"__esModule",{value:!0}),t.DATA_TYPES=t.PrimitiveArrayTypes=t.PrimitiveTypes=t.PrimitiveTypesObj=void 0;const r=n(472);t.PrimitiveTypesObj={boolean:1,number:1,integer:1,string:1,Date:1,time:1,timestamp:1,Uint8Array:1,Blob:1,FileLike:1,any:1,unknown:1},t.PrimitiveTypes=(0,r.getKeys)(t.PrimitiveTypesObj),t.PrimitiveArrayTypes=t.PrimitiveTypes.map(e=>`${e}[]`),t.DATA_TYPES=[...t.PrimitiveTypes,...t.PrimitiveArrayTypes]},897(e,t,n){Object.defineProperty(t,"__esModule",{value:!0}),t.assertJSONBObjectAgainstSchema=t.validateJSONBObjectAgainstSchema=t.getJSONBSchemaValidationErrorAsync=t.getJSONBSchemaValidationError=t.getJSONBObjectSchemaValidationError=t.getFieldTypeObj=void 0;const r=n(472),i=n(441),o=n(704);t.getFieldTypeObj=e=>"string"==typeof e?{type:e}:e;const s=e=>e instanceof Blob||"undefined"!=typeof Buffer&&e instanceof Buffer||"undefined"!=typeof ArrayBuffer&&e instanceof ArrayBuffer,a={string:e=>"string"==typeof e,number:e=>"number"==typeof e&&Number.isFinite(e),integer:e=>"number"==typeof e&&Number.isInteger(e),boolean:e=>"boolean"==typeof e,time:e=>"string"==typeof e,timestamp:e=>"string"==typeof e,any:e=>"function"!=typeof e&&"symbol"!=typeof e,unknown:e=>"function"!=typeof e&&"symbol"!=typeof e,Date:e=>"string"==typeof e,Uint8Array:s,Blob:s,FileLike:(e,t)=>{if("FileLike"!==t.type)throw new Error("FileLike type must have type 'FileLike'");const n=(0,r.isObject)(e)&&"string"==typeof e.name&&"string"==typeof e.type&&s(e.data);if(n&&t.mimeTypes&&!Object.keys(t.mimeTypes).some(t=>e.type===t))throw new Error(`Invalid FileLike type. Expected one of: ${Object.keys(t.mimeTypes).join(", ")}`);return n}},l=(0,r.getKeys)(a),c=(e,n,s=[],p,f)=>{const d=`${s.join(".")} is of invalid type. Expecting ${u(n).replaceAll("\n","")}`,y=(0,t.getFieldTypeObj)(n),{type:m,allowedValues:g,nullable:h,optional:b}=y;if(h&&null===e)return;if(b&&void 0===e)return;if(g){if("string"!=typeof m)throw new Error("allowedValues is only supported for primitive types");const t=m.endsWith("[]"),n=t&&Array.isArray(e)?e:[e],i=g.map(e=>(0,r.isObject)(e)?e.value:e);for(const[e,r]of n.entries())if(!i.includes(r))return`${t?`${s.join(".")}[${e}]`:s.join(".")} is of invalid type. Expecting ${i.map(e=>"string"==typeof e?JSON.stringify(e):String(e)).join(" | ")} But got ${JSON.stringify(r)}`}if(m){if((0,r.isObject)(m)){if(!(0,r.isObject)(e))return d;for(const t of(0,o.safeGetKeys)(m)){const n=(0,o.safeGetProperty)(m,t);if(!((0,r.isObject)(n)&&n.optional||(0,o.safeHasOwn)(e,t)))return`${[...s,t].join(".")} is missing but required`;const i=c((0,o.safeGetProperty)(e,t),n,[...s,t],p,f);if(void 0!==i)return i}if(!p?.allowExtraProperties){const t=(0,o.safeGetKeys)(e),n=(0,o.safeGetKeys)(m),r=t.filter(e=>!n.includes(e));if(r.length)return`${s.join(".")} has extra properties: ${r.join(", ")}`}return}if(m.includes("Lookup")){if(!f)throw new Error("Lookup types are not supported for validation");const t=m.endsWith("[]");if(t!==Array.isArray(e))return d;const n=m.replace("[]","");return(t?e:[e]).every(e=>"RowLookup"===n?(0,r.isObject)(e):"ValueLookup"===n?"function"!=typeof e&&"symbol"!=typeof e:"TableLookup"===n?"string"==typeof e:(0,r.isObject)(e)&&"string"==typeof(0,o.safeGetProperty)(e,"table")&&"string"==typeof(0,o.safeGetProperty)(e,"column")&&(0,o.safeGetKeys)(e).every(e=>"table"===e||"column"===e))?void f.push({schema:y,value:e,path:s}):d}const{validator:t}=((e,t)=>{const n=(e=>{if("string"==typeof e&&e.endsWith("[]")){const t=e.slice(0,-2);if(!(0,i.includes)(l,t))throw new Error(`Invalid array field type ${e}`);return t}})(e);if(n){const e=a[n];return{isArray:!0,validator:n=>Array.isArray(n)&&n.every(n=>e(n,t))}}const r=a[e];if(!r)throw new Error(`Unknown field type ${e}`);return{isArray:!1,validator:r}})(m,y);return t(e,y)?void 0:d}if(y.tuple){const t=y.tuple;if(!Array.isArray(e))return d+`[${t.map(e=>u(e)).join(", ")}]`;if(e.length!==t.length)return`${s.length?s.join("."):"value"} is of invalid tuple length. Expecting ${t.length} elements but got ${e.length}`;for(let n=0;n<t.length;n++){const r=c(e[n],t[n],[...s,`${n}`],p,f);if(void 0!==r)return r}return}if(y.enum){const t=[];return y.nullable&&t.push(null),y.optional&&t.push(void 0),y.enum.includes(e)?void 0:d}const O=y.arrayOf??(y.arrayOfType?{type:y.arrayOfType}:void 0);if(O){if(!Array.isArray(e))return d+" an array";const t=e.map((e,t)=>c(e,O,[...s,`${t}`],p,f)).filter(r.isDefined)[0];return void 0!==t?`${d}. Error at index ${s.length>0?s.join(".")+".":""}\n\n${t}`:void 0}const v=y.oneOf??y.oneOfType?.map(e=>({type:e}));if(v){if(!v.length)return d+"to not be empty";let t;if(v.find(n=>{const r=f?.length,i=c(e,n,s,p,f);return void 0!==i&&void 0!==r&&(f.length=r),t??(t=i),void 0===i}))return;return d}if(y.record){const{keysEnum:t,partial:n,values:i}=y.record;if(!(0,r.isObject)(e))return d+"object";if(n&&(0,r.isEmpty)(e))return;const a=(0,r.getKeys)(e),l=n?void 0:t?.find(e=>!a.includes(e));if(void 0!==l)return`${d} to have key ${l}`;const u=t&&a.filter(e=>!t.includes(e));if(u?.length)return`${d} has extra keys: ${u}`;if(i)for(const t of(0,o.safeGetKeys)(e)){const n=(0,o.safeGetProperty)(e,t),r=c(n,i,[...s,t],p,f);if(void 0!==r)return`${r}`}return}return`Could not validate field type. Some logic might be missing: ${JSON.stringify(y)}`},u=e=>{const n=(0,t.getFieldTypeObj)(e),{type:i,nullable:o,optional:s,record:a}=n,l=n.oneOf??n.oneOfType?.map(e=>({type:e})),c=[];if(o&&c.push("null"),s&&c.push("undefined"),"string"==typeof i)c.push(i);else if(i&&(0,r.isObject)(i)){const e=[];Object.entries(i).forEach(([t,n])=>{e.push(`${t}: ${u(n)}`)}),c.push(`{ ${e.join("; ")} }`)}if(n.enum?.forEach(e=>{null===e?c.push("null"):void 0===e?c.push("undefined"):"string"==typeof e?c.push(JSON.stringify(e)):c.push(e)}),l?.forEach(e=>{const t=u(e);c.push(t)}),a){const{keysEnum:e,partial:t,values:n}=a,r=t?"?":"",i=n?u(n):"any";e?c.push(`{ [${e.join(" | ")}]${r}: ${i} }`):c.push(`{ [key: string]${r}: ${i} }`)}return c.join(" | ")};t.getJSONBObjectSchemaValidationError=(e,t,n="input",i=!1,o)=>{if(void 0===t&&!i)return{error:`Expecting ${n} to be defined`};if(!(0,r.isObject)(t))return{error:`Expecting ${n} to be an object`};const s=c(t,{type:e},[],o);return s?{error:s}:{data:t}},t.getJSONBSchemaValidationError=(e,t,n)=>{const r=c(t,e,void 0,n);return r?{error:r}:{data:t}};const p=(e,t)=>[...e,...void 0===t?[]:[String(t)]].join(".")||"value",f=(e,t)=>{if(!(0,o.safeHasOwn)(e,t))return;const n=(0,o.safeGetProperty)(e,t);return(0,r.isObject)(n)?n:void 0},d=async(e,t)=>{const{schema:n,path:r}=e,i=n.type.endsWith("[]"),o=i?e.value:[e.value];for(const[e,s]of o.entries()){const o=p(r,i?e:void 0);if("TableLookup"===n.type||"TableLookup[]"===n.type){if(!f(t,s))return`${o} references an unknown table ${JSON.stringify(s)}`;continue}if("ColumnLookup"===n.type||"ColumnLookup[]"===n.type){const e=s;if(n.filter?.table&&e.table!==n.filter.table)return`${o} references a column that does not match the lookup filter`;const r=f(t,e.table);if(!r)return`${o} references an unknown table ${JSON.stringify(e.table)}`;if("function"!=typeof r.getColumns)throw new Error(`Cannot validate ColumnLookup: table ${JSON.stringify(e.table)} does not expose getColumns`);const i=(await r.getColumns()).find(({name:t})=>t===e.column);if(!i||n.filter?.tsDataType&&i.tsDataType!==n.filter.tsDataType||n.filter?.udt_name&&i.udt_name!==n.filter.udt_name)return`${o} references an unknown or disallowed column ${JSON.stringify(`${e.table}.${e.column}`)}`;continue}const a=n,l=f(t,a.table);if(!l)throw new Error(`Cannot validate ${a.type}: table ${JSON.stringify(a.table)} does not expose findOne`);const c="RowLookup"===a.type||"RowLookup[]"===a.type?s:{[a.column]:s},u=a.filter?{$and:[a.filter,c]}:c;if(void 0===await(l?.findOne?.(u)))return`${o} does not reference an existing row in ${JSON.stringify(a.table)}`}};t.getJSONBSchemaValidationErrorAsync=async(e,t,n,r)=>{const i=[],o=c(t,e,void 0,r,i);if(o)return{error:o};for(const e of i){const t=await d(e,n);if(t)return{error:t}}return{data:t}},t.validateJSONBObjectAgainstSchema=(e,n,r,i=!1)=>{const{error:o}=(0,t.getJSONBObjectSchemaValidationError)(e,n,r,i);return void 0===o},t.assertJSONBObjectAgainstSchema=(e,n,r,i=!1)=>{const{error:o}=(0,t.getJSONBObjectSchemaValidationError)(e,n,r,i);if(o)throw new Error(o)}},699(e,t,n){Object.defineProperty(t,"__esModule",{value:!0}),t.getJSONSchemaObject=void 0,t.getJSONBSchemaAsJSONSchema=function(e,n,r){return(0,t.getJSONSchemaObject)(r,{id:`${e}.${n}`})};const r=n(472),i=n(704),o=e=>{if(!e)return;const t=e.endsWith("[]")?e.slice(0,-2):e;return{type:"integer"===t?"integer":"boolean"===t?"boolean":"number"===t?"number":"any"===t||"unknown"===t||t.endsWith("Lookup")||"Uint8Array"===t||"Blob"===t||"FileLike"===t?void 0:"string",isArray:e.endsWith("[]")}};t.getJSONSchemaObject=(e,n)=>{const{type:s,arrayOf:a,arrayOfType:l,description:c,nullable:u,oneOf:p,oneOfType:f,title:d,record:y,tuple:m,...g}="string"==typeof e?{type:e}:e;let h={};const b={...(g.enum||g.allowedValues?.length&&("string"!=typeof s||!s.endsWith("[]")))&&{enum:g.allowedValues?.slice(0)??g.enum.slice(0)},...!!c&&{description:c},...!!d&&{title:d}};if(g.enum?.length){const e=typeof g.enum[0];b.type="number"===e?"number":"boolean"===e?"boolean":"string"}if("string"==typeof s||a||l){if(s&&"string"!=typeof s)throw"Not expected";h=a||l||s?.endsWith("[]")?{type:"array",items:a||l?(0,t.getJSONSchemaObject)(a||{type:l}):s?.startsWith("any")?{type:void 0}:{type:o(s)?.type,...g.allowedValues&&{enum:g.allowedValues.slice(0)}}}:{type:o(s)?.type}}else if((0,r.isObject)(s))h={type:"object",required:(0,i.safeGetKeys)(s).filter(e=>{const t=s[e];return"string"==typeof t||!t.optional}),properties:(0,r.getObjectEntries)(s).reduce((e,[n,r])=>({...e,[n]:(0,t.getJSONSchemaObject)(r)}),{})};else if(m)h={type:"array",items:m.map(e=>(0,t.getJSONSchemaObject)(e)),additionalItems:!1,minItems:m.length,maxItems:m.length};else if(p||f){const e=p||f.map(e=>({type:e}));h={oneOf:e.map(e=>(0,t.getJSONSchemaObject)(e))}}else y&&(h={type:"object",...y.values&&!y.keysEnum&&{additionalProperties:(0,t.getJSONSchemaObject)(y.values)},...y.keysEnum&&{properties:y.keysEnum.reduce((e,n)=>({...e,[n]:y.values?(0,t.getJSONSchemaObject)(y.values):{type:{}}}),{})}});if(u){const e={type:"null"};h.oneOf?h.oneOf.push(e):h.enum&&!h.enum.includes(null)?h.enum.push(null):h={oneOf:[h,e]}}return{...n?{$id:n?.id,$schema:"https://json-schema.org/draft/2020-12/schema"}:void 0,...b,...h}}},394(e,t,n){Object.defineProperty(t,"__esModule",{value:!0}),t.getJSONBTSTypes=void 0,t.getJSONBSchemaTSTypes=function(e,n,r="",i){return(0,t.getJSONBTSTypes)(i,{...e,nullable:n.nullable},void 0,r)};const r=n(806),i=n(897),o=e=>null===e?"null":void 0===e?"undefined":"string"==typeof e?JSON.stringify(e):String(e);t.getJSONBTSTypes=(e,n,a=!1,l="",c=0)=>{const u=(0,i.getFieldTypeObj)(n),p=u.nullable?"null | ":"";if("string"==typeof u.type&&u.type.includes("Lookup"))return((e,t)=>{const n=t.nullable?"null | ":"",i=t.type.endsWith("[]")?"[]":"";if("TableLookup"===t.type||"TableLookup[]"===t.type)return`${n}string${i}`;if("ColumnLookup"===t.type||"ColumnLookup[]"===t.type)return`${n}{ "table": string; "column": string; }${i}`;const o=t,s=e.find(e=>e.name===o.table)?.columns;if("ValueLookup"===t.type||"ValueLookup[]"===t.type){const e=t,o=s?.find(t=>t.name===e.column)?.udt_name;return`${n}${(0,r.postgresToTsType)(o??"text")}${i}`}return`${n}${s?`{ ${s.map(e=>`${JSON.stringify(e.name)}: ${e.is_nullable?"null | ":""} ${(0,r.postgresToTsType)(e.udt_name)}; `).join(" ")} }`:"any"}${i}`})(e,u);if("string"==typeof u.type){const e=u.type.replace("integer","number").replace("time","string").replace("timestamp","string").replace("FileLike","{ name: string; type: string; data: Blob; }").replace("Date","string");if(u.allowedValues){const e=u.type.endsWith("[]")?"[]":"";return p+` (${u.allowedValues.map(e=>JSON.stringify((0,r.isObject)(e)?e.value:e)).join(" | ")})${e}`}return p+e}if((0,r.isObject)(u.type)){const n=e=>e.trim().endsWith(";")?e:e.trim()+";",{type:o}=u,l=a?" ":" ";let f=` {${l}`+(0,r.getObjectEntries)(o).map(([r,o])=>{const a=(0,i.getFieldTypeObj)(o),u=s(r)?r:JSON.stringify(r);return`${l}${u}${a.optional?"?":""}: `+n((0,t.getJSONBTSTypes)(e,a,!0,void 0,c+1))}).join(" ")+`${l}}`;return a||(f=n(f)),a&&(f=f.split("\n").join("")),p+f}if(u.enum)return p+u.enum.map(e=>o(e)).join(" | ");if(u.tuple)return`${p}[${u.tuple.map(n=>(0,t.getJSONBTSTypes)(e,n,!0,void 0,c+1)).join(", ")}]`;if(u.oneOf||u.oneOfType){const n=u.oneOf||u.oneOfType.map(e=>({type:e}));return(u.nullable?`\n${l} | null`:"")+n.map(n=>`\n${l} | `+(0,t.getJSONBTSTypes)(e,n,!0,void 0,c+1)).join("")}if(u.arrayOf||u.arrayOfType){const n=u.arrayOf||{type:u.arrayOfType};return`${u.nullable?"null | ":""} ( ${(0,t.getJSONBTSTypes)(e,n,!0,void 0,c+1)} )[]`}if(u.record){const{keysEnum:n,values:r,partial:i}=u.record,s=e=>i?`Partial<Record<${e}>>`:`Record<${e}>`;return`${u.nullable?"null |":""} ${s(`${n?.map(e=>o(e)).join(" | ")??"string"}, ${r?(0,t.getJSONBTSTypes)(e,r,!0,void 0,c+1):"any"}`)}`}throw"Unexpected getSchemaTSTypes: "+JSON.stringify({fieldType:u},null,2)};const s=e=>/^[A-Za-z$_][A-Za-z0-9$_]*$/.test(e)},704(e,t){t.safeGetKeys=t.safeGetProperty=t.safeHasOwn=void 0;const n=["__proto__","constructor","prototype"];t.safeHasOwn=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),t.safeGetProperty=(e,t)=>{if(n.includes(t)){const n=Object.getOwnPropertyDescriptor(e,t);return n?.value}return e[t]},t.safeGetKeys=e=>{const r=Object.keys(e);for(const i of n)(0,t.safeHasOwn)(e,i)&&!r.includes(i)&&r.push(i);return r}},502(e,t,n){Object.defineProperty(t,"__esModule",{value:!0}),t.WAL=void 0;const r=n(806);t.WAL=class{constructor(e){if(this.changed={},this.sending={},this.sentHistory={},this.callbacks=[],this.sort=(e,t)=>{const{orderBy:n}=this.options;return n&&e&&t&&n.map(n=>{if(!(n.fieldName in e)||!(n.fieldName in t))throw"Replication error: \n some orderBy fields missing from data";let r=n.asc?e[n.fieldName]:t[n.fieldName],i=n.asc?t[n.fieldName]:e[n.fieldName],o=+r-+i,s=r<i?-1:r==i?0:1;return"number"===n.tsDataType&&Number.isFinite(o)?o:s}).find(e=>e)||0},this.isInHistory=e=>{if(!e)throw"Provide item";const t=e[this.options.synced_field];if(!Number.isFinite(+t))throw"Provided item Synced field value is missing/invalid ";const n=this.sentHistory[this.getIdStr(e)],r=n?.[this.options.synced_field];if(n){if(!Number.isFinite(+r))throw"Provided historic item Synced field value is missing/invalid";if(+r===+t)return!0}return!1},this.addData=e=>((0,r.isEmpty)(this.changed)&&this.options.onSendStart&&this.options.onSendStart(),e.forEach(e=>{var t;const{initial:n,current:r,delta:i}={...e};if(!r)throw"Expecting { current: object, initial?: object }";const o=this.getIdStr(r);this.changed??(this.changed={}),(t=this.changed)[o]??(t[o]={initial:n,current:r,delta:i}),this.changed[o].current={...this.changed[o].current,...r},this.changed[o].delta={...this.changed[o].delta,...i}}),this.sendItems()),this.isOnSending=!1,this.isSendingTimeout=void 0,this.willDeleteHistory=void 0,this.sendItems=async()=>{const{DEBUG_MODE:e,onSend:t,onSendEnd:n,batch_size:i,throttle:o,historyAgeSeconds:s=2}=this.options;if(this.isSendingTimeout||this.sending&&!(0,r.isEmpty)(this.sending))return;if(!this.changed||(0,r.isEmpty)(this.changed))return;let a,l=[],c=[],u={};Object.keys(this.changed).sort((e,t)=>this.sort(this.changed[e].current,this.changed[t].current)).slice(0,i).map(e=>{let t={...this.changed[e]};this.sending[e]={...t},c.push({...t}),u[e]={...t.current},delete this.changed[e]}),l=c.map(e=>{let t={};return Object.keys(e.current).map(n=>{const i=e.initial?.[n],o=e.current[n];![this.options.synced_field,...this.options.id_fields].includes(n)&&(0,r.isEqual)(i,o)||(t[n]=o)}),t}),e&&console.log(this.options.id," SENDING lr->",l[l.length-1]),this.isSendingTimeout||(this.isSendingTimeout=setTimeout(()=>{this.isSendingTimeout=void 0,(0,r.isEmpty)(this.changed)||this.sendItems()},o)),this.isOnSending=!0;try{await t(l,c),s&&(this.sentHistory={...this.sentHistory,...u},this.willDeleteHistory||(this.willDeleteHistory=setTimeout(()=>{this.willDeleteHistory=void 0,this.sentHistory={}},1e3*s)))}catch(e){a=e,console.error("WAL onSend failed:",e,l,c)}if(this.isOnSending=!1,this.callbacks.length){const e=Object.keys(this.sending);this.callbacks.forEach((t,n)=>{t.idStrs=t.idStrs.filter(t=>e.includes(t)),t.idStrs.length||t.cb(a)}),this.callbacks=this.callbacks.filter(e=>e.idStrs.length)}this.sending={},e&&console.log(this.options.id," SENT lr->",l[l.length-1]),(0,r.isEmpty)(this.changed)?n&&n(l,c,a):this.sendItems()},this.options={...e},!this.options.orderBy){const{synced_field:t,id_fields:n}=e;this.options.orderBy=[t,...n.sort()].map(e=>({fieldName:e,tsDataType:e===t?"number":"string",asc:!0}))}}isSending(){const e=this.isOnSending||!((0,r.isEmpty)(this.sending)&&(0,r.isEmpty)(this.changed));return this.options.DEBUG_MODE&&console.log(this.options.id," CHECKING isSending ->",e),e}getIdStr(e){return this.options.id_fields.sort().map(t=>String(e[t])).join(".")}getIdObj(e){let t={};return this.options.id_fields.sort().map(n=>{t[n]=e[n]}),t}getDeltaObj(e){let t={};return Object.keys(e).map(n=>{this.options.id_fields.includes(n)||(t[n]=e[n])}),t}}},618(e,t){Object.defineProperty(t,"__esModule",{value:!0})},521(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.CONTENT_TYPE_TO_EXT=void 0,t.CONTENT_TYPE_TO_EXT={"text/html":["html","htm","shtml"],"text/css":["css"],"text/csv":["csv"],"text/tsv":["tsv"],"text/xml":["xml"],"text/mathml":["mml"],"text/plain":["txt"],"text/vnd.sun.j2me.app-descriptor":["jad"],"text/vnd.wap.wml":["wml"],"text/x-component":["htc"],"image/gif":["gif"],"image/jpeg":["jpeg","jpg"],"image/png":["png"],"image/tiff":["tif","tiff"],"image/vnd.wap.wbmp":["wbmp"],"image/x-icon":["ico"],"image/x-jng":["jng"],"image/x-ms-bmp":["bmp"],"image/svg+xml":["svg"],"image/webp":["webp"],"application/sql":["sql"],"application/x-javascript":["js"],"application/atom+xml":["atom"],"application/rss+xml":["rss"],"application/java-archive":["jar","war","ear"],"application/mac-binhex40":["hqx"],"application/msword":["doc","docx"],"application/pdf":["pdf"],"application/postscript":["ps","eps","ai"],"application/rtf":["rtf"],"application/vnd.ms-excel":["xls","xlsx"],"application/vnd.ms-powerpoint":["ppt","pptx"],"application/vnd.wap.wmlc":["wmlc"],"application/vnd.google-earth.kml+xml":["kml"],"application/vnd.google-earth.kmz":["kmz"],"application/x-7z-compressed":["7z"],"application/x-cocoa":["cco"],"application/x-java-archive-diff":["jardiff"],"application/x-java-jnlp-file":["jnlp"],"application/x-makeself":["run"],"application/x-perl":["pl","pm"],"application/x-pilot":["prc","pdb"],"application/x-rar-compressed":["rar"],"application/x-redhat-package-manager":["rpm"],"application/x-sea":["sea"],"application/x-shockwave-flash":["swf"],"application/x-stuffit":["sit"],"application/x-tcl":["tcl","tk"],"application/x-x509-ca-cert":["der","pem","crt"],"application/x-xpinstall":["xpi"],"application/xhtml+xml":["xhtml"],"application/zip":["zip"],"application/octet-stream":["bin","exe","dll","deb","dmg","eot","iso","img","msi","msp","msm"],"audio/midi":["mid","midi","kar"],"audio/mpeg":["mp3"],"audio/ogg":["ogg"],"audio/x-realaudio":["ra"],"video/3gpp":["3gpp","3gp"],"video/mpeg":["mpeg","mpg"],"video/quicktime":["mov"],"video/x-flv":["flv"],"video/x-mng":["mng"],"video/x-ms-asf":["asx","asf"],"video/x-ms-wmv":["wmv"],"video/x-msvideo":["avi"],"video/mp4":["m4v","mp4"],"video/webm":["webm"]}},209(e,t,n){Object.defineProperty(t,"__esModule",{value:!0}),t.COMPLEX_FILTER_KEY=t.ComplexFilterComparisonKeys=t.EXISTS_KEYS=t.GeomFilter_Funcs=t.GeomFilterKeys=t.ArrayFilterOperands=t.TextFilter_FullTextSearchFilterKeys=t.TextFilterFTSKeys=t.TextFilterKeys=t.JsonbFilterKeys=t.JsonbOperands=t.BetweenFilterKeys=t.CompareInFilterKeys=t.CompareFilterKeys=void 0;const r=n(472);t.CompareFilterKeys=["=","<>",">","<",">=","<=","$eq","$ne","$gt","$gte","$lt","$lte","$isDistinctFrom","$isNotDistinctFrom"],t.CompareInFilterKeys=["$in","$nin"],t.BetweenFilterKeys=["$between","$notBetween"],t.JsonbOperands={"@>":{Operator:"@>","Right Operand Type":"jsonb",Description:"Does the left JSON value contain the right JSON path/value entries at the top level?",Example:'\'{"a":1, "b":2}\'::jsonb @> \'{"b":2}\'::jsonb'},"<@":{Operator:"<@","Right Operand Type":"jsonb",Description:"Are the left JSON path/value entries contained at the top level within the right JSON value?",Example:'\'{"b":2}\'::jsonb <@ \'{"a":1, "b":2}\'::jsonb'},"?":{Operator:"?","Right Operand Type":"text",Description:"Does the string exist as a top-level key within the JSON value?",Example:"'{\"a\":1, \"b\":2}'::jsonb ? 'b'"},"?|":{Operator:"?|","Right Operand Type":"text[]",Description:"Do any of these array strings exist as top-level keys?",Example:"'{\"a\":1, \"b\":2, \"c\":3}'::jsonb ?| array['b', 'c']"},"?&":{Operator:"?&","Right Operand Type":"text[]",Description:"Do all of these array strings exist as top-level keys?",Example:"'[\"a\", \"b\"]'::jsonb ?& array['a', 'b']"},"||":{Operator:"||","Right Operand Type":"jsonb",Description:"Concatenate two jsonb values into a new jsonb value",Example:'\'["a", "b"]\'::jsonb || \'["c", "d"]\'::jsonb'},"-":{Operator:"-","Right Operand Type":"integer",Description:"Delete the array element with specified index (Negative integers count from the end). Throws an error if top level container is not an array.",Example:'\'["a", "b"]\'::jsonb - 1'},"#-":{Operator:"#-","Right Operand Type":"text[]",Description:"Delete the field or element with specified path (for JSON arrays, negative integers count from the end)",Example:"'[\"a\", {\"b\":1}]'::jsonb #- '{1,b}'"},"@?":{Operator:"@?","Right Operand Type":"jsonpath",Description:"Does JSON path return any item for the specified JSON value?",Example:"'{\"a\":[1,2,3,4,5]}'::jsonb @? '$.a[*] ? (@ > 2)'"},"@@":{Operator:"@@","Right Operand Type":"jsonpath",Description:"Returns the result of JSON path predicate check for the specified JSON value. Only the first item of the result is taken into account. If the result is not Boolean, then null is returned.",Example:"'{\"a\":[1,2,3,4,5]}'::jsonb @@ '$.a[*] > 2'"}},t.JsonbFilterKeys=(0,r.getKeys)(t.JsonbOperands),t.TextFilterKeys=["$ilike","$like","$nilike","$nlike"],t.TextFilterFTSKeys=["@@","@>","<@","$contains","$containedBy"],t.TextFilter_FullTextSearchFilterKeys=["to_tsquery","plainto_tsquery","phraseto_tsquery","websearch_to_tsquery"],t.ArrayFilterOperands=["@>","<@","=","$eq","$contains","$containedBy","&&","$overlaps"],t.GeomFilterKeys=["~","~=","@","|&>","|>>",">>","=","<<|","<<","&>","&<|","&<","&&&","&&"],t.GeomFilter_Funcs=["ST_MakeEnvelope","st_makeenvelope","ST_MakePolygon","st_makepolygon"],t.EXISTS_KEYS=["$exists","$notExists","$existsJoined","$notExistsJoined"],t.ComplexFilterComparisonKeys=[...t.TextFilterKeys,...t.JsonbFilterKeys,...t.CompareFilterKeys,...t.BetweenFilterKeys,...t.CompareInFilterKeys],t.COMPLEX_FILTER_KEY="$filter"},806(e,t,n){var r=this&&this.__createBinding||(Object.create?function(e,t,n,r){void 0===r&&(r=n);var i=Object.getOwnPropertyDescriptor(t,n);i&&!("get"in i?!t.__esModule:i.writable||i.configurable)||(i={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,r,i)}:function(e,t,n,r){void 0===r&&(r=n),e[r]=t[n]}),i=this&&this.__exportStar||function(e,t){for(var n in e)"default"===n||Object.prototype.hasOwnProperty.call(t,n)||r(t,e,n)};Object.defineProperty(t,"__esModule",{value:!0}),t.ABORTABLE_METHODS=t.CONTENT_TYPE_TO_EXT=t.getPossibleNestedInsert=t.SQL_COMMAND_TABLE_METHODS=t.CHANNELS=t.CHANNEL_PREFIX=t.JOIN_PARAMS=t.JOIN_KEYS=t.getAllowedTableMethods=t.postgresToTsType=t.TS_PG_Types=t._PG_bytes=t._PG_geometric=t._PG_postgis=t._PG_interval=t._PG_date=t._PG_bool=t._PG_json=t._PG_numbers=t._PG_numbers_str=t._PG_numbers_num=t._PG_strings=void 0;const o=n(472),s=n(441);t._PG_strings=["bpchar","char","varchar","text","citext","uuid","time","timetz","interval","name","cidr","inet","macaddr","macaddr8","int4range","int8range","numrange","tsvector"],t._PG_numbers_num=["int2","int4","float4","float8","oid"],t._PG_numbers_str=["int8","numeric","money"],t._PG_numbers=[...t._PG_numbers_num,...t._PG_numbers_str],t._PG_json=["json","jsonb"],t._PG_bool=["bool"],t._PG_date=["date","timestamp","timestamptz"],t._PG_interval=["interval"],t._PG_postgis=["geometry","geography"],t._PG_geometric=["point","line","lseg","box","path","polygon","circle"],t._PG_bytes=["bytea"];const a={Uint8Array:t._PG_bytes,string:[...t._PG_strings,...t._PG_numbers_str,...t._PG_date,...t._PG_geometric,...t._PG_postgis,"lseg"],number:t._PG_numbers_num,boolean:t._PG_bool,any:[...t._PG_json,...t._PG_interval]};t.TS_PG_Types={...a,"number[]":a.number.map(e=>`_${e}`),"boolean[]":a.boolean.map(e=>`_${e}`),"string[]":a.string.map(e=>`_${e}`),"any[]":a.any.map(e=>`_${e}`)},t.postgresToTsType=e=>(0,o.getKeys)(t.TS_PG_Types).find(n=>(0,s.includes)(t.TS_PG_Types[n],e))??"any",t.getAllowedTableMethods=({publishInfo:e})=>{let n=[...e.select||e.insert||e.delete||e.update?t.SQL_COMMAND_TABLE_METHODS.schema:[],...t.SQL_COMMAND_TABLE_METHODS.select.filter(t=>"sync"===t?void 0!==e.select?.syncConfig:e.select&&!Object.keys(e.select.disabledMethods??{}).includes(t)),...t.SQL_COMMAND_TABLE_METHODS.update.filter(t=>e.update&&!Object.keys(e.update.disabledMethods??{}).includes(t)),...e.insert?t.SQL_COMMAND_TABLE_METHODS.insert:[],...e.delete?t.SQL_COMMAND_TABLE_METHODS.delete:[]];const r=new Map;return Object.values(t.SQL_COMMAND_TABLE_METHODS).forEach(e=>{e.forEach(e=>{r.set(e,(r.get(e)??0)+1)})}),r.forEach((e,t)=>{n.filter(e=>e===t).length!==e&&r.delete(t)}),Array.from(r.keys())},t.JOIN_KEYS=["$innerJoin","$leftJoin"],t.JOIN_PARAMS=["select","filter","$path","$condition","offset","limit","orderBy"],t.CHANNEL_PREFIX="_psqlWS_.",t.CHANNELS={SCHEMA_CHANGED:t.CHANNEL_PREFIX+"schema-changed",SCHEMA:t.CHANNEL_PREFIX+"schema",DEFAULT:t.CHANNEL_PREFIX,SQL:`${t.CHANNEL_PREFIX}sql`,SQL_STREAM:`${t.CHANNEL_PREFIX}sql-stream`,METHOD:`${t.CHANNEL_PREFIX}method`,NOTICE_EV:`${t.CHANNEL_PREFIX}notice`,LISTEN_EV:`${t.CHANNEL_PREFIX}listen`,REGISTER:`${t.CHANNEL_PREFIX}register`,LOGIN:`${t.CHANNEL_PREFIX}login`,LOGOUT:`${t.CHANNEL_PREFIX}logout`,AUTH_GUARD:`${t.CHANNEL_PREFIX}authguard`,CONNECTION:`${t.CHANNEL_PREFIX}connection`,_preffix:t.CHANNEL_PREFIX},t.SQL_COMMAND_TABLE_METHODS={schema:["getColumns","getInfo"],insert:["insert","insertMany","upsert"],update:["update","upsert","updateBatch"],select:["findOne","find","count","size","subscribe","subscribeOne","sync"],delete:["delete","remove"]},t.getPossibleNestedInsert=(e,t,n=!0)=>{const r=(e.references??[]).map(e=>{const{ftable:n,fcols:r}=e,i=t.find(e=>e.name===n);if(!i)return;const o=i.columns.filter(e=>r.includes(e.name));return o.length?{ref:e,fcolsInfo:o}:void 0}).filter(o.isDefined),[i,...s]=r??[];if(!s.length)return i?.ref;const[a,...l]=r.filter(e=>e.fcolsInfo.some(e=>e.is_pkey));if(!l.length)return a?.ref;if(!n)throw["Cannot do a nested insert on column that references multiple tables.","Expecting only one reference to a single primary key fcol"].join("\n")},i(n(618),t);var l=n(521);Object.defineProperty(t,"CONTENT_TYPE_TO_EXT",{enumerable:!0,get:function(){return l.CONTENT_TYPE_TO_EXT}}),i(n(209),t),i(n(319),t),i(n(699),t),i(n(394),t),i(n(994),t),i(n(897),t),i(n(164),t),i(n(472),t),i(n(502),t),i(n(778),t),t.ABORTABLE_METHODS=["find","findOne","count","size"]},319(e,t,n){Object.defineProperty(t,"__esModule",{value:!0}),t.leftJoin=t.innerJoin=void 0;const r=n(472),i=(e="$leftJoin")=>(t,n,i,o={})=>({[e]:o.path??t,filter:n,...(0,r.omitKeys)(o,["path","select"]),select:i});t.innerJoin=i("$innerJoin"),t.leftJoin=i("$leftJoin")},666(e,t){function n(e,t){var n=e[0],r=e[1],l=e[2],c=e[3];n=i(n,r,l,c,t[0],7,-680876936),c=i(c,n,r,l,t[1],12,-389564586),l=i(l,c,n,r,t[2],17,606105819),r=i(r,l,c,n,t[3],22,-1044525330),n=i(n,r,l,c,t[4],7,-176418897),c=i(c,n,r,l,t[5],12,1200080426),l=i(l,c,n,r,t[6],17,-1473231341),r=i(r,l,c,n,t[7],22,-45705983),n=i(n,r,l,c,t[8],7,1770035416),c=i(c,n,r,l,t[9],12,-1958414417),l=i(l,c,n,r,t[10],17,-42063),r=i(r,l,c,n,t[11],22,-1990404162),n=i(n,r,l,c,t[12],7,1804603682),c=i(c,n,r,l,t[13],12,-40341101),l=i(l,c,n,r,t[14],17,-1502002290),n=o(n,r=i(r,l,c,n,t[15],22,1236535329),l,c,t[1],5,-165796510),c=o(c,n,r,l,t[6],9,-1069501632),l=o(l,c,n,r,t[11],14,643717713),r=o(r,l,c,n,t[0],20,-373897302),n=o(n,r,l,c,t[5],5,-701558691),c=o(c,n,r,l,t[10],9,38016083),l=o(l,c,n,r,t[15],14,-660478335),r=o(r,l,c,n,t[4],20,-405537848),n=o(n,r,l,c,t[9],5,568446438),c=o(c,n,r,l,t[14],9,-1019803690),l=o(l,c,n,r,t[3],14,-187363961),r=o(r,l,c,n,t[8],20,1163531501),n=o(n,r,l,c,t[13],5,-1444681467),c=o(c,n,r,l,t[2],9,-51403784),l=o(l,c,n,r,t[7],14,1735328473),n=s(n,r=o(r,l,c,n,t[12],20,-1926607734),l,c,t[5],4,-378558),c=s(c,n,r,l,t[8],11,-2022574463),l=s(l,c,n,r,t[11],16,1839030562),r=s(r,l,c,n,t[14],23,-35309556),n=s(n,r,l,c,t[1],4,-1530992060),c=s(c,n,r,l,t[4],11,1272893353),l=s(l,c,n,r,t[7],16,-155497632),r=s(r,l,c,n,t[10],23,-1094730640),n=s(n,r,l,c,t[13],4,681279174),c=s(c,n,r,l,t[0],11,-358537222),l=s(l,c,n,r,t[3],16,-722521979),r=s(r,l,c,n,t[6],23,76029189),n=s(n,r,l,c,t[9],4,-640364487),c=s(c,n,r,l,t[12],11,-421815835),l=s(l,c,n,r,t[15],16,530742520),n=a(n,r=s(r,l,c,n,t[2],23,-995338651),l,c,t[0],6,-198630844),c=a(c,n,r,l,t[7],10,1126891415),l=a(l,c,n,r,t[14],15,-1416354905),r=a(r,l,c,n,t[5],21,-57434055),n=a(n,r,l,c,t[12],6,1700485571),c=a(c,n,r,l,t[3],10,-1894986606),l=a(l,c,n,r,t[10],15,-1051523),r=a(r,l,c,n,t[1],21,-2054922799),n=a(n,r,l,c,t[8],6,1873313359),c=a(c,n,r,l,t[15],10,-30611744),l=a(l,c,n,r,t[6],15,-1560198380),r=a(r,l,c,n,t[13],21,1309151649),n=a(n,r,l,c,t[4],6,-145523070),c=a(c,n,r,l,t[11],10,-1120210379),l=a(l,c,n,r,t[2],15,718787259),r=a(r,l,c,n,t[9],21,-343485551),e[0]=f(n,e[0]),e[1]=f(r,e[1]),e[2]=f(l,e[2]),e[3]=f(c,e[3])}function r(e,t,n,r,i,o){return t=f(f(t,e),f(r,o)),f(t<<i|t>>>32-i,n)}function i(e,t,n,i,o,s,a){return r(t&n|~t&i,e,t,o,s,a)}function o(e,t,n,i,o,s,a){return r(t&i|n&~i,e,t,o,s,a)}function s(e,t,n,i,o,s,a){return r(t^n^i,e,t,o,s,a)}function a(e,t,n,i,o,s,a){return r(n^(t|~i),e,t,o,s,a)}function l(e){var t,n=[];for(t=0;t<64;t+=4)n[t>>2]=e.charCodeAt(t)+(e.charCodeAt(t+1)<<8)+(e.charCodeAt(t+2)<<16)+(e.charCodeAt(t+3)<<24);return n}t.md5=p;var c="0123456789abcdef".split("");function u(e){for(var t="",n=0;n<4;n++)t+=c[e>>8*n+4&15]+c[e>>8*n&15];return t}function p(e){return function(e){for(var t=0;t<e.length;t++)e[t]=u(e[t]);return e.join("")}(function(e){var t,r=e.length,i=[1732584193,-271733879,-1732584194,271733878];for(t=64;t<=e.length;t+=64)n(i,l(e.substring(t-64,t)));e=e.substring(t-64);var o=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];for(t=0;t<e.length;t++)o[t>>2]|=e.charCodeAt(t)<<(t%4<<3);if(o[t>>2]|=128<<(t%4<<3),t>55)for(n(i,o),t=0;t<16;t++)o[t]=0;return o[14]=8*r,n(i,o),i}(e))}function f(e,t){return e+t&4294967295}p("hello")},164(e,t,n){Object.defineProperty(t,"__esModule",{value:!0}),t.ReplicationProtocol=t.getSyncChannelName=void 0;const r=n(806);var i;t.getSyncChannelName=({tableName:e,filter:t={},select:n="*"})=>[r.CHANNEL_PREFIX,e,"sync",(0,r.stableStringify)(t),"string"==typeof n?n:(0,r.stableStringify)(n)].join("."),function(e){e.CreateSchema={name:"Create",source:"client",request:{type:{tableName:"string",command:{enum:["sync"]},param1:{record:{values:"unknown"}},param2:{type:{select:"unknown"}}}},response:{type:{id_fields:"string[]",synced_field:"string",channelName:"string",data:"any[]",isSynced:"boolean"}}};const t={state:{enum:["syncing"]},c_fr:{optional:!0,record:{values:"unknown"}},c_lr:{optional:!0,record:{values:"unknown"}},c_count:"number"},n={state:{enum:["syncing-data"]},c_fr:{record:{values:"unknown"}},c_lr:{record:{values:"unknown"}},c_count:"number",data:{arrayOf:{record:{values:"unknown"}}}},i={from_synced:{oneOf:["string","number",{enum:[void 0]}]},to_synced:{oneOf:["string","number",{enum:[void 0]}]}};e.ServerSyncRequest={name:"ServerSyncRequest",source:"server",request:{type:{...i,end_offset:{oneOf:["number",{enum:[null]}]}}},response:{oneOfType:[t,n,{state:{enum:["error"]},err:"unknown"}]}},e.ClientSyncRequest={name:"ClientSyncRequest",source:"client",request:{oneOfType:[t,n]},response:{oneOfType:[{success:{enum:[!0]}},{success:{enum:[!1]},err:"unknown"}]}},e.PullRequest={name:"PullRequest",source:"server",request:{type:{...i,offset:{oneOf:["number",{enum:[void 0]}]},limit:{oneOf:["number",{enum:[void 0]}]}}},response:{oneOfType:[{success:{enum:[!0]},data:{arrayOf:{record:{values:"unknown"}}}},{success:{enum:[!1]},err:"unknown"}]}},e.UpdateRequest={name:"UpdateRequest",source:"server",request:{oneOfType:[{state:{enum:["error"]},err:"unknown"},{state:{enum:["synced"]},isSynced:"boolean"},{state:{enum:["syncing"]},data:{arrayOf:{record:{values:"unknown"}}}}]},response:{oneOfType:[{success:{enum:[!0]}},{success:{enum:[!1]},err:"unknown"}]}};const o={ClientSyncRequest:e.ClientSyncRequest,ServerSyncRequest:e.ServerSyncRequest,PullRequest:e.PullRequest,UpdateRequest:e.UpdateRequest},s=Object.values(o),a=(e,t,n,i)=>(t.removeAllListeners(e),t.on(e,async(e,t)=>{const{type:o,request:a}=(0,r.isObject)(e)?e:{};if("string"!=typeof o||!a)return void t("Unexpected data");const l=s.find(e=>e.name===o&&e.source!==n);if(!l)return void t("Invalid data.type");if(l.source===n)return void t("Invalid schema.source");if("server"===n){const e=(0,r.getJSONBSchemaValidationError)(l.request,a);if(void 0!==e.error)return console.error("Invalid request from client",e.error,a),void t(e.error)}const c=l.name;try{t(await(0,r.withTimeout)(Promise.resolve(i[c](a)),1e4))}catch(e){t((0,r.getSerialisableError)(e))}}),(0,r.fromEntries)((0,r.getEntries)(o).map(([i,o])=>{if(o.source===n)return[i,i=>(0,r.createPromiseWithTimeout)((s,a)=>{t.emit(e,{type:o.name,request:i},e=>{if("server"===n){const t=(0,r.getJSONBSchemaValidationError)(o.response,e);if(void 0!==t.error)return console.error("Invalid response from client for "+o.name,t.error,e),void a(t.error)}s(e)})},1e4)]}).filter(r.isDefined)));e.getServerHandlers=(e,t,n)=>a(e,t,"server",n),e.getClientHandlers=(e,t,n)=>a(e,t,"client",n)}(i||(t.ReplicationProtocol=i={}))},472(e,t,n){Object.defineProperty(t,"__esModule",{value:!0}),t.fromEntries=t.getEntries=t.createPromiseWithTimeout=t.withTimeout=t.getProperty=t.getSerialisableError=t.safeStringify=t.extractTypeUtil=t.reverseParsedPath=t.reverseJoinOn=t.tryCatch=t.getObjectEntries=t.isNotEmpty=t.pickKeys=void 0,t.asName=function(e){if(null==e||!e.toString||!e.toString())throw"Expecting a non empty string";return`"${e.toString().replace(/"/g,'""')}"`},t.omitKeys=i,t.filter=o,t.find=function(e,t){return o(e,t)[0]},t.stableStringify=function(e,t={}){t||(t={}),"function"==typeof t&&(t={cmp:t});var n,r="boolean"==typeof t.cycles&&t.cycles,i=t.cmp&&(n=t.cmp,function(e){return function(t,r){var i={key:t,value:e[t]},o={key:r,value:e[r]};return n(i,o)}}),o=[];return function e(t){if(t&&t.toJSON&&"function"==typeof t.toJSON&&(t=t.toJSON()),void 0!==t){if("number"==typeof t)return isFinite(t)?""+t:"null";if("object"!=typeof t)return JSON.stringify(t);var n,s;if(Array.isArray(t)){for(s="[",n=0;n<t.length;n++)n&&(s+=","),s+=e(t[n])||"null";return s+"]"}if(null===t)return"null";if(-1!==o.indexOf(t)){if(r)return JSON.stringify("__cycle__");throw new TypeError("Converting circular structure to JSON")}var a=o.push(t)-1,l=Object.keys(t).sort(i&&i(t));for(s="",n=0;n<l.length;n++){var c=l[n],u=e(t[c]);u&&(s&&(s+=","),s+=JSON.stringify(c)+":"+u)}return o.splice(a,1),"{"+s+"}"}}(e)},t.getTextPatch=function(e,t){if(!(e&&t&&e.trim().length&&t.trim().length))return t;if(e===t)return{from:0,to:0,text:"",md5:(0,r.md5)(t)};function n(n=1){let r=n<1?-1:0,i=!1;for(;!i&&Math.abs(r)<=t.length;){const o=n<1?[r]:[0,r];e.slice(...o)!==t.slice(...o)?i=!0:r+=1*Math.sign(n)}return r}let i=n()-1,o=e.length+n(-1)+1,s=t.length+n(-1)+1;return{from:i,to:o,text:t.slice(i,s),md5:(0,r.md5)(t)}},t.unpatchText=function(e,t){if(!t||"string"==typeof t)return t;const{from:n,to:i,text:o,md5:s}=t;if(null===o||null===e)return o;let a=e.slice(0,n)+o+e.slice(i);if(s&&(0,r.md5)(a)!==s)throw"Patch text error: Could not match md5 hash: (original/result) \n"+e+"\n"+a;return a},t.isEmpty=s,t.get=function(e,t){let n=t,r=e;return e?("string"==typeof n&&(n=n.split(".")),n.reduce((e,t)=>e&&e[t]?e[t]:void 0,r)):e},t.isObject=function(e){return Boolean(e&&"object"==typeof e&&!Array.isArray(e))},t.isDefined=a,t.getKeys=l;const r=n(666);function i(e,n){return(0,t.pickKeys)(e,l(e).filter(e=>!n.includes(e)))}function o(e,t){return e.filter(e=>Object.entries(t).every(([t,n])=>e[t]===n))}function s(e){for(var t in e)return!1;return!0}function a(e){return null!=e}function l(e){return Object.keys(e)}t.pickKeys=(e,t=[],n=!0)=>{if(!t.length)return{};if(e&&t.length){let r={};return t.forEach(t=>{n&&void 0===e[t]||(r[t]=e[t])}),r}return e},t.isNotEmpty=e=>!s(e),t.getObjectEntries=e=>Object.entries(e),t.tryCatch=async e=>{const t=Date.now();try{return{...await e(),duration:Date.now()-t}}catch(e){return{error:e,hasError:!0,duration:Date.now()-t}}},t.reverseJoinOn=e=>e.map(e=>Object.fromEntries(Object.entries(e).map(([e,t])=>[t,e]))),t.reverseParsedPath=(e,n)=>{const r=[{table:n,on:[{}]},...e??[]];return r.map((e,n)=>{const i=r[n+1];if(i)return{table:e.table,on:(0,t.reverseJoinOn)(i.on)}}).filter(a).reverse()},t.extractTypeUtil=(e,t)=>{if(Object.entries(t).every(([t,n])=>e[t]===n))return e},t.safeStringify=e=>{const t=new WeakSet;return JSON.stringify(e,(e,n)=>{if("object"==typeof n&&null!==n){if(t.has(n))return"[Circular]";t.add(n)}return n})},t.getSerialisableError=(e,n=!1)=>{if(null==e)return e;if("string"==typeof e||"boolean"==typeof e||"bigint"==typeof e||void 0===e||"number"==typeof e)return e?.toString();if(e instanceof DOMException)return{name:e.name,message:e.message,code:e.code,...n?{stack:e.stack}:{}};if(e instanceof Error){const r=Object.getOwnPropertyNames(e).reduce((t,n)=>({...t,[n]:e[n]}),{}),o=JSON.parse((0,t.safeStringify)(r));return n?o:i(o,["stack"])}return Array.isArray(e)?e.map(e=>(0,t.getSerialisableError)(e,n)):e},t.getProperty=(e,t)=>{if(Object.keys(e).includes(t))return e[t]},t.withTimeout=(e,t)=>{const n=new Promise((e,n)=>setTimeout(()=>n(new Error(`Timed out after ${t}ms`)),t));return Promise.race([e,n])},t.createPromiseWithTimeout=(e,t)=>{const n=new Promise((e,n)=>setTimeout(()=>n(new Error(`Timed out after ${t}ms`)),t)),r=new Promise(e);return Promise.race([r,n])},t.getEntries=e=>Object.entries(e),t.fromEntries=e=>Object.fromEntries(e)},441(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.includes=function(e,t){return e.some(e=>e===t)}},778(e,t,n){var r=this&&this.__createBinding||(Object.create?function(e,t,n,r){void 0===r&&(r=n);var i=Object.getOwnPropertyDescriptor(t,n);i&&!("get"in i?!t.__esModule:i.writable||i.configurable)||(i={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,r,i)}:function(e,t,n,r){void 0===r&&(r=n),e[r]=t[n]}),i=this&&this.__exportStar||function(e,t){for(var n in e)"default"===n||Object.prototype.hasOwnProperty.call(t,n)||r(t,e,n)};Object.defineProperty(t,"__esModule",{value:!0}),i(n(102),t),i(n(436),t),i(n(441),t)},102(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.isEqual=void 0,t.isEqual=(e,t,r="trace")=>n(e,t,void 0,r);const n=(e,t,r=new WeakMap,i)=>{if(e===t)return!0;if(typeof e!=typeof t)return!1;if(null===e||null===t)return!1;if("object"!=typeof e||"object"!=typeof t)return e!=e&&t!=t;let o=r.get(e);if(o?.has(t)){if("quiet"!==i&&console.trace("Circular reference detected in isEqual",e,t),"error"===i)throw new Error("Circular reference detected in isEqual");return"return-true"===i}if(o||(o=new WeakSet,r.set(e,o)),o.add(t),e instanceof Date&&t instanceof Date)return e.getTime()===t.getTime();if(e instanceof RegExp&&t instanceof RegExp)return e.source===t.source&&e.flags===t.flags;const s=Array.isArray(e),a=Array.isArray(t);if(s&&a){if(e.length!==t.length)return!1;for(let o=0;o<e.length;o++)if(!n(e[o],t[o],r,i))return!1;return!0}if(s!==a)return!1;if(ArrayBuffer.isView(e)&&ArrayBuffer.isView(t)){if(e.byteLength!==t.byteLength)return!1;const n=new Uint8Array(e.buffer,e.byteOffset,e.byteLength),r=new Uint8Array(t.buffer,t.byteOffset,t.byteLength);for(let e=0;e<n.length;e++)if(n[e]!==r[e])return!1;return!0}if(e instanceof ArrayBuffer&&t instanceof ArrayBuffer){if(e.byteLength!==t.byteLength)return!1;const n=new Uint8Array(e),r=new Uint8Array(t);for(let e=0;e<n.length;e++)if(n[e]!==r[e])return!1;return!0}const l=Object.keys(e);if(l.length!==Object.keys(t).length)return!1;for(const o of l){if(!(o in t))return!1;{const s=e[o],a=t[o];if(!n(s,a,r,i))return!1}}return!0}},436(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.tryCatchV2=void 0,t.tryCatchV2=e=>{const t=Date.now();try{const n=e();return n instanceof Promise?new Promise(async(e,r)=>{e({...await n.then(e=>({data:e})).catch(e=>({error:e,hasError:!0})),duration:Date.now()-t})}):{data:n,duration:Date.now()-t}}catch(e){return{error:e,hasError:!0,duration:Date.now()-t}}}}};const t={};return function n(r){const i=t[r];if(void 0!==i)return i.exports;const o=t[r]={exports:{}};return e[r].call(o.exports,o,o.exports,n),o.exports}(806)})());
@@ -1,12 +1,19 @@
1
- import type { JSONB, PrimitiveTypeMap } from "./JSONBSchema";
1
+ import type { DBHandler } from "lib";
2
2
  import { getKeys, isDefined, isEmpty, isObject } from "../util";
3
- import { safeGetKeys, safeGetProperty, safeHasOwn } from "./utils";
4
3
  import { includes } from "../utilFuncs/includes";
4
+ import type { JSONB, PrimitiveTypeMap } from "./JSONBSchema";
5
+ import { safeGetKeys, safeGetProperty, safeHasOwn } from "./utils";
5
6
 
6
7
  type ValidationOptions = {
7
8
  allowExtraProperties?: boolean;
8
9
  };
9
10
 
11
+ type PendingLookupValidation = {
12
+ schema: JSONB.Lookup;
13
+ value: unknown;
14
+ path: string[];
15
+ };
16
+
10
17
  export const getFieldTypeObj = (rawFieldType: JSONB.FieldType): JSONB.FieldTypeObj => {
11
18
  if (typeof rawFieldType === "string") return { type: rawFieldType };
12
19
 
@@ -105,6 +112,7 @@ const getPropertyValidationError = (
105
112
  rawFieldType: JSONB.FieldType,
106
113
  path: string[] = [],
107
114
  opts: ValidationOptions | undefined,
115
+ pendingLookupValidations?: PendingLookupValidation[],
108
116
  ): string | undefined => {
109
117
  const err = `${path.join(".")} is of invalid type. Expecting ${getTypeDescription(rawFieldType).replaceAll("\n", "")}`;
110
118
  const fieldDefinition = getFieldTypeObj(rawFieldType);
@@ -145,6 +153,7 @@ const getPropertyValidationError = (
145
153
  subSchema,
146
154
  [...path, subKey],
147
155
  opts,
156
+ pendingLookupValidations,
148
157
  );
149
158
  if (error !== undefined) {
150
159
  return error;
@@ -165,7 +174,35 @@ const getPropertyValidationError = (
165
174
  }
166
175
 
167
176
  if (type.includes("Lookup")) {
168
- throw new Error("Lookup types are not supported for validation");
177
+ if (!pendingLookupValidations) {
178
+ throw new Error("Lookup types are not supported for validation");
179
+ }
180
+ const isArray = type.endsWith("[]");
181
+ if (isArray !== Array.isArray(value)) return err;
182
+
183
+ const lookupType = type.replace("[]", "");
184
+ const values = isArray ? value : [value];
185
+ const isValid = values.every((item: unknown) => {
186
+ if (lookupType === "RowLookup") return isObject(item);
187
+ if (lookupType === "ValueLookup") {
188
+ return typeof item !== "function" && typeof item !== "symbol";
189
+ }
190
+ if (lookupType === "TableLookup") return typeof item === "string";
191
+ return (
192
+ isObject(item) &&
193
+ typeof safeGetProperty(item, "table") === "string" &&
194
+ typeof safeGetProperty(item, "column") === "string" &&
195
+ safeGetKeys(item).every((key) => key === "table" || key === "column")
196
+ );
197
+ });
198
+ if (!isValid) return err;
199
+
200
+ pendingLookupValidations.push({
201
+ schema: fieldDefinition as JSONB.Lookup,
202
+ value,
203
+ path,
204
+ });
205
+ return;
169
206
  }
170
207
  const { validator } = getValidator(type as DataType, fieldDefinition);
171
208
  const isValid = validator(value, fieldDefinition);
@@ -193,6 +230,7 @@ const getPropertyValidationError = (
193
230
  tuple[index]!,
194
231
  [...path, `${index}`],
195
232
  opts,
233
+ pendingLookupValidations,
196
234
  );
197
235
 
198
236
  if (elementError !== undefined) {
@@ -222,7 +260,13 @@ const getPropertyValidationError = (
222
260
  }
223
261
  const error = value
224
262
  .map((element, i) => {
225
- return getPropertyValidationError(element, arrayOf, [...path, `${i}`], opts);
263
+ return getPropertyValidationError(
264
+ element,
265
+ arrayOf,
266
+ [...path, `${i}`],
267
+ opts,
268
+ pendingLookupValidations,
269
+ );
226
270
  })
227
271
  .filter(isDefined)[0];
228
272
  if (error !== undefined) {
@@ -238,7 +282,11 @@ const getPropertyValidationError = (
238
282
  }
239
283
  let firstError: string | undefined;
240
284
  const validMember = oneOf.find((member) => {
241
- const error = getPropertyValidationError(value, member, path, opts);
285
+ const pendingLookupCount = pendingLookupValidations?.length;
286
+ const error = getPropertyValidationError(value, member, path, opts, pendingLookupValidations);
287
+ if (error !== undefined && pendingLookupCount !== undefined) {
288
+ pendingLookupValidations!.length = pendingLookupCount;
289
+ }
242
290
  firstError ??= error;
243
291
  return error === undefined;
244
292
  });
@@ -272,6 +320,7 @@ const getPropertyValidationError = (
272
320
  valuesSchema,
273
321
  [...path, propKey],
274
322
  opts,
323
+ pendingLookupValidations,
275
324
  );
276
325
  if (valError !== undefined) {
277
326
  return `${valError}`;
@@ -359,6 +408,107 @@ export const getJSONBSchemaValidationError = <S extends JSONB.FieldType>(
359
408
  }
360
409
  return { data: obj as JSONB.GetType<S> };
361
410
  };
411
+
412
+ const getLookupValuePath = (path: string[], index?: number): string => {
413
+ const result = [...path, ...(index === undefined ? [] : [String(index)])].join(".");
414
+ return result || "value";
415
+ };
416
+
417
+ const getLookupTableHandler = (db: DBHandler, table: string): DBHandler[string] | undefined => {
418
+ if (!safeHasOwn(db, table)) return;
419
+ const handler = safeGetProperty(db, table);
420
+ return isObject(handler) ? (handler as DBHandler[string]) : undefined;
421
+ };
422
+
423
+ const getLookupValidationError = async (
424
+ lookup: PendingLookupValidation,
425
+ db: DBHandler,
426
+ ): Promise<string | undefined> => {
427
+ const { schema, path } = lookup;
428
+ const isArray = schema.type.endsWith("[]");
429
+ const values = isArray ? (lookup.value as unknown[]) : [lookup.value];
430
+
431
+ for (const [index, value] of values.entries()) {
432
+ const valuePath = getLookupValuePath(path, isArray ? index : undefined);
433
+
434
+ if (schema.type === "TableLookup" || schema.type === "TableLookup[]") {
435
+ if (!getLookupTableHandler(db, value as string)) {
436
+ return `${valuePath} references an unknown table ${JSON.stringify(value)}`;
437
+ }
438
+ continue;
439
+ }
440
+
441
+ if (schema.type === "ColumnLookup" || schema.type === "ColumnLookup[]") {
442
+ const reference = value as { table: string; column: string };
443
+ if (schema.filter?.table && reference.table !== schema.filter.table) {
444
+ return `${valuePath} references a column that does not match the lookup filter`;
445
+ }
446
+
447
+ const tableHandler = getLookupTableHandler(db, reference.table);
448
+ if (!tableHandler) {
449
+ return `${valuePath} references an unknown table ${JSON.stringify(reference.table)}`;
450
+ }
451
+ if (typeof tableHandler.getColumns !== "function") {
452
+ throw new Error(
453
+ `Cannot validate ColumnLookup: table ${JSON.stringify(reference.table)} does not expose getColumns`,
454
+ );
455
+ }
456
+ const columns = await tableHandler.getColumns();
457
+ const column = columns.find(({ name }) => name === reference.column);
458
+ if (
459
+ !column ||
460
+ (schema.filter?.tsDataType && column.tsDataType !== schema.filter.tsDataType) ||
461
+ (schema.filter?.udt_name && column.udt_name !== schema.filter.udt_name)
462
+ ) {
463
+ return `${valuePath} references an unknown or disallowed column ${JSON.stringify(`${reference.table}.${reference.column}`)}`;
464
+ }
465
+ continue;
466
+ }
467
+
468
+ const dataLookup = schema as JSONB.RowLookup | JSONB.ValueLookup;
469
+ const tableHandler = getLookupTableHandler(db, dataLookup.table);
470
+
471
+ if (!tableHandler) {
472
+ throw new Error(
473
+ `Cannot validate ${dataLookup.type}: table ${JSON.stringify(dataLookup.table)} does not expose findOne`,
474
+ );
475
+ }
476
+
477
+ const valueFilter =
478
+ dataLookup.type === "RowLookup" || dataLookup.type === "RowLookup[]" ?
479
+ (value as Record<string, unknown>)
480
+ : { [(dataLookup as JSONB.ValueLookup).column]: value };
481
+ const filter = dataLookup.filter ? { $and: [dataLookup.filter, valueFilter] } : valueFilter;
482
+ const row = await tableHandler?.findOne?.(filter);
483
+ if (row === undefined) {
484
+ return `${valuePath} does not reference an existing row in ${JSON.stringify(dataLookup.table)}`;
485
+ }
486
+ }
487
+ };
488
+
489
+ /**
490
+ * Validates lookup values as well as the synchronous JSONB schema rules.
491
+ * A prostgles DB handler validates every lookup kind. A fetch-row callback
492
+ * validates RowLookup and ValueLookup records, while table/column lookups are
493
+ * structurally validated.
494
+ */
495
+ export const getJSONBSchemaValidationErrorAsync = async <S extends JSONB.FieldType>(
496
+ schema: S,
497
+ obj: any,
498
+ source: DBHandler,
499
+ opts?: ValidationOptions,
500
+ ): Promise<{ error: string; data?: undefined } | { error?: undefined; data: JSONB.GetType<S> }> => {
501
+ const pendingLookupValidations: PendingLookupValidation[] = [];
502
+ const error = getPropertyValidationError(obj, schema, undefined, opts, pendingLookupValidations);
503
+ if (error) return { error };
504
+
505
+ for (const lookup of pendingLookupValidations) {
506
+ const lookupError = await getLookupValidationError(lookup, source);
507
+ if (lookupError) return { error: lookupError };
508
+ }
509
+ return { data: obj as JSONB.GetType<S> };
510
+ };
511
+
362
512
  export const validateJSONBObjectAgainstSchema = <S extends JSONB.ObjectType["type"]>(
363
513
  schema: S,
364
514
  obj: any,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "prostgles-types",
3
- "version": "4.0.275",
3
+ "version": "4.0.277",
4
4
  "description": "",
5
5
  "main": "dist/index_umd.js",
6
6
  "types": "dist/index.d.ts",