prostgles-client 4.0.360 → 4.0.362

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.
Files changed (63) hide show
  1. package/dist/FunctionQueuer.js +51 -49
  2. package/dist/SyncedTable/SyncedTable.d.ts +3 -108
  3. package/dist/SyncedTable/SyncedTable.d.ts.map +1 -1
  4. package/dist/SyncedTable/SyncedTable.js +1 -628
  5. package/dist/SyncedTable/createSync.d.ts +3 -2
  6. package/dist/SyncedTable/createSync.d.ts.map +1 -1
  7. package/dist/SyncedTable/createSync.js +16 -9
  8. package/dist/SyncedTable/createSyncDataStore.d.ts +1 -1
  9. package/dist/SyncedTable/createSyncDataStore.d.ts.map +1 -1
  10. package/dist/SyncedTable/createSyncDataStore.js +2 -3
  11. package/dist/SyncedTable/createSyncStateUtils.d.ts +7 -4
  12. package/dist/SyncedTable/createSyncStateUtils.d.ts.map +1 -1
  13. package/dist/SyncedTable/createSyncStateUtils.js +32 -38
  14. package/dist/SyncedTable/createSyncSubscriptionManager.js +6 -10
  15. package/dist/auth/useAuthState.d.ts +2 -2
  16. package/dist/auth/useAuthState.d.ts.map +1 -1
  17. package/dist/auth/useAuthState.js +4 -5
  18. package/dist/getAuthHandler.js +7 -9
  19. package/dist/getDbHandler.d.ts +2 -6
  20. package/dist/getDbHandler.d.ts.map +1 -1
  21. package/dist/getDbHandler.js +37 -71
  22. package/dist/getMethods.js +1 -1
  23. package/dist/getSqlHandler.js +6 -8
  24. package/dist/getSubscriptionHandler.js +5 -5
  25. package/dist/getSyncHandlerV2.d.ts.map +1 -1
  26. package/dist/getSyncHandlerV2.js +3 -4
  27. package/dist/hooks/reactImports.js +2 -3
  28. package/dist/hooks/useAsyncEffectQueue.js +3 -4
  29. package/dist/hooks/useEffectAsync.js +1 -2
  30. package/dist/hooks/useEffectDeep.js +1 -1
  31. package/dist/hooks/useFetch.js +1 -1
  32. package/dist/hooks/useProstglesClient.d.ts +1 -1
  33. package/dist/hooks/useProstglesClient.d.ts.map +1 -1
  34. package/dist/hooks/useProstglesClient.js +5 -8
  35. package/dist/hooks/useSubscribe.js +1 -1
  36. package/dist/hooks/useSync.js +1 -1
  37. package/dist/{prostgles-full.d.ts → index.d.ts} +1 -3
  38. package/dist/index.d.ts.map +1 -0
  39. package/dist/index.js +36 -1
  40. package/dist/{prostgles-full-cdn.d.ts → index.umd.d.ts} +1 -1
  41. package/dist/index.umd.d.ts.map +1 -0
  42. package/dist/index.umd.js +1 -0
  43. package/dist/prostgles.d.ts +3 -3
  44. package/dist/prostgles.d.ts.map +1 -1
  45. package/dist/prostgles.js +11 -13
  46. package/package.json +3 -4
  47. package/tsconfig.json +5 -15
  48. package/webpack.dev.js +14 -15
  49. package/webpack.prod.js +2 -3
  50. package/dist/SyncedTable/getMultiSyncSubscription.d.ts +0 -12
  51. package/dist/SyncedTable/getMultiSyncSubscription.d.ts.map +0 -1
  52. package/dist/SyncedTable/getMultiSyncSubscription.js +0 -60
  53. package/dist/SyncedTable/getSingleSyncSubscription.d.ts +0 -1
  54. package/dist/SyncedTable/getSingleSyncSubscription.d.ts.map +0 -1
  55. package/dist/SyncedTable/getSingleSyncSubscription.js +0 -1
  56. package/dist/getSyncHandler.d.ts +0 -10
  57. package/dist/getSyncHandler.d.ts.map +0 -1
  58. package/dist/getSyncHandler.js +0 -199
  59. package/dist/index.no-sync.js +0 -1
  60. package/dist/prostgles-full-cdn.d.ts.map +0 -1
  61. package/dist/prostgles-full-cdn.js +0 -8
  62. package/dist/prostgles-full.d.ts.map +0 -1
  63. package/dist/prostgles-full.js +0 -38
@@ -8,20 +8,21 @@ const createSyncStateUtils_1 = require("./createSyncStateUtils");
8
8
  const createSyncSubscriptionManager_1 = require("./createSyncSubscriptionManager");
9
9
  const SyncedTable_1 = require("./SyncedTable");
10
10
  const createSync = async (socket, options) => {
11
- var _a;
12
11
  const stateUtils = (0, createSyncStateUtils_1.createSyncStateUtils)(socket, options);
13
- const { state, onDebug, id_fields, synced_field, throttle, batch_size, columns, _syncInfo, _sync, filter, } = stateUtils;
12
+ const { state, onDebug, id_fields, synced_field, throttle, batch_size, columns, _syncInfo, initializeSync, filter, } = stateUtils;
14
13
  const store = (0, createSyncDataStore_1.createSyncDataStore)({ ..._syncInfo, columns, filter });
15
- const onError = (_a = options.onError) !== null && _a !== void 0 ? _a : function (err) {
14
+ const onError = (err) => {
16
15
  console.error("Sync internal error: ", err);
17
16
  };
18
17
  const onSyncRequest = (syncBatchParams) => {
19
18
  let clientSyncInfo = { c_lr: undefined, c_fr: undefined, c_count: 0 };
20
19
  const batch = store.getBatch(syncBatchParams);
21
- if (batch.length) {
20
+ const firstRow = batch[0];
21
+ const lastRow = batch[batch.length - 1];
22
+ if (firstRow && lastRow) {
22
23
  clientSyncInfo = {
23
- c_fr: store.getRowSyncObj(batch[0]),
24
- c_lr: store.getRowSyncObj(batch[batch.length - 1]),
24
+ c_fr: store.getRowSyncObj(firstRow),
25
+ c_lr: store.getRowSyncObj(lastRow),
25
26
  c_count: batch.length,
26
27
  };
27
28
  }
@@ -71,7 +72,7 @@ const createSync = async (socket, options) => {
71
72
  synced_field,
72
73
  throttle,
73
74
  };
74
- const dbSync = await _sync({ onSyncRequest, onPullRequest, onUpdates });
75
+ const dbSync = await initializeSync({ onSyncRequest, onPullRequest, onUpdates });
75
76
  /**
76
77
  * Some syncs can be read only. Any changes are local
77
78
  */
@@ -114,7 +115,6 @@ const createSync = async (socket, options) => {
114
115
  let status;
115
116
  const walItems = [];
116
117
  await Promise.all(items.map(async (item, i) => {
117
- var _a;
118
118
  // let d = { ...item.idObj, ...item.delta };
119
119
  const idObj = { ...item.idObj };
120
120
  let delta = { ...item.delta };
@@ -144,7 +144,7 @@ const createSync = async (socket, options) => {
144
144
  /**
145
145
  * Merge deep
146
146
  */
147
- if ((_a = item.opts) === null || _a === void 0 ? void 0 : _a.deepMerge) {
147
+ if (item.opts?.deepMerge) {
148
148
  newItem = (0, SyncedTable_1.mergeDeep)({ ...oldItem, ...idObj }, { ...delta });
149
149
  }
150
150
  }
@@ -184,6 +184,13 @@ const createSync = async (socket, options) => {
184
184
  }
185
185
  };
186
186
  const subscriptionManager = (0, createSyncSubscriptionManager_1.createSyncSubscriptionManager)({ id_fields, synced_field }, store, stateUtils, upsert);
187
+ store.setItems(dbSync.syncInfo.data);
188
+ if (!dbSync.syncInfo.isSynced) {
189
+ dbSync.syncData();
190
+ }
191
+ else {
192
+ state.isSynced = true;
193
+ }
187
194
  return subscriptionManager;
188
195
  };
189
196
  exports.createSync = createSync;
@@ -1,6 +1,6 @@
1
- import type { SyncInfo } from "lib/prostgles";
2
1
  import { type AnyObject, type SyncBatchParams } from "prostgles-types";
3
2
  import { type SyncedTableOptions } from "./SyncedTable";
3
+ import type { SyncInfo } from "../prostgles";
4
4
  export declare const createSyncDataStore: ({ id_fields, synced_field, filter, columns, }: Pick<SyncInfo, "id_fields" | "synced_field"> & Pick<SyncedTableOptions, "filter" | "columns">) => {
5
5
  getItems: <T extends AnyObject = AnyObject>() => T[];
6
6
  getBatch: ({ from_synced, to_synced, offset, limit }?: SyncBatchParams) => {
@@ -1 +1 @@
1
- {"version":3,"file":"createSyncDataStore.d.ts","sourceRoot":"","sources":["../../lib/SyncedTable/createSyncDataStore.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EAML,KAAK,SAAS,EACd,KAAK,eAAe,EACrB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAc,KAAK,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAEpE,eAAO,MAAM,mBAAmB,GAAI,+CAKjC,IAAI,CAAC,QAAQ,EAAE,WAAW,GAAG,cAAc,CAAC,GAC7C,IAAI,CAAC,kBAAkB,EAAE,QAAQ,GAAG,SAAS,CAAC;eA2B5B,CAAC,SAAS,SAAS,mBAAiB,CAAC,EAAE;2DAyBZ,eAAe;;;kBA3CvC,SAAS;uBAOJ,SAAS;kBA0Fd,SAAS,KAAK,SAAS,KAAG,SAAS;uBA3B9B,SAAS,EAAE,KAAG,IAAI;0BAkBf,SAAS;qBA7Bd,SAAS;cAoBhB,CAAC,qBAAqB,OAAO,CAAC,CAAC,CAAC,KAAG,CAAC,GAAG,SAAS;sBA0CxC,SAAS,GAAG,SAAS,KAAK,SAAS,GAAG,SAAS;0BAN3C,SAAS,GAAG,SAAS;CAuBnD,CAAC"}
1
+ {"version":3,"file":"createSyncDataStore.d.ts","sourceRoot":"","sources":["../../lib/SyncedTable/createSyncDataStore.ts"],"names":[],"mappings":"AAAA,OAAO,EAML,KAAK,SAAS,EACd,KAAK,eAAe,EACrB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAc,KAAK,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACpE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAE7C,eAAO,MAAM,mBAAmB,GAAI,+CAKjC,IAAI,CAAC,QAAQ,EAAE,WAAW,GAAG,cAAc,CAAC,GAC7C,IAAI,CAAC,kBAAkB,EAAE,QAAQ,GAAG,SAAS,CAAC;eA2B5B,CAAC,SAAS,SAAS,mBAAiB,CAAC,EAAE;2DAyBZ,eAAe;;;kBA3CvC,SAAS;uBAOJ,SAAS;kBA0Fd,SAAS,KAAK,SAAS,KAAG,SAAS;uBA3B9B,SAAS,EAAE,KAAG,IAAI;0BAkBf,SAAS;qBA7Bd,SAAS;cAoBhB,CAAC,qBAAqB,OAAO,CAAC,CAAC,CAAC,KAAG,CAAC,GAAG,SAAS;sBA0CxC,SAAS,GAAG,SAAS,KAAK,SAAS,GAAG,SAAS;0BAN3C,SAAS,GAAG,SAAS;CAuBnD,CAAC"}
@@ -49,19 +49,18 @@ const createSyncDataStore = ({ id_fields, synced_field, filter, columns, }) => {
49
49
  .filter((c) => (!Number.isFinite(from_synced) || +c[synced_field] >= +from_synced) &&
50
50
  (!Number.isFinite(to_synced) || +c[synced_field] <= +to_synced));
51
51
  if (offset || limit) {
52
- res = res.splice(offset !== null && offset !== void 0 ? offset : 0, limit || res.length);
52
+ res = res.splice(offset ?? 0, limit || res.length);
53
53
  }
54
54
  return res;
55
55
  };
56
56
  const setItem = (_item, isFullData = false, deleteItem = false) => {
57
- var _a;
58
57
  const item = (0, SyncedTable_1.quickClone)(_item);
59
58
  const id = getIdStr(item);
60
59
  if (deleteItem) {
61
60
  itemsMap.delete(id);
62
61
  }
63
62
  else {
64
- const existing = (_a = itemsMap.get(id)) !== null && _a !== void 0 ? _a : {};
63
+ const existing = itemsMap.get(id) ?? {};
65
64
  itemsMap.set(id, isFullData ? { ...item } : { ...existing, ...item });
66
65
  }
67
66
  };
@@ -1,6 +1,6 @@
1
- import { type SyncDebugEvent, type SyncInfo } from "lib/prostgles";
2
1
  import { type ClientSyncHandles } from "prostgles-types";
3
2
  import type { Socket } from "socket.io-client";
3
+ import { type SyncDebugEvent } from "../prostgles";
4
4
  import type { SyncedTableOptions } from "./SyncedTable";
5
5
  export declare const createSyncStateUtils: (socket: Socket, options: Omit<SyncedTableOptions, "onReady">) => {
6
6
  state: {
@@ -13,13 +13,16 @@ export declare const createSyncStateUtils: (socket: Socket, options: Omit<Synced
13
13
  batch_size: number;
14
14
  columns: import("prostgles-types").ValidatedColumnInfo[];
15
15
  _syncInfo: import("prostgles-types").SyncTableInfo;
16
- _sync: (handles: ClientSyncHandles) => Promise<{
17
- sync_info: SyncInfo;
16
+ initializeSync: (handles: ClientSyncHandles) => Promise<{
17
+ syncInfo: import("prostgles-types").SyncConfig & {
18
+ data: import("prostgles-types").AnyObject[];
19
+ isSynced: boolean;
20
+ };
18
21
  unsync: () => Promise<unknown>;
19
22
  syncData: (data?: import("prostgles-types").AnyObject[], deleted?: import("prostgles-types").AnyObject[], cb?: (err?: any) => void) => void;
20
23
  }>;
21
24
  filter: import("prostgles-types").EqualityFilter<import("prostgles-types").AnyObject>;
22
25
  select: import("prostgles-types").FieldFilter;
23
- tableHandler: Partial<import("prostgles-types").TableHandler & import("lib/prostgles").TableHandlerClientMethods<import("prostgles-types").AnyObject, void>>;
26
+ tableHandler: Partial<import("prostgles-types").TableHandler & import("../prostgles").TableHandlerClientMethods<import("prostgles-types").AnyObject, void>>;
24
27
  };
25
28
  //# sourceMappingURL=createSyncStateUtils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"createSyncStateUtils.d.ts","sourceRoot":"","sources":["../../lib/SyncedTable/createSyncStateUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,KAAK,cAAc,EAAE,KAAK,QAAQ,EAAE,MAAM,eAAe,CAAC;AACrF,OAAO,EAGL,KAAK,iBAAiB,EAEvB,MAAM,iBAAiB,CAAC;AACzB,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,KAAK,EAAe,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAErE,eAAO,MAAM,oBAAoB,GAC/B,QAAQ,MAAM,EACd,SAAS,IAAI,CAAC,kBAAkB,EAAE,SAAS,CAAC;;;;mBAKtB,IAAI,CAAC,cAAc,EAAE,MAAM,GAAG,WAAW,GAAG,aAAa,GAAG,SAAS,CAAC;;;;;;;qBAyB9D,iBAAiB;;;2HAkIi6B,CAAC;;;;;CADl9B,CAAC"}
1
+ {"version":3,"file":"createSyncStateUtils.d.ts","sourceRoot":"","sources":["../../lib/SyncedTable/createSyncStateUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,iBAAiB,EAEvB,MAAM,iBAAiB,CAAC;AACzB,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAoB,KAAK,cAAc,EAAE,MAAM,cAAc,CAAC;AACrE,OAAO,KAAK,EAAe,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAErE,eAAO,MAAM,oBAAoB,GAC/B,QAAQ,MAAM,EACd,SAAS,IAAI,CAAC,kBAAkB,EAAE,SAAS,CAAC;;;;mBAKtB,IAAI,CAAC,cAAc,EAAE,MAAM,GAAG,WAAW,GAAG,aAAa,GAAG,SAAS,CAAC;;;;;;;8BAyBrD,iBAAiB;;;;;;2HA6HuuB,CAAC;;;;;CADjyB,CAAC"}
@@ -6,16 +6,13 @@ const createSyncStateUtils = (socket, options) => {
6
6
  const state = { isSynced: false };
7
7
  const { db, name, select = "*", filter = {}, columns } = options;
8
8
  const channelName = (0, prostgles_types_1.getSyncChannelName)({ filter, select, tableName: name });
9
- const onDebug = (evt) => {
10
- var _a;
11
- return (_a = options.onDebug) === null || _a === void 0 ? void 0 : _a.call(options, {
12
- ...evt,
13
- type: "sync",
14
- tableName: name,
15
- channelName,
16
- options,
17
- });
18
- };
9
+ const onDebug = (evt) => options.onDebug?.({
10
+ ...evt,
11
+ type: "sync",
12
+ tableName: name,
13
+ channelName,
14
+ options,
15
+ });
19
16
  onDebug({ command: "create", data: { name, filter, select } });
20
17
  const tableHandler = db[name];
21
18
  if (!tableHandler) {
@@ -29,8 +26,8 @@ const createSyncStateUtils = (socket, options) => {
29
26
  if (!id_fields.length || !synced_field) {
30
27
  throw "id_fields/synced_field missing";
31
28
  }
32
- const _sync = async (handles) => {
33
- const sync_info = await new Promise((resolve, reject) => {
29
+ const initializeSync = async (handles) => {
30
+ const syncInfo = await new Promise((resolve, reject) => {
34
31
  socket.emit(prostgles_types_1.CHANNEL_PREFIX, {
35
32
  tableName: name,
36
33
  command: "sync",
@@ -42,38 +39,35 @@ const createSyncStateUtils = (socket, options) => {
42
39
  reject(err);
43
40
  }
44
41
  else if (syncInfo) {
45
- const { id_fields, synced_field, channelName } = syncInfo;
46
- socket.emit(channelName, { onSyncRequest: handles.onSyncRequest({}) }, (response) => {
47
- console.log(response);
48
- });
49
- resolve({ id_fields, synced_field, channelName });
42
+ // const { channelName } = syncInfo;
43
+ // socket.emit(
44
+ // channelName,
45
+ // { onSyncRequest: handles.onSyncRequest({}) },
46
+ // (response: any) => {
47
+ // console.log(response);
48
+ // },
49
+ // );
50
+ resolve(syncInfo);
50
51
  }
51
52
  });
52
53
  });
53
54
  const onCall = function (data, cb) {
54
55
  /*
55
- Client will:
56
- 1. Send last_synced on(onSyncRequest)
57
- 2. Send data >= server_synced on(onPullRequest)
58
- 3. Send data on CRUD emit(data.data)
59
- 4. Upsert data.data on(data.data)
60
- */
56
+ Client will:
57
+ 1. Send last_synced on(onSyncRequest)
58
+ 2. Send data >= server_synced on(onPullRequest)
59
+ 3. Send data on CRUD emit(data.data)
60
+ 4. Upsert data.data on(data.data)
61
+ */
61
62
  if (!data)
62
63
  return;
63
64
  const { onUpdates, onSyncRequest, onPullRequest } = handles;
64
- // syncedTables.get(channelName)?.then((syncedTable) => {
65
- // onDebug?.({
66
- // type: "sync",
67
- // command:
68
- // data.data ? "onUpdates"
69
- // : data.onSyncRequest ? "onSyncRequest"
70
- // : "onPullRequest",
71
- // tableName,
72
- // channelName,
73
- // data,
74
- // options: { n filter, select },
75
- // });
76
- // });
65
+ onDebug({
66
+ command: data.data ? "onUpdates"
67
+ : data.onSyncRequest ? "onSyncRequest"
68
+ : "onPullRequest",
69
+ data,
70
+ });
77
71
  if (data.data) {
78
72
  Promise.resolve(onUpdates(data))
79
73
  .then(() => {
@@ -126,7 +120,7 @@ const createSyncStateUtils = (socket, options) => {
126
120
  socket.removeListener(channelName, onCall);
127
121
  });
128
122
  };
129
- return { sync_info, unsync, syncData };
123
+ return { syncInfo, unsync, syncData };
130
124
  };
131
125
  return {
132
126
  state,
@@ -137,7 +131,7 @@ const createSyncStateUtils = (socket, options) => {
137
131
  batch_size,
138
132
  columns,
139
133
  _syncInfo,
140
- _sync,
134
+ initializeSync,
141
135
  filter,
142
136
  select,
143
137
  tableHandler,
@@ -68,22 +68,18 @@ const createSyncSubscriptionManager = ({ id_fields, synced_field }, store, state
68
68
  batch_size: Infinity,
69
69
  throttle: 5,
70
70
  onSend: async (_, fullItems) => {
71
- _notifySubscribers(fullItems.map((d) => {
72
- var _a;
73
- return ({
74
- delta: store.getDelta((_a = d.initial) !== null && _a !== void 0 ? _a : {}, d.current),
75
- idObj: store.getIdObj(d.current),
76
- newItem: d.current,
77
- });
78
- }));
71
+ _notifySubscribers(fullItems.map((d) => ({
72
+ delta: store.getDelta(d.initial ?? {}, d.current),
73
+ idObj: store.getIdObj(d.current),
74
+ newItem: d.current,
75
+ })));
79
76
  },
80
77
  });
81
78
  const _delete = async (item, from_server = false) => {
82
- var _a, _b;
83
79
  const idObj = store.getIdObj(item);
84
80
  store.setItem(idObj, true, true);
85
81
  if (!from_server) {
86
- await ((_b = (_a = stateUtils.tableHandler).delete) === null || _b === void 0 ? void 0 : _b.call(_a, idObj));
82
+ await stateUtils.tableHandler.delete?.(idObj);
87
83
  }
88
84
  _notifySubscribers();
89
85
  return true;
@@ -1,5 +1,5 @@
1
1
  import { type AuthResponse } from "prostgles-types";
2
- import type { AuthHandler, PasswordLogin, PasswordRegister } from "lib/getAuthHandler";
2
+ import type { AuthHandler, PasswordLogin, PasswordRegister } from "../getAuthHandler";
3
3
  export declare const useAuthState: ({ auth }: {
4
4
  auth: AuthHandler;
5
5
  }) => {
@@ -116,7 +116,7 @@ export declare const useAuthState: ({ auth }: {
116
116
  username: string;
117
117
  emailVerificationCode: string;
118
118
  setEmailVerificationCode: import("react").Dispatch<import("react").SetStateAction<string>>;
119
- onCall: () => Promise<import("lib/getAuthHandler").PasswordRegisterResponse>;
119
+ onCall: () => Promise<import("../getAuthHandler").PasswordRegisterResponse>;
120
120
  result: (import("prostgles-types").CommonAuthFailure & {
121
121
  redirect_url?: string;
122
122
  }) | ({
@@ -1 +1 @@
1
- {"version":3,"file":"useAuthState.d.ts","sourceRoot":"","sources":["../../lib/auth/useAuthState.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,KAAK,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAGjE,OAAO,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AA2BvF,eAAO,MAAM,YAAY,GAAI,UAAU;IAAE,IAAI,EAAE,WAAW,CAAA;CAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAa/C,OAAO;iBACP,MAAM;;;CA2MlB,CAAC;AAEF,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;CA8B7B,CAAC"}
1
+ {"version":3,"file":"useAuthState.d.ts","sourceRoot":"","sources":["../../lib/auth/useAuthState.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,KAAK,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAGjE,OAAO,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AA2BtF,eAAO,MAAM,YAAY,GAAI,UAAU;IAAE,IAAI,EAAE,WAAW,CAAA;CAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAa/C,OAAO;iBACP,MAAM;;;CA2MlB,CAAC;AAEF,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;CA8B7B,CAAC"}
@@ -97,7 +97,6 @@ const useAuthState = ({ auth }) => {
97
97
  const isOnLogin = loginStates.some((v) => v === state);
98
98
  const registerTypeAllowed = "registerWithPassword";
99
99
  const onAuthCall = async () => {
100
- var _a, _b, _c;
101
100
  const formData = {
102
101
  username,
103
102
  password,
@@ -114,7 +113,7 @@ const useAuthState = ({ auth }) => {
114
113
  const setErrorWithInfo = (err) => {
115
114
  return setError(err === "no match" ? errorMap[err] : err);
116
115
  };
117
- if (!(formHandlers === null || formHandlers === void 0 ? void 0 : formHandlers.onCall)) {
116
+ if (!formHandlers?.onCall) {
118
117
  return setError("Invalid state");
119
118
  }
120
119
  /**
@@ -165,8 +164,8 @@ const useAuthState = ({ auth }) => {
165
164
  setState("loginTotp");
166
165
  }
167
166
  else if (res.code !== "password-missing") {
168
- const errorMessage = (_a = res.message) !== null && _a !== void 0 ? _a : (0, prostgles_types_1.getProperty)(exports.ERR_CODE_MESSAGES, res.code);
169
- setErrorWithInfo(errorMessage !== null && errorMessage !== void 0 ? errorMessage : "Error");
167
+ const errorMessage = res.message ?? (0, prostgles_types_1.getProperty)(exports.ERR_CODE_MESSAGES, res.code);
168
+ setErrorWithInfo(errorMessage ?? "Error");
170
169
  }
171
170
  }
172
171
  else {
@@ -176,7 +175,7 @@ const useAuthState = ({ auth }) => {
176
175
  if (state === "registerWithPassword" || res.code === "magic-link-sent") {
177
176
  setState("registerWithPasswordConfirmationCode");
178
177
  }
179
- let message = (_c = (_b = (res.code && SIGNUP_CODE_MESSAGES[res.code])) !== null && _b !== void 0 ? _b : res.message) !== null && _c !== void 0 ? _c : "Success";
178
+ let message = (res.code && SIGNUP_CODE_MESSAGES[res.code]) ?? res.message ?? "Success";
180
179
  if (formHandlers.state === "registerWithPasswordConfirmationCode") {
181
180
  message = SIGNUP_CODE_MESSAGES["email-verified"];
182
181
  setState("login");
@@ -4,7 +4,6 @@ exports.authRequest = exports.getAuthHandler = void 0;
4
4
  const prostgles_types_1 = require("prostgles-types");
5
5
  const prostgles_1 = require("./prostgles");
6
6
  const getAuthHandler = ({ authData: authConfig, socket, onReload, endpoint, ...authOpts }) => {
7
- var _a;
8
7
  const urlWithEndpointAndSearch = (route) => {
9
8
  const { search } = window.location;
10
9
  let url = route + search;
@@ -12,9 +11,9 @@ const getAuthHandler = ({ authData: authConfig, socket, onReload, endpoint, ...a
12
11
  url = `${endpoint}${url}`;
13
12
  return url;
14
13
  };
15
- if ((authConfig === null || authConfig === void 0 ? void 0 : authConfig.pathGuard) && prostgles_1.isClientSide) {
14
+ if (authConfig?.pathGuard && prostgles_1.isClientSide) {
16
15
  const doReload = (res) => {
17
- if (res === null || res === void 0 ? void 0 : res.shouldReload) {
16
+ if (res?.shouldReload) {
18
17
  if (onReload)
19
18
  onReload();
20
19
  else if (prostgles_1.isClientSide) {
@@ -34,13 +33,13 @@ const getAuthHandler = ({ authData: authConfig, socket, onReload, endpoint, ...a
34
33
  });
35
34
  }
36
35
  const loginSignupOptions = {
37
- loginType: (_a = authConfig === null || authConfig === void 0 ? void 0 : authConfig.login) === null || _a === void 0 ? void 0 : _a.mode,
36
+ loginType: authConfig?.login?.mode,
38
37
  login: undefined,
39
- preferredLogin: authConfig === null || authConfig === void 0 ? void 0 : authConfig.preferredLogin,
38
+ preferredLogin: authConfig?.preferredLogin,
40
39
  loginWithProvider: undefined,
41
40
  signupWithEmailAndPassword: undefined,
42
41
  confirmEmail: undefined,
43
- providers: authConfig === null || authConfig === void 0 ? void 0 : authConfig.providers,
42
+ providers: authConfig?.providers,
44
43
  };
45
44
  if (authConfig) {
46
45
  const { providers, signupWithEmailAndPassword, login } = authConfig;
@@ -68,7 +67,7 @@ const getAuthHandler = ({ authData: authConfig, socket, onReload, endpoint, ...a
68
67
  return (0, exports.authRequest)(urlWithEndpointAndSearch(signupWithEmailAndPassword.emailConfirmationRoute), data, "POST", authOpts);
69
68
  });
70
69
  }
71
- if (!(authConfig === null || authConfig === void 0 ? void 0 : authConfig.user)) {
70
+ if (!authConfig?.user) {
72
71
  return {
73
72
  isLoggedin: false,
74
73
  user: undefined,
@@ -79,8 +78,7 @@ const getAuthHandler = ({ authData: authConfig, socket, onReload, endpoint, ...a
79
78
  isLoggedin: true,
80
79
  user: authConfig.user,
81
80
  logout: async () => {
82
- var _a;
83
- const { logoutRoute } = (_a = authConfig.login) !== null && _a !== void 0 ? _a : {};
81
+ const { logoutRoute } = authConfig.login ?? {};
84
82
  if (!logoutRoute)
85
83
  throw new Error("Unexpected");
86
84
  return (0, exports.authRequest)(urlWithEndpointAndSearch(logoutRoute), {}, "POST", authOpts);
@@ -1,19 +1,15 @@
1
1
  import { type DBSchemaTable } from "prostgles-types";
2
2
  import type { getSubscriptionHandler } from "./getSubscriptionHandler";
3
- import type { getSyncHandler } from "./getSyncHandler";
4
- import { type DBHandlerClient, type InitOptions } from "./prostgles";
5
- import { type SyncedTable } from "./SyncedTable/SyncedTable";
6
3
  import type { getSyncHandlerV2 } from "./getSyncHandlerV2";
4
+ import { type DBHandlerClient, type InitOptions } from "./prostgles";
7
5
  type Args = {
8
6
  tableSchema: DBSchemaTable[] | undefined;
9
7
  onDebug: InitOptions["onDebug"];
10
8
  socket: InitOptions["socket"];
11
- syncedTable: typeof SyncedTable | undefined;
12
- syncHandler: ReturnType<typeof getSyncHandler>;
13
9
  syncHandlerV2: ReturnType<typeof getSyncHandlerV2>;
14
10
  subscriptionHandler: ReturnType<typeof getSubscriptionHandler>;
15
11
  };
16
- export declare const getDB: <DBSchema = void>({ tableSchema, onDebug, syncedTable, syncHandler, syncHandlerV2, subscriptionHandler, socket, }: Args) => {
12
+ export declare const getDB: <DBSchema = void>({ tableSchema, onDebug, syncHandlerV2, subscriptionHandler, socket, }: Args) => {
17
13
  db: Partial<DBHandlerClient<DBSchema>>;
18
14
  };
19
15
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"getDbHandler.d.ts","sourceRoot":"","sources":["../lib/getDbHandler.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,aAAa,EAKnB,MAAM,iBAAiB,CAAC;AACzB,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AACvE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAIvD,OAAO,EAEL,KAAK,eAAe,EACpB,KAAK,WAAW,EAEjB,MAAM,aAAa,CAAC;AACrB,OAAO,EAKL,KAAK,WAAW,EAIjB,MAAM,2BAA2B,CAAC;AACnC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAE3D,KAAK,IAAI,GAAG;IACV,WAAW,EAAE,aAAa,EAAE,GAAG,SAAS,CAAC;IACzC,OAAO,EAAE,WAAW,CAAC,SAAS,CAAC,CAAC;IAChC,MAAM,EAAE,WAAW,CAAC,QAAQ,CAAC,CAAC;IAC9B,WAAW,EAAE,OAAO,WAAW,GAAG,SAAS,CAAC;IAC5C,WAAW,EAAE,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC;IAC/C,aAAa,EAAE,UAAU,CAAC,OAAO,gBAAgB,CAAC,CAAC;IACnD,mBAAmB,EAAE,UAAU,CAAC,OAAO,sBAAsB,CAAC,CAAC;CAChE,CAAC;AAIF,eAAO,MAAM,KAAK,GAAI,QAAQ,GAAG,IAAI,EAAE,iGAQpC,IAAI;QAyNc,OAAO,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;CACtD,CAAC"}
1
+ {"version":3,"file":"getDbHandler.d.ts","sourceRoot":"","sources":["../lib/getDbHandler.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,aAAa,EAInB,MAAM,iBAAiB,CAAC;AACzB,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AACvE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAI3D,OAAO,EAEL,KAAK,eAAe,EACpB,KAAK,WAAW,EAEjB,MAAM,aAAa,CAAC;AAWrB,KAAK,IAAI,GAAG;IACV,WAAW,EAAE,aAAa,EAAE,GAAG,SAAS,CAAC;IACzC,OAAO,EAAE,WAAW,CAAC,SAAS,CAAC,CAAC;IAChC,MAAM,EAAE,WAAW,CAAC,QAAQ,CAAC,CAAC;IAC9B,aAAa,EAAE,UAAU,CAAC,OAAO,gBAAgB,CAAC,CAAC;IACnD,mBAAmB,EAAE,UAAU,CAAC,OAAO,sBAAsB,CAAC,CAAC;CAChE,CAAC;AAIF,eAAO,MAAM,KAAK,GAAI,QAAQ,GAAG,IAAI,EAAE,uEAMpC,IAAI;QAiLc,OAAO,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;CACtD,CAAC"}
@@ -6,9 +6,8 @@ const useFetch_1 = require("./hooks/useFetch");
6
6
  const useSubscribe_1 = require("./hooks/useSubscribe");
7
7
  const useSync_1 = require("./hooks/useSync");
8
8
  const SyncedTable_1 = require("./SyncedTable/SyncedTable");
9
- const preffix = prostgles_types_1.CHANNELS._preffix;
10
- const getDB = ({ tableSchema, onDebug, syncedTable, syncHandler, syncHandlerV2, subscriptionHandler, socket, }) => {
11
- var _a;
9
+ const prefix = prostgles_types_1.CHANNELS._preffix;
10
+ const getDB = ({ tableSchema, onDebug, syncHandlerV2, subscriptionHandler, socket, }) => {
12
11
  /* Building DB object */
13
12
  const checkSubscriptionArgs = (basicFilter, options, onChange, onError) => {
14
13
  if ((basicFilter !== undefined && !(0, prostgles_types_1.isObject)(basicFilter)) ||
@@ -20,7 +19,7 @@ const getDB = ({ tableSchema, onDebug, syncedTable, syncHandler, syncHandlerV2,
20
19
  };
21
20
  const subscribeCommands = ["subscribe", "subscribeOne"];
22
21
  const db = {};
23
- const schemaClone = (_a = (0, SyncedTable_1.quickClone)(tableSchema)) !== null && _a !== void 0 ? _a : [];
22
+ const schemaClone = (0, SyncedTable_1.quickClone)(tableSchema) ?? [];
24
23
  schemaClone.forEach(({ name: tableName, publishInfo, columns }) => {
25
24
  const allowedCommands = (0, prostgles_types_1.getAllowedTableMethods)({ publishInfo });
26
25
  db[tableName] = {};
@@ -28,81 +27,49 @@ const getDB = ({ tableSchema, onDebug, syncedTable, syncHandler, syncHandlerV2,
28
27
  allowedCommands
29
28
  .sort((a, b) => Number((0, prostgles_types_1.includes)(subscribeCommands, a)) - Number((0, prostgles_types_1.includes)(subscribeCommands, b)))
30
29
  .forEach((command) => {
31
- var _a;
32
30
  if (command === "sync") {
33
- const syncConfig = (_a = publishInfo.select) === null || _a === void 0 ? void 0 : _a.syncConfig;
31
+ const syncConfig = publishInfo.select?.syncConfig;
34
32
  if (!syncConfig) {
35
33
  throw `Table ${tableName} does not have syncConfig in publishInfo.select`;
36
34
  }
37
35
  dboTable._syncInfo = { ...syncConfig };
38
- if (syncedTable) {
39
- const upsertSyncTable = async (basicFilter = {}, options = {}, onError) => {
40
- var _a;
41
- const syncName = `${tableName}.${JSON.stringify(basicFilter)}.${JSON.stringify((0, prostgles_types_1.omitKeys)(options, ["handlesOnData"]))}`;
42
- const syncedTableHandler = (_a = syncHandler.syncedTables.get(syncName)) !== null && _a !== void 0 ? _a : syncedTable.create({
43
- select: undefined,
44
- ...options,
45
- onDebug,
46
- name: tableName,
47
- filter: basicFilter,
48
- db: db,
49
- onError,
50
- columns,
51
- });
52
- syncHandler.syncedTables.set(syncName, syncedTableHandler);
53
- return syncedTableHandler;
54
- };
55
- const syncOne = (async (basicFilter, options = { handlesOnData: true }, onChange, onError) => {
56
- await (onDebug === null || onDebug === void 0 ? void 0 : onDebug({
57
- type: "table",
58
- command: "syncOne",
59
- tableName,
60
- data: { basicFilter, options },
61
- }));
62
- checkSubscriptionArgs(basicFilter, options, onChange, onError);
63
- // const syncedTable = await upsertSyncTable(basicFilter, options, onError);
64
- // return await syncedTable.syncOne(basicFilter, onChange as any, options.handlesOnData);
65
- return (await syncHandlerV2.getTableSyncFunctions({ db, tableName, columns })).addSyncOne(basicFilter, options, onChange, onError);
66
- });
67
- const sync = (async (basicFilter, options = { handlesOnData: true }, onChange, onError) => {
68
- await (onDebug === null || onDebug === void 0 ? void 0 : onDebug({
69
- type: "table",
70
- command: "sync",
71
- tableName,
72
- data: { basicFilter, options },
73
- }));
74
- checkSubscriptionArgs(basicFilter, options, onChange, onError);
75
- // const syncedTable = await upsertSyncTable(basicFilter, options, onError);
76
- // return await syncedTable.sync(onChange as any, options.handlesOnData);
77
- return (await syncHandlerV2.getTableSyncFunctions({ db, tableName, columns })).addSync(basicFilter, options, onChange, onError);
36
+ const syncOne = (async (basicFilter, options = { handlesOnData: true }, onChange) => {
37
+ await onDebug?.({
38
+ type: "table",
39
+ command: "syncOne",
40
+ tableName,
41
+ data: { basicFilter, options },
78
42
  });
79
- dboTable.sync = sync;
80
- dboTable.syncOne = syncOne;
81
- dboTable.useSync = (basicFilter, options, hookOptions) =>
82
- // eslint-disable-next-line react-hooks/rules-of-hooks
83
- (0, useSync_1.useSync)(sync, basicFilter, options, hookOptions);
84
- dboTable.useSyncOne = (basicFilter, options, hookOptions) =>
85
- // eslint-disable-next-line react-hooks/rules-of-hooks
86
- (0, useSync_1.useSync)(syncOne, basicFilter, options, hookOptions);
87
- }
88
- dboTable._sync = async function (filter, select, syncHandles) {
89
- await (onDebug === null || onDebug === void 0 ? void 0 : onDebug({
43
+ checkSubscriptionArgs(basicFilter, options, onChange);
44
+ return (await syncHandlerV2.getTableSyncFunctions({ db, tableName, columns })).addSyncOne(basicFilter, options, onChange);
45
+ });
46
+ const sync = (async (basicFilter, options = { handlesOnData: true }, onChange) => {
47
+ await onDebug?.({
90
48
  type: "table",
91
- command: "_sync",
49
+ command: "sync",
92
50
  tableName,
93
- data: { filter, select, syncHandles },
94
- }));
95
- return syncHandler.addSync({ tableName, command, param1: filter, param2: select }, syncHandles);
96
- };
51
+ data: { basicFilter, options },
52
+ });
53
+ checkSubscriptionArgs(basicFilter, options, onChange);
54
+ return (await syncHandlerV2.getTableSyncFunctions({ db, tableName, columns })).addSync(basicFilter, options, onChange);
55
+ });
56
+ dboTable.sync = sync;
57
+ dboTable.syncOne = syncOne;
58
+ dboTable.useSync = (basicFilter, options, hookOptions) =>
59
+ // eslint-disable-next-line react-hooks/rules-of-hooks
60
+ (0, useSync_1.useSync)(sync, basicFilter, options, hookOptions);
61
+ dboTable.useSyncOne = (basicFilter, options, hookOptions) =>
62
+ // eslint-disable-next-line react-hooks/rules-of-hooks
63
+ (0, useSync_1.useSync)(syncOne, basicFilter, options, hookOptions);
97
64
  }
98
65
  else if (subscribeCommands.includes(command)) {
99
66
  const subFunc = async function (param1 = {}, param2 = {}, onChange, onError) {
100
- await (onDebug === null || onDebug === void 0 ? void 0 : onDebug({
67
+ await onDebug?.({
101
68
  type: "table",
102
69
  command: command,
103
70
  tableName,
104
71
  data: { param1, param2, onChange, onError },
105
- }));
72
+ });
106
73
  checkSubscriptionArgs(param1, param2, onChange, onError);
107
74
  return subscriptionHandler.addSub(db, { tableName, command, param1, param2 }, onChange, onError);
108
75
  };
@@ -121,12 +88,12 @@ const getDB = ({ tableSchema, onDebug, syncedTable, syncHandler, syncHandlerV2,
121
88
  }
122
89
  if (command === SUBSCRIBE_ONE || !subscribeCommands.includes(SUBSCRIBE_ONE)) {
123
90
  dboTable[SUBSCRIBE_ONE] = async function (param1, param2, onChange) {
124
- await (onDebug === null || onDebug === void 0 ? void 0 : onDebug({
91
+ await onDebug?.({
125
92
  type: "table",
126
93
  command: SUBSCRIBE_ONE,
127
94
  tableName,
128
95
  data: { param1, param2, onChange },
129
- }));
96
+ });
130
97
  checkSubscriptionArgs(param1, param2, onChange);
131
98
  const onChangeOne = (rows) => {
132
99
  onChange(rows[0]);
@@ -137,20 +104,19 @@ const getDB = ({ tableSchema, onDebug, syncedTable, syncHandler, syncHandlerV2,
137
104
  }
138
105
  else {
139
106
  const method = async function (param1, param2, param3) {
140
- var _a;
141
107
  if (command === "getColumns" && !param1 && !param2 && !param3) {
142
- const columns = (_a = tableSchema === null || tableSchema === void 0 ? void 0 : tableSchema.find((t) => t.name === tableName)) === null || _a === void 0 ? void 0 : _a.columns;
108
+ const columns = tableSchema?.find((t) => t.name === tableName)?.columns;
143
109
  if (columns)
144
110
  return columns;
145
111
  }
146
- await (onDebug === null || onDebug === void 0 ? void 0 : onDebug({
112
+ await onDebug?.({
147
113
  type: "table",
148
114
  command: command,
149
115
  tableName,
150
116
  data: { param1, param2, param3 },
151
- }));
117
+ });
152
118
  return new Promise((resolve, reject) => {
153
- socket.emit(preffix, { tableName, command, param1, param2, param3 },
119
+ socket.emit(prefix, { tableName, command, param1, param2, param3 },
154
120
  /* Get col definition and re-cast data types?! */
155
121
  (err, res) => {
156
122
  if (err)
@@ -8,7 +8,7 @@ const getMethods = ({ onDebug, methods, socket, }) => {
8
8
  const _methods = JSON.parse(JSON.stringify(methods));
9
9
  _methods.map(({ name, description, input, output }) => {
10
10
  const onRun = async function (input) {
11
- await (onDebug === null || onDebug === void 0 ? void 0 : onDebug({ type: "method", command: name, data: { params: input } }));
11
+ await onDebug?.({ type: "method", command: name, data: { params: input } });
12
12
  return new Promise((resolve, reject) => {
13
13
  socket.emit(prostgles_types_1.CHANNELS.METHOD, { name, input }, (err, res) => {
14
14
  if (err)