@iebh/tera-fy 2.3.7 → 2.3.9

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 (41) hide show
  1. package/CHANGELOG.md +35 -0
  2. package/dist/lib/projectFile.js +118 -6
  3. package/dist/lib/projectFile.js.map +1 -1
  4. package/dist/lib/syncro/entities.d.ts +7 -1
  5. package/dist/lib/syncro/entities.js +79 -95
  6. package/dist/lib/syncro/entities.js.map +1 -1
  7. package/dist/lib/syncro/keyed.js +24 -23
  8. package/dist/lib/syncro/keyed.js.map +1 -1
  9. package/dist/lib/syncro/syncro.d.ts +15 -2
  10. package/dist/lib/syncro/syncro.js +124 -43
  11. package/dist/lib/syncro/syncro.js.map +1 -1
  12. package/dist/lib/terafy.bootstrapper.js +11 -11
  13. package/dist/lib/terafy.bootstrapper.js.map +1 -1
  14. package/dist/lib/terafy.client.js +157 -158
  15. package/dist/lib/terafy.client.js.map +1 -1
  16. package/dist/lib/terafy.proxy.js +32 -27
  17. package/dist/lib/terafy.proxy.js.map +1 -1
  18. package/dist/lib/terafy.server.js +52 -54
  19. package/dist/lib/terafy.server.js.map +1 -1
  20. package/dist/plugin.vue2.es2019.js +27 -27
  21. package/dist/plugins/firebase.js +22 -10
  22. package/dist/plugins/firebase.js.map +1 -1
  23. package/dist/plugins/vue2.d.ts +1 -2
  24. package/dist/plugins/vue2.js +24 -17
  25. package/dist/plugins/vue2.js.map +1 -1
  26. package/dist/plugins/vue3.d.ts +1 -2
  27. package/dist/plugins/vue3.js +7 -11
  28. package/dist/plugins/vue3.js.map +1 -1
  29. package/dist/terafy.bootstrapper.es2019.js +2 -2
  30. package/dist/terafy.bootstrapper.js +2 -2
  31. package/dist/terafy.es2019.js +2 -2
  32. package/dist/terafy.js +1 -1
  33. package/lib/syncro/entities.ts +94 -103
  34. package/lib/syncro/keyed.ts +1 -0
  35. package/lib/syncro/syncro.ts +44 -8
  36. package/lib/terafy.client.ts +0 -1
  37. package/lib/terafy.server.ts +6 -7
  38. package/package.json +4 -3
  39. package/plugins/vue2.ts +2 -3
  40. package/plugins/vue3.ts +2 -4
  41. package/tsconfig.json +3 -3
package/CHANGELOG.md CHANGED
@@ -1,5 +1,40 @@
1
1
  # Changelog
2
2
 
3
+ ## [2.3.9](https://github.com/IEBH/TERA-fy/compare/v2.3.8...v2.3.9) (2026-05-09)
4
+
5
+
6
+ ### fix
7
+
8
+ * First draft at migrating away from Supabase(y) for row updates in the Syncro ([b1b65cb](https://github.com/IEBH/TERA-fy/commit/b1b65cb55ee08f3d87467061a8e26376251fab08))
9
+ * Tidup and fixes ([cd23fd8](https://github.com/IEBH/TERA-fy/commit/cd23fd81cd99f47fe15bdcc5ed06a9083fae243a))
10
+ * TS interface definition errors ([a8310de](https://github.com/IEBH/TERA-fy/commit/a8310de1d24f110761908aea80c943d8403bf16b))
11
+ * Wrong object binding in (probably unused) keyed utils ([77fba38](https://github.com/IEBH/TERA-fy/commit/77fba38137b19f524a25fbb1cb1ae8e5480e7b2f))
12
+
13
+ ### refactor
14
+
15
+ * Change hyperdrive binding from db -> HYPERDRIVE so its consistant with other uses ([852d6c6](https://github.com/IEBH/TERA-fy/commit/852d6c6f4be9020b66075678a9477544b276eff2))
16
+
17
+ ## [2.3.8](https://github.com/IEBH/TERA-fy/compare/v2.3.7...v2.3.8) (2026-04-30)
18
+
19
+
20
+ ### feat
21
+
22
+ * Throttling for excessive state writes ([2fd9c47](https://github.com/IEBH/TERA-fy/commit/2fd9c4731615f9bbec85f2a2910ac3bb3397a5a5))
23
+
24
+ ### fix
25
+
26
+ * Bumped TSC to ES2022 spec so that Error with {cause:Error} are supported when compiling ([336e153](https://github.com/IEBH/TERA-fy/commit/336e15384d896653ae063f7e52cea43e55dbdee0))
27
+ * Misc fixes to keep TS happy ([073b35f](https://github.com/IEBH/TERA-fy/commit/073b35f2cad11e30e22de0ed2c3dda2331f9d12c))
28
+ * Not correctly watching .ts files with nodemon ([731b0c5](https://github.com/IEBH/TERA-fy/commit/731b0c5ca983452928ca17361f4c0572c4aa1042))
29
+
30
+ ### refactor
31
+
32
+ * Various fixes to keep Eslint happy ([8e18f40](https://github.com/IEBH/TERA-fy/commit/8e18f401aec76b7e6b4ab6c1105b08571d19388d))
33
+
34
+ ### task
35
+
36
+ * Bump NPMs ([f92fcd5](https://github.com/IEBH/TERA-fy/commit/f92fcd5f133cb8bb06f35c6a038d07b2b72863fd))
37
+
3
38
  ## [2.3.6](https://github.com/IEBH/TERA-fy/compare/v2.3.5...v2.3.6) (2026-04-07)
4
39
 
5
40
 
@@ -7,6 +7,124 @@ import { pick, omit } from 'lodash-es';
7
7
  * @class ProjectFile
8
8
  */
9
9
  export default class ProjectFile {
10
+ /**
11
+ * Parent TeraClient instance used by all helper functions
12
+ * @type {TeraClient}
13
+ * @private
14
+ */
15
+ _tera;
16
+ /**
17
+ * The TERA compatible unique ID of the file
18
+ * NOTE: This is computed each time from the Base64 of the file path
19
+ * @type {String}
20
+ */
21
+ id;
22
+ /**
23
+ * The raw Supabase UUID of the file
24
+ * @type {String}
25
+ */
26
+ sbId;
27
+ /**
28
+ * Relative name path (can contain prefix directories) for the human readable file name
29
+ * @type {String}
30
+ */
31
+ name;
32
+ /**
33
+ * CSS class to use as the file icon
34
+ * @type {String}
35
+ */
36
+ icon;
37
+ /**
38
+ * Full path to the file
39
+ * This is also used as the unique identifier within the project
40
+ * @type {String}
41
+ */
42
+ path;
43
+ /**
44
+ * Fully qualified URL to view / access / download the file from TERA
45
+ * This will usually open an edit UI within the TERA site
46
+ * @type {String}
47
+ */
48
+ url;
49
+ /**
50
+ * Rewrite of the URL where the absolute URL has been removed in place of a relative path, assuming the owner project is active
51
+ * This is used to direct to the edit/view/download UI when the files project is active and is usually used in place of URL for TERA related operations
52
+ * @type {String}
53
+ */
54
+ teraUrl;
55
+ /**
56
+ * An object representing meta file parts of a file name
57
+ * @type {Object}
58
+ * @property {String} basename The filename + extension (i.e. everything without directory name)
59
+ * @property {String} filename The file portion of the name (basename without the extension)
60
+ * @property {String} ext The extension portion of the name (always lower case)
61
+ * @property {String} dirName The directory path portion of the name
62
+ */
63
+ // Using 'any' for simplicity, define an interface for better type safety if desired
64
+ parsedName;
65
+ /**
66
+ * A date representing when the file was created
67
+ * @type {Date}
68
+ */
69
+ // Using Date | undefined because constructor checks if it exists
70
+ created;
71
+ /**
72
+ * A human readable, formatted version of "created"
73
+ * @type {String}
74
+ */
75
+ createdFormatted;
76
+ /**
77
+ * A date representing when the file was created
78
+ * @type {Date}
79
+ */
80
+ // Using Date | undefined because constructor checks if it exists
81
+ modified;
82
+ /**
83
+ * A human readable, formatted version of "modified"
84
+ * @type {String}
85
+ */
86
+ modifiedFormatted;
87
+ /**
88
+ * A date representing when the file was last accessed
89
+ * @type {Date}
90
+ */
91
+ // Using Date | undefined because constructor checks if it exists
92
+ accessed;
93
+ /**
94
+ * A human readable, formatted version of "accessed"
95
+ * @type {String}
96
+ */
97
+ accessedFormatted;
98
+ /**
99
+ * Size, in bytes, of the file
100
+ * @type {Number}
101
+ */
102
+ // Using number | undefined because constructor uses `|| 0`
103
+ size;
104
+ /**
105
+ * A human readable, formatted version of the file size
106
+ * @type {String}
107
+ */
108
+ sizeFormatted;
109
+ /**
110
+ * The associated mime type for the file
111
+ * @type {String}
112
+ */
113
+ mime;
114
+ /**
115
+ * Additional meta information for the file
116
+ * @type {Object}
117
+ */
118
+ // Using Record<string, any> for a generic object, adjust if meta has a known structure
119
+ meta = {};
120
+ /**
121
+ * Whether this is a folder or not
122
+ */
123
+ isFolder;
124
+ /**
125
+ * If it is a folder, it will have an array of files in the folder
126
+ */
127
+ files;
10
128
  /**
11
129
  * ProjectFile constructor
12
130
  * Takes the input basic file type from Supabase and adds additional formatted fields
@@ -14,12 +132,6 @@ export default class ProjectFile {
14
132
  * @param {TeraFyClient} baseFile.tera The associated TeraFyClient instance to use for some file methods
15
133
  */
16
134
  constructor(baseFile) {
17
- /**
18
- * Additional meta information for the file
19
- * @type {Object}
20
- */
21
- // Using Record<string, any> for a generic object, adjust if meta has a known structure
22
- this.meta = {};
23
135
  // Note: baseFile.tera is assumed to exist based on the check below and the SupabaseFile type definition above
24
136
  if (!baseFile.tera)
25
137
  throw new Error('Basic file requires a `tera` key to access the Tera instance');
@@ -1 +1 @@
1
- {"version":3,"file":"projectFile.js","sourceRoot":"","sources":["../../lib/projectFile.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"projectFile.js","sourceRoot":"","sources":["../../lib/projectFile.ts"],"names":[],"mappings":"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"}
@@ -1,12 +1,18 @@
1
1
  import { BoundSupabaseyFunction } from '@iebh/supabasey';
2
+ export interface PostgresSql {
3
+ (strings: TemplateStringsArray, ...values: any[]): Promise<any[]>;
4
+ json(value: any): any;
5
+ }
2
6
  interface SyncroEntityConfig {
3
7
  singular: string;
4
8
  initState: (args: {
9
+ HYPERDRIVE: PostgresSql;
5
10
  supabasey: BoundSupabaseyFunction;
6
11
  id: string;
7
12
  relation?: string;
8
13
  }) => Promise<any>;
9
14
  flushState: (args: {
15
+ HYPERDRIVE?: PostgresSql;
10
16
  supabasey: BoundSupabaseyFunction;
11
17
  state: any;
12
18
  id?: string;
@@ -21,7 +27,7 @@ type SyncroConfig = Record<string, SyncroEntityConfig>;
21
27
  * @type {Object} An object lookup of entities
22
28
  *
23
29
  * @property {String} singular The singular noun for the item
24
- * @property {Function} initState Function called to initialize state when Firestore has no existing document. Called as `({supabase:BoundSupabaseyFunction, db:BoundHyperdriveInstance, entity:String, id:String, relation?:string})` and expected to return the initial data object state
30
+ * @property {Function} initState Function called to initialize state when Firestore has no existing document. Called as `({HYPERDRIVE:PostgresSql, supabasey:BoundSupabaseyFunction, id:String, relation?:string})` and expected to return the initial data object state
25
31
  * @property {Function} flushState Function called to flush state from Firebase to Supabase. Called the same as `initState` + `{state:Object}`
26
32
  */
27
33
  declare const syncroConfig: SyncroConfig;
@@ -1,4 +1,4 @@
1
- /* eslint-disable no-unused-vars */
1
+ /* eslint-disable jsdoc/reject-function-type, no-unused-vars */
2
2
  // @ts-expect-error TODO: Remove when reflib gets declaration file
3
3
  import Reflib from '@iebh/reflib';
4
4
  import { v4 as uuid4 } from 'uuid';
@@ -9,41 +9,47 @@ import { nanoid } from 'nanoid';
9
9
  * @type {Object} An object lookup of entities
10
10
  *
11
11
  * @property {String} singular The singular noun for the item
12
- * @property {Function} initState Function called to initialize state when Firestore has no existing document. Called as `({supabase:BoundSupabaseyFunction, db:BoundHyperdriveInstance, entity:String, id:String, relation?:string})` and expected to return the initial data object state
12
+ * @property {Function} initState Function called to initialize state when Firestore has no existing document. Called as `({HYPERDRIVE:PostgresSql, supabasey:BoundSupabaseyFunction, id:String, relation?:string})` and expected to return the initial data object state
13
13
  * @property {Function} flushState Function called to flush state from Firebase to Supabase. Called the same as `initState` + `{state:Object}`
14
14
  */
15
15
  const syncroConfig = {
16
16
  institutes: {
17
17
  singular: 'institute',
18
- async initState({ supabasey, id }) {
19
- const institute = await supabasey((supabase) => supabase
20
- .from('institutes')
21
- .select('data')
22
- .eq('id', id)
23
- .maybeSingle());
24
- if (institute)
25
- return institute.data; // institute is valid and already exists
18
+ async initState({ HYPERDRIVE, id }) {
19
+ let institute = await HYPERDRIVE `
20
+ SELECT data
21
+ FROM institutes
22
+ WHERE id = ${id}
23
+ LIMIT 1
24
+ `;
25
+ if (institute.length > 0) {
26
+ return institute[0].data; // institute is valid and already exists
27
+ }
28
+ else {
29
+ throw new Error(`Syncro institute "${id}" not found`);
30
+ }
26
31
  },
27
32
  flushState({ supabasey, state, id }) {
28
- // @ts-expect-error Typescript struggles to resolve supabasey import correctly
29
- return supabasey.rpc('syncro_merge_data', {
33
+ // FIXME: Better to reuse `env.HYPERDRIVE` instead of supabasey here in future
34
+ return supabasey((supabase) => supabase.rpc('syncro_merge_data', {
30
35
  table_name: 'institutes',
31
36
  entity_id: id,
32
37
  new_data: state,
33
- });
38
+ }));
34
39
  },
35
40
  }, // }}}
36
41
  projects: {
37
42
  singular: 'project',
38
- async initState({ supabasey, id }) {
39
- const projectData = await supabasey((supabase) => supabase
40
- .from('projects')
41
- .select('data')
42
- .eq('id', id)
43
- .maybeSingle());
44
- if (!projectData)
43
+ async initState({ HYPERDRIVE, supabasey, id }) {
44
+ let projects = await HYPERDRIVE `
45
+ SELECT data
46
+ FROM projects
47
+ WHERE id = ${id}
48
+ LIMIT 1
49
+ `;
50
+ if (projects.length == 0)
45
51
  throw new Error(`Syncro project "${id}" not found`);
46
- const data = projectData.data;
52
+ const data = projects[0].data;
47
53
  // MIGRATION - Move data.temp{} into Supabase files + add pointer to filename {{{
48
54
  if (data.temp // Project contains temp subkey
49
55
  && Object.values(data.temp).some((t) => typeof t == 'object') // Some of the temp keys are objects
@@ -52,7 +58,7 @@ const syncroConfig = {
52
58
  const tempObject = data.temp;
53
59
  await Promise.all(Object.entries(data.temp)
54
60
  .filter(([, branch]) => typeof branch == 'object')
55
- .map(([toolKey,]) => {
61
+ .map(([toolKey]) => {
56
62
  console.log(`[MIGRATION] Converting data.temp[${toolKey}]...`);
57
63
  const toolName = toolKey.split('-')[0];
58
64
  const fileName = `data-${toolName}-${nanoid()}.json`;
@@ -83,8 +89,8 @@ const syncroConfig = {
83
89
  return data;
84
90
  },
85
91
  flushState({ supabasey, state, fsId }) {
86
- // Import Supabasey because 'supabasey' lowercase is just a function
87
- return supabasey(supabase => supabase.rpc('syncro_merge_data', {
92
+ // FIXME: Better to reuse `env.HYPERDRIVE` instead of supabasey here in future
93
+ return supabasey((supabase) => supabase.rpc('syncro_merge_data', {
88
94
  table_name: 'projects',
89
95
  entity_id: fsId,
90
96
  new_data: state,
@@ -93,7 +99,7 @@ const syncroConfig = {
93
99
  }, // }}}
94
100
  project_libraries: {
95
101
  singular: 'project library',
96
- async initState({ supabasey, id, relation }) {
102
+ async initState({ id, relation, supabasey }) {
97
103
  if (!relation || !/_\*$/.test(relation))
98
104
  throw new Error('Project library relation missing, path should resemble "project_library::${PROJECT}::${LIBRARY_FILE_ID}_*"');
99
105
  const fileId = relation.replace(/_\*$/, '');
@@ -125,59 +131,32 @@ const syncroConfig = {
125
131
  }, // }}}
126
132
  project_namespaces: {
127
133
  singular: 'project namespace',
128
- async initState({ supabasey, id, relation }) {
129
- if (!relation)
130
- throw new Error('Project namespace relation missing, path should resemble "project_namespaces::${PROJECT}::${RELATION}"');
131
- const rows = await supabasey((supabase) => supabase
132
- .from('project_namespaces')
133
- .select('data')
134
- .eq('project', id)
135
- .eq('name', relation)
136
- .limit(1));
137
- if (rows && rows.length == 1) {
138
- return rows[0].data;
139
- }
140
- else {
141
- const newItem = await supabasey((supabase) => supabase
142
- .from('project_namespaces') // Doesn't exist - create it
143
- .insert({
144
- project: id,
145
- name: relation,
146
- data: {},
147
- })
148
- .select('data')
149
- .single() // Assuming insert returns the single inserted row
150
- );
151
- if (!newItem)
152
- throw new Error('Failed to create project namespace');
153
- return newItem.data;
154
- }
134
+ async initState() {
135
+ throw new Error('Updating project_namespaces is not yet supported');
155
136
  },
156
- flushState({ supabasey, state, id, relation }) {
157
- return supabasey((supabase) => supabase
158
- .from('project_namespaces')
159
- .update({
160
- edited_at: new Date().toISOString(),
161
- data: state,
162
- })
163
- .eq('project', id)
164
- .eq('name', relation));
137
+ async flushState() {
138
+ throw new Error('Updating project_namespaces is not yet supported');
165
139
  },
166
140
  }, // }}}
167
141
  test: {
168
142
  singular: 'test',
169
- async initState({ supabasey, id }) {
170
- const rows = await supabasey((supabase) => supabase
171
- .from('test')
172
- .select('data')
173
- .eq('id', id)
174
- .limit(1));
175
- if (!rows || rows.length !== 1)
176
- return Promise.reject(`Syncro test item "${id}" not found`);
177
- return rows[0].data;
143
+ async initState({ HYPERDRIVE, id }) {
144
+ let rows = await HYPERDRIVE `
145
+ SELECT data
146
+ FROM test
147
+ WHERE id = ${id}
148
+ LIMIT 1
149
+ `;
150
+ if (rows.length > 0) {
151
+ return rows[0].data; // User is valid and already exists
152
+ }
153
+ else {
154
+ throw new Error(`Syncro test "${id}" not found`);
155
+ }
178
156
  },
179
157
  flushState({ supabasey, state, fsId }) {
180
- return supabasey(supabase => supabase.rpc('syncro_merge_data', {
158
+ // FIXME: Better to reuse `env.HYPERDRIVE` instead of supabasey here in future
159
+ return supabasey((supabase) => supabase.rpc('syncro_merge_data', {
181
160
  table_name: 'test',
182
161
  entity_id: fsId,
183
162
  new_data: state,
@@ -186,33 +165,38 @@ const syncroConfig = {
186
165
  }, // }}}
187
166
  users: {
188
167
  singular: 'user',
189
- async initState({ supabasey, id }) {
190
- const user = await supabasey((supabase) => supabase
191
- .from('users')
192
- .select('data')
193
- .eq('id', id)
194
- .maybeSingle());
195
- if (user)
196
- return user.data; // User is valid and already exists
197
- // User row doesn't already exist - need to create stub
198
- const newUser = await supabasey((supabase) => supabase
199
- .from('users')
200
- .insert({
168
+ async initState({ HYPERDRIVE, id }) {
169
+ let user = await HYPERDRIVE `
170
+ SELECT data
171
+ FROM users
172
+ WHERE id = ${id}
173
+ LIMIT 1
174
+ `;
175
+ if (user.length > 0)
176
+ return user[0].data; // User is valid and already exists
177
+ // User row doesn't already exist - this shouldn't happen if the user has correctly gone through the onboarding process
178
+ // but... *shrugs*, who knows
179
+ let newUser = await HYPERDRIVE `
180
+ INSERT INTO users
181
+ (
182
+ id,
183
+ data
184
+ )
185
+ VALUES (
186
+ ${id},
187
+ ${HYPERDRIVE.json({
201
188
  id,
202
- data: {
203
- id,
204
- credits: 1000,
205
- },
206
- })
207
- .select('data')
208
- .single() // Assuming insert returns the single inserted row
209
- );
210
- if (!newUser)
211
- throw new Error('Failed to create user');
212
- return newUser.data; // Return back the data that eventually got created - allowing for database triggers, default field values etc.
189
+ credits: 1000,
190
+ })}::JSONB
191
+ )
192
+ `;
193
+ if (!newUser?.length)
194
+ throw new Error(`Failed to create new user "${id}"`);
195
+ return newUser[0].data; // Return back the data that eventually got created - allowing for database triggers, default field values etc.
213
196
  },
214
197
  flushState({ supabasey, state, fsId }) {
215
- return supabasey(supabase => supabase.rpc('syncro_merge_data', {
198
+ // FIXME: Better to reuse `env.HYPERDRIVE` instead of supabasey here in future
199
+ return supabasey((supabase) => supabase.rpc('syncro_merge_data', {
216
200
  table_name: 'users',
217
201
  entity_id: fsId,
218
202
  new_data: state,
@@ -1 +1 @@
1
- {"version":3,"file":"entities.js","sourceRoot":"","sources":["../../../lib/syncro/entities.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"entities.js","sourceRoot":"","sources":["../../../lib/syncro/entities.ts"],"names":[],"mappings":"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"}
@@ -10,6 +10,29 @@ import SyncroEntities from './entities.js';
10
10
  * The original impetus is to allow TERA citation libraries to be held in a Syncro object and flushed back to Supabase when editing has completed
11
11
  */
12
12
  export default class SyncroKeyed extends Syncro {
13
+ /**
14
+ * Config used by this instance to configure behaviour
15
+ *
16
+ * @type {Object}
17
+ * @property {Number} maxKeys The maximum number of keys a member can contain before needing to add a member
18
+ */
19
+ keyedConfig = {
20
+ maxKeys: 2,
21
+ };
22
+ /**
23
+ * Various storage about keyed path
24
+ */
25
+ keyedPath = {
26
+ getKey(path, index) {
27
+ return path + '_' + index;
28
+ },
29
+ };
30
+ /**
31
+ * Member Syncros which form part of this meta Syncro
32
+ *
33
+ * @type {Array<Syncro>}
34
+ */
35
+ members = [];
13
36
  /**
14
37
  * Instance constructor
15
38
  *
@@ -18,29 +41,6 @@ export default class SyncroKeyed extends Syncro {
18
41
  */
19
42
  constructor(path, options) {
20
43
  super(path, options);
21
- /**
22
- * Config used by this instance to configure behaviour
23
- *
24
- * @type {Object}
25
- * @property {Number} maxKeys The maximum number of keys a member can contain before needing to add a member
26
- */
27
- this.keyedConfig = {
28
- maxKeys: 2,
29
- };
30
- /**
31
- * Various storage about keyed path
32
- */
33
- this.keyedPath = {
34
- getKey(path, index) {
35
- return path + '_' + index;
36
- },
37
- };
38
- /**
39
- * Member Syncros which form part of this meta Syncro
40
- *
41
- * @type {Array<Syncro>}
42
- */
43
- this.members = [];
44
44
  if (!/\*/.test(path))
45
45
  throw new Error('SyncroKeyed paths must contain at least one asterisk as an object pagination indicator');
46
46
  const { prefix, suffix } = /^(?<prefix>.+)\*(?<suffix>.*)$/.exec(path).groups;
@@ -98,6 +98,7 @@ export default class SyncroKeyed extends Syncro {
98
98
  throw new Error(`Unknown Sync entity "${entity}"`);
99
99
  // Go fetch the initial state object
100
100
  const state = await SyncroEntities[entityKey].initState({
101
+ HYPERDRIVE: Syncro.db,
101
102
  supabasey: Syncro.supabasey,
102
103
  id, relation,
103
104
  });
@@ -1 +1 @@
1
- {"version":3,"file":"keyed.js","sourceRoot":"","sources":["../../../lib/syncro/keyed.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"keyed.js","sourceRoot":"","sources":["../../../lib/syncro/keyed.ts"],"names":[],"mappings":"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"}