prostgles-client 4.0.174 → 4.0.176

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 (42) hide show
  1. package/.eslintignore +1 -0
  2. package/.prettierignore +2 -0
  3. package/.prettierrc +4 -0
  4. package/.vscode/settings.json +10 -1
  5. package/dist/Auth.d.ts +2 -2
  6. package/dist/Auth.d.ts.map +1 -1
  7. package/dist/Auth.js +28 -18
  8. package/dist/SyncedTable/SyncedTable.d.ts +12 -12
  9. package/dist/SyncedTable/SyncedTable.d.ts.map +1 -1
  10. package/dist/SyncedTable/SyncedTable.js +92 -78
  11. package/dist/SyncedTable/getMultiSyncSubscription.d.ts.map +1 -1
  12. package/dist/SyncedTable/getMultiSyncSubscription.js +11 -9
  13. package/dist/index.js +1 -1
  14. package/dist/index.no-sync.js +1 -1
  15. package/dist/prostgles.d.ts +24 -0
  16. package/dist/prostgles.d.ts.map +1 -1
  17. package/package.json +3 -2
  18. package/tsconfig.json +1 -3
  19. package/dist/typeTests.d.ts +0 -2
  20. package/dist/typeTests.d.ts.map +0 -1
  21. package/dist/typeTests.js +0 -37
  22. package/lib/Auth.ts +0 -155
  23. package/lib/FunctionQueuer.ts +0 -71
  24. package/lib/SyncedTable/SyncedTable.ts +0 -1078
  25. package/lib/SyncedTable/getMultiSyncSubscription.ts +0 -67
  26. package/lib/SyncedTable/getSingleSyncSubscription.ts +0 -0
  27. package/lib/getDbHandler.ts +0 -152
  28. package/lib/getMethods.ts +0 -30
  29. package/lib/getSqlHandler.ts +0 -174
  30. package/lib/getSubscriptionHandler.ts +0 -211
  31. package/lib/getSyncHandler.ts +0 -201
  32. package/lib/md5.ts +0 -183
  33. package/lib/prostgles-full-cdn.ts +0 -5
  34. package/lib/prostgles-full.ts +0 -8
  35. package/lib/prostgles.ts +0 -351
  36. package/lib/react-hooks.ts +0 -356
  37. package/lib/typeTests.ts +0 -64
  38. package/lib/useProstglesClient.ts +0 -92
  39. package/tests/package-lock.json +0 -71
  40. package/tests/package.json +0 -17
  41. package/tests/test.ts +0 -10
  42. package/tests/tsconfig.json +0 -27
@@ -1,201 +0,0 @@
1
- import { CHANNELS, omitKeys, type ClientSyncHandles } from "prostgles-types";
2
- import type { AnyFunction, CoreParams, InitOptions, SyncInfo } from "./prostgles";
3
- import { debug, isEqual } from "./prostgles";
4
- import { FunctionQueuer } from "./FunctionQueuer";
5
- import type { DbTableSync, SyncOptions } from "./SyncedTable/SyncedTable";
6
-
7
- type SyncConfig = CoreParams & {
8
- onCall: AnyFunction;
9
- syncInfo: SyncInfo;
10
- triggers: ClientSyncHandles[]
11
- };
12
- type Syncs = {
13
- [channelName: string]: SyncConfig;
14
- };
15
-
16
- const preffix = CHANNELS._preffix;
17
-
18
- export const getSyncHandler = ({ socket, onDebug }: Pick<InitOptions, "socket" | "onDebug">) => {
19
-
20
- let syncedTables: Record<string, any> = {};
21
- let syncs: Syncs = {};
22
-
23
- const destroySyncs = async () => {
24
- debug("destroySyncs", { syncedTables });
25
- syncs = {};
26
- Object.values(syncedTables).map((s: any) => {
27
- if (s && s.destroy) s.destroy();
28
- });
29
- syncedTables = {};
30
- }
31
-
32
- function _unsync(channelName: string, triggers: ClientSyncHandles) {
33
- debug("_unsync", { channelName, triggers })
34
- return new Promise((resolve, reject) => {
35
- if (syncs[channelName]) {
36
- syncs[channelName]!.triggers = syncs[channelName]!.triggers.filter(tr => (
37
- tr.onPullRequest !== triggers.onPullRequest &&
38
- tr.onSyncRequest !== triggers.onSyncRequest &&
39
- tr.onUpdates !== triggers.onUpdates
40
- ));
41
-
42
- if (!syncs[channelName]!.triggers.length) {
43
- socket.emit(channelName + "unsync", {}, (err: any, res: any) => {
44
- if (err) reject(err);
45
- else resolve(res);
46
- });
47
- socket.removeListener(channelName, syncs[channelName]!.onCall);
48
- delete syncs[channelName];
49
- }
50
- }
51
- });
52
- }
53
- function addServerSync({ tableName, command, param1, param2 }: CoreParams, onSyncRequest: ClientSyncHandles["onSyncRequest"]): Promise<SyncInfo> {
54
- return new Promise((resolve, reject) => {
55
- socket.emit(preffix, { tableName, command, param1, param2 }, (err: any, res: SyncInfo) => {
56
- if (err) {
57
- console.error(err);
58
- reject(err);
59
- } else if (res as any) {
60
- const { id_fields, synced_field, channelName } = res;
61
-
62
- socket.emit(channelName, { onSyncRequest: onSyncRequest({}) }, (response: any) => {
63
- console.log(response);
64
- });
65
- resolve({ id_fields, synced_field, channelName });
66
- }
67
- });
68
- });
69
- }
70
-
71
- const addSyncQueuer = new FunctionQueuer(_addSync, ([{ tableName }]) => tableName);
72
- async function addSync(params: CoreParams, triggers: ClientSyncHandles): Promise<any> {
73
- return addSyncQueuer.run([params, triggers])
74
- }
75
- async function _addSync({ tableName, command, param1, param2 }: CoreParams, triggers: ClientSyncHandles): Promise<any> {
76
- const { onSyncRequest } = triggers;
77
-
78
- function makeHandler(channelName: string) {
79
- const unsync = function () {
80
- _unsync(channelName, triggers);
81
- }
82
-
83
- const syncData: DbTableSync["syncData"] = function (data, deleted, cb) {
84
- socket.emit(channelName,
85
- {
86
- onSyncRequest: {
87
- ...onSyncRequest({}),
88
- ...({ data }),
89
- ...({ deleted })
90
- },
91
- },
92
- !cb ? null : (response?: any) => {
93
- cb(response)
94
- }
95
- );
96
- }
97
-
98
- return Object.freeze({ unsync, syncData });
99
- }
100
-
101
- const existingChannel = Object.keys(syncs).find(ch => {
102
- const s = syncs[ch];
103
- return (
104
- s &&
105
- s.tableName === tableName &&
106
- s.command === command &&
107
- isEqual(s.param1, param1) &&
108
- isEqual(s.param2, param2)
109
- );
110
- });
111
-
112
- if (existingChannel) {
113
- syncs[existingChannel]!.triggers.push(triggers);
114
- return makeHandler(existingChannel);
115
- } else {
116
- const sync_info = await addServerSync({ tableName, command, param1, param2 }, onSyncRequest);
117
- const { channelName } = sync_info;
118
- const onCall = function (data: any | undefined, cb: AnyFunction) {
119
- /*
120
- Client will:
121
- 1. Send last_synced on(onSyncRequest)
122
- 2. Send data >= server_synced on(onPullRequest)
123
- 3. Send data on CRUD emit(data.data)
124
- 4. Upsert data.data on(data.data)
125
- */
126
- if (!data) return;
127
-
128
- if (!syncs[channelName]) return;
129
-
130
- syncs[channelName]!.triggers.map(({ onUpdates, onSyncRequest, onPullRequest }) => {
131
- if (data.data) {
132
- Promise.resolve(onUpdates(data))
133
- .then(() => {
134
- cb({ ok: true })
135
- })
136
- .catch(err => {
137
- cb({ err });
138
- });
139
- } else if (data.onSyncRequest) {
140
- Promise.resolve(onSyncRequest(data.onSyncRequest))
141
- .then(res => cb({ onSyncRequest: res }))
142
- .catch(err => {
143
- cb({ err });
144
- })
145
-
146
- } else if (data.onPullRequest) {
147
- Promise.resolve(onPullRequest(data.onPullRequest))
148
- .then(arr => {
149
- cb({ data: arr });
150
- })
151
- .catch(err => {
152
- cb({ err });
153
- })
154
- } else {
155
- console.log("unexpected response")
156
- }
157
- })
158
-
159
-
160
- }
161
- syncs[channelName] = {
162
- tableName,
163
- command,
164
- param1,
165
- param2,
166
- triggers: [triggers],
167
- syncInfo: sync_info,
168
- onCall
169
- }
170
-
171
- socket.on(channelName, onCall);
172
- return makeHandler(channelName);
173
- }
174
- }
175
-
176
- const reAttachAll = async () => {
177
- let reAttached = 0;
178
- Object.entries(syncs).forEach(async ([ch, s]) => {
179
- const firstTrigger = s.triggers[0];
180
- if(firstTrigger){
181
- try {
182
- await addServerSync(s, firstTrigger.onSyncRequest);
183
- socket.on(ch, s.onCall);
184
- reAttached++;
185
- } catch (err) {
186
- console.error("There was an issue reconnecting olf subscriptions", err)
187
- }
188
- }
189
- });
190
- if(reAttached){
191
- console.log("reAttached", reAttached, " syncs", syncs);
192
- }
193
- }
194
-
195
- return {
196
- destroySyncs,
197
- syncedTables,
198
- addSync,
199
- reAttachAll,
200
- };
201
- }
package/lib/md5.ts DELETED
@@ -1,183 +0,0 @@
1
- function md5cycle(x, k) {
2
- var a = x[0], b = x[1], c = x[2], d = x[3];
3
-
4
- a = ff(a, b, c, d, k[0], 7, -680876936);
5
- d = ff(d, a, b, c, k[1], 12, -389564586);
6
- c = ff(c, d, a, b, k[2], 17, 606105819);
7
- b = ff(b, c, d, a, k[3], 22, -1044525330);
8
- a = ff(a, b, c, d, k[4], 7, -176418897);
9
- d = ff(d, a, b, c, k[5], 12, 1200080426);
10
- c = ff(c, d, a, b, k[6], 17, -1473231341);
11
- b = ff(b, c, d, a, k[7], 22, -45705983);
12
- a = ff(a, b, c, d, k[8], 7, 1770035416);
13
- d = ff(d, a, b, c, k[9], 12, -1958414417);
14
- c = ff(c, d, a, b, k[10], 17, -42063);
15
- b = ff(b, c, d, a, k[11], 22, -1990404162);
16
- a = ff(a, b, c, d, k[12], 7, 1804603682);
17
- d = ff(d, a, b, c, k[13], 12, -40341101);
18
- c = ff(c, d, a, b, k[14], 17, -1502002290);
19
- b = ff(b, c, d, a, k[15], 22, 1236535329);
20
-
21
- a = gg(a, b, c, d, k[1], 5, -165796510);
22
- d = gg(d, a, b, c, k[6], 9, -1069501632);
23
- c = gg(c, d, a, b, k[11], 14, 643717713);
24
- b = gg(b, c, d, a, k[0], 20, -373897302);
25
- a = gg(a, b, c, d, k[5], 5, -701558691);
26
- d = gg(d, a, b, c, k[10], 9, 38016083);
27
- c = gg(c, d, a, b, k[15], 14, -660478335);
28
- b = gg(b, c, d, a, k[4], 20, -405537848);
29
- a = gg(a, b, c, d, k[9], 5, 568446438);
30
- d = gg(d, a, b, c, k[14], 9, -1019803690);
31
- c = gg(c, d, a, b, k[3], 14, -187363961);
32
- b = gg(b, c, d, a, k[8], 20, 1163531501);
33
- a = gg(a, b, c, d, k[13], 5, -1444681467);
34
- d = gg(d, a, b, c, k[2], 9, -51403784);
35
- c = gg(c, d, a, b, k[7], 14, 1735328473);
36
- b = gg(b, c, d, a, k[12], 20, -1926607734);
37
-
38
- a = hh(a, b, c, d, k[5], 4, -378558);
39
- d = hh(d, a, b, c, k[8], 11, -2022574463);
40
- c = hh(c, d, a, b, k[11], 16, 1839030562);
41
- b = hh(b, c, d, a, k[14], 23, -35309556);
42
- a = hh(a, b, c, d, k[1], 4, -1530992060);
43
- d = hh(d, a, b, c, k[4], 11, 1272893353);
44
- c = hh(c, d, a, b, k[7], 16, -155497632);
45
- b = hh(b, c, d, a, k[10], 23, -1094730640);
46
- a = hh(a, b, c, d, k[13], 4, 681279174);
47
- d = hh(d, a, b, c, k[0], 11, -358537222);
48
- c = hh(c, d, a, b, k[3], 16, -722521979);
49
- b = hh(b, c, d, a, k[6], 23, 76029189);
50
- a = hh(a, b, c, d, k[9], 4, -640364487);
51
- d = hh(d, a, b, c, k[12], 11, -421815835);
52
- c = hh(c, d, a, b, k[15], 16, 530742520);
53
- b = hh(b, c, d, a, k[2], 23, -995338651);
54
-
55
- a = ii(a, b, c, d, k[0], 6, -198630844);
56
- d = ii(d, a, b, c, k[7], 10, 1126891415);
57
- c = ii(c, d, a, b, k[14], 15, -1416354905);
58
- b = ii(b, c, d, a, k[5], 21, -57434055);
59
- a = ii(a, b, c, d, k[12], 6, 1700485571);
60
- d = ii(d, a, b, c, k[3], 10, -1894986606);
61
- c = ii(c, d, a, b, k[10], 15, -1051523);
62
- b = ii(b, c, d, a, k[1], 21, -2054922799);
63
- a = ii(a, b, c, d, k[8], 6, 1873313359);
64
- d = ii(d, a, b, c, k[15], 10, -30611744);
65
- c = ii(c, d, a, b, k[6], 15, -1560198380);
66
- b = ii(b, c, d, a, k[13], 21, 1309151649);
67
- a = ii(a, b, c, d, k[4], 6, -145523070);
68
- d = ii(d, a, b, c, k[11], 10, -1120210379);
69
- c = ii(c, d, a, b, k[2], 15, 718787259);
70
- b = ii(b, c, d, a, k[9], 21, -343485551);
71
-
72
- x[0] = add32(a, x[0]);
73
- x[1] = add32(b, x[1]);
74
- x[2] = add32(c, x[2]);
75
- x[3] = add32(d, x[3]);
76
-
77
- }
78
-
79
- function cmn(q, a, b, x, s, t) {
80
- a = add32(add32(a, q), add32(x, t));
81
- return add32((a << s) | (a >>> (32 - s)), b);
82
- }
83
-
84
- function ff(a, b, c, d, x, s, t) {
85
- return cmn((b & c) | ((~b) & d), a, b, x, s, t);
86
- }
87
-
88
- function gg(a, b, c, d, x, s, t) {
89
- return cmn((b & d) | (c & (~d)), a, b, x, s, t);
90
- }
91
-
92
- function hh(a, b, c, d, x, s, t) {
93
- return cmn(b ^ c ^ d, a, b, x, s, t);
94
- }
95
-
96
- function ii(a, b, c, d, x, s, t) {
97
- return cmn(c ^ (b | (~d)), a, b, x, s, t);
98
- }
99
-
100
- function md51(s) {
101
- var n = s.length,
102
- state = [1732584193, -271733879, -1732584194, 271733878], i;
103
- for (i = 64; i <= s.length; i += 64) {
104
- md5cycle(state, md5blk(s.substring(i - 64, i)));
105
- }
106
- s = s.substring(i - 64);
107
- var tail = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];
108
- for (i = 0; i < s.length; i++)
109
- tail[i >> 2] |= s.charCodeAt(i) << ((i % 4) << 3);
110
- tail[i >> 2] |= 0x80 << ((i % 4) << 3);
111
- if (i > 55) {
112
- md5cycle(state, tail);
113
- for (i = 0; i < 16; i++) tail[i] = 0;
114
- }
115
- tail[14] = n * 8;
116
- md5cycle(state, tail);
117
- return state;
118
- }
119
-
120
- /* there needs to be support for Unicode here,
121
- * unless we pretend that we can redefine the MD-5
122
- * algorithm for multi-byte characters (perhaps
123
- * by adding every four 16-bit characters and
124
- * shortening the sum to 32 bits). Otherwise
125
- * I suggest performing MD-5 as if every character
126
- * was two bytes--e.g., 0040 0025 = @%--but then
127
- * how will an ordinary MD-5 sum be matched?
128
- * There is no way to standardize text to something
129
- * like UTF-8 before transformation; speed cost is
130
- * utterly prohibitive. The JavaScript standard
131
- * itself needs to look at this: it should start
132
- * providing access to strings as preformed UTF-8
133
- * 8-bit unsigned value arrays.
134
- */
135
- function md5blk(s) { /* I figured global was faster. */
136
- var md5blks = [], i; /* Andy King said do it this way. */
137
- for (i = 0; i < 64; i += 4) {
138
- // @ts-ignore
139
- md5blks[i >> 2] = s.charCodeAt(i)
140
- + (s.charCodeAt(i + 1) << 8)
141
- + (s.charCodeAt(i + 2) << 16)
142
- + (s.charCodeAt(i + 3) << 24);
143
- }
144
- return md5blks;
145
- }
146
-
147
- var hex_chr = '0123456789abcdef'.split('');
148
-
149
- function rhex(n) {
150
- var s = '', j = 0;
151
- for (; j < 4; j++)
152
- s += hex_chr[(n >> (j * 8 + 4)) & 0x0F]!
153
- + hex_chr[(n >> (j * 8)) & 0x0F];
154
- return s;
155
- }
156
-
157
- function hex(x) {
158
- for (var i = 0; i < x.length; i++)
159
- x[i] = rhex(x[i]);
160
- return x.join('');
161
- }
162
-
163
- export default function md5(s) {
164
- return hex(md51(s));
165
- }
166
-
167
- /* this function is much faster,
168
- so if possible we use it. Some IEs
169
- are the only ones I know of that
170
- need the idiotic second function,
171
- generated by an if clause. */
172
-
173
- function add32(a, b) {
174
- return (a + b) & 0xFFFFFFFF;
175
- }
176
-
177
- if (md5('hello') != '5d41402abc4b2a76b9719d911017c592') {
178
- function add32(x, y) {
179
- var lsw = (x & 0xFFFF) + (y & 0xFFFF),
180
- msw = (x >> 16) + (y >> 16) + (lsw >> 16);
181
- return (msw << 16) | (lsw & 0xFFFF);
182
- }
183
- }
@@ -1,5 +0,0 @@
1
- import { prostgles as pgls, InitOptions } from "./prostgles";
2
- import { SyncedTable } from "./SyncedTable/SyncedTable";
3
- export function prostgles (params: InitOptions) {
4
- return pgls(params as any, SyncedTable);
5
- }
@@ -1,8 +0,0 @@
1
- import { prostgles as pgls, type InitOptions } from "./prostgles";
2
- import { SyncedTable } from "./SyncedTable/SyncedTable";
3
- function prostgles<DBSchema = void>(params: InitOptions<DBSchema>) {
4
- return pgls(params as any, SyncedTable);
5
- }
6
- prostgles.SyncedTable = SyncedTable;
7
-
8
- export = prostgles;