@inlang/sdk 0.35.6 → 0.35.8
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 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createMessagesQuery.d.ts","sourceRoot":"","sources":["../src/createMessagesQuery.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,aAAa,EAAyC,MAAM,UAAU,CAAA;AAEpF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qCAAqC,CAAA;AAEzE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAInD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAA;AAwB/D,KAAK,6BAA6B,GAAG;IACpC,WAAW,EAAE,MAAM,CAAA;IACnB,SAAS,EAAE,iBAAiB,CAAA;IAC5B,QAAQ,EAAE,MAAM,eAAe,GAAG,SAAS,CAAA;IAC3C,eAAe,EAAE,MAAM,OAAO,CAAC,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC,GAAG,SAAS,CAAA;IAC7E,0BAA0B,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,KAAK,IAAI,CAAA;IAC/C,mBAAmB,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,KAAK,IAAI,CAAA;IACxC,mBAAmB,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,KAAK,IAAI,CAAA;CACxC,CAAA;AACD;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,EACnC,WAAW,EACX,SAAS,EACT,QAAQ,EACR,eAAe,EACf,0BAA0B,EAC1B,mBAAmB,EACnB,mBAAmB,GACnB,EAAE,6BAA6B,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC,UAAU,CAAC,
|
|
1
|
+
{"version":3,"file":"createMessagesQuery.d.ts","sourceRoot":"","sources":["../src/createMessagesQuery.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,aAAa,EAAyC,MAAM,UAAU,CAAA;AAEpF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qCAAqC,CAAA;AAEzE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAInD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAA;AAwB/D,KAAK,6BAA6B,GAAG;IACpC,WAAW,EAAE,MAAM,CAAA;IACnB,SAAS,EAAE,iBAAiB,CAAA;IAC5B,QAAQ,EAAE,MAAM,eAAe,GAAG,SAAS,CAAA;IAC3C,eAAe,EAAE,MAAM,OAAO,CAAC,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC,GAAG,SAAS,CAAA;IAC7E,0BAA0B,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,KAAK,IAAI,CAAA;IAC/C,mBAAmB,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,KAAK,IAAI,CAAA;IACxC,mBAAmB,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,KAAK,IAAI,CAAA;CACxC,CAAA;AACD;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,EACnC,WAAW,EACX,SAAS,EACT,QAAQ,EACR,eAAe,EACf,0BAA0B,EAC1B,mBAAmB,EACnB,mBAAmB,GACnB,EAAE,6BAA6B,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC,UAAU,CAAC,CA0NpE"}
|
|
@@ -60,7 +60,7 @@ export function createMessagesQuery({ projectPath, nodeishFs, settings, resolved
|
|
|
60
60
|
// - the plugin loads messages -> reads the file messages.json -> start watching on messages.json -> updateMessages
|
|
61
61
|
updateMessages: () => {
|
|
62
62
|
// reload
|
|
63
|
-
loadMessagesViaPlugin(fsWithWatcher, messageLockDirPath, messageStates, index, delegate, _settings, // NOTE we bang here - we don't expect the settings to become null during the livetime of a project
|
|
63
|
+
loadMessagesViaPlugin(fsWithWatcher, messageLockDirPath, messageStates, index, defaultAliasIndex, delegate, _settings, // NOTE we bang here - we don't expect the settings to become null during the livetime of a project
|
|
64
64
|
resolvedPluginApi)
|
|
65
65
|
.catch((e) => {
|
|
66
66
|
onLoadMessageResult(e);
|
|
@@ -80,7 +80,7 @@ export function createMessagesQuery({ projectPath, nodeishFs, settings, resolved
|
|
|
80
80
|
onInitialMessageLoadResult(new Error("no loadMessages in resolved Modules found"));
|
|
81
81
|
return;
|
|
82
82
|
}
|
|
83
|
-
loadMessagesViaPlugin(fsWithWatcher, messageLockDirPath, messageStates, index, undefined /* delegate - we don't pass it here since we will call onLoaded instead */, _settings, // NOTE we bang here - we don't expect the settings to become null during the livetime of a project
|
|
83
|
+
loadMessagesViaPlugin(fsWithWatcher, messageLockDirPath, messageStates, index, defaultAliasIndex, undefined /* delegate - we don't pass it here since we will call onLoaded instead */, _settings, // NOTE we bang here - we don't expect the settings to become null during the livetime of a project
|
|
84
84
|
resolvedPluginApi)
|
|
85
85
|
.catch((e) => {
|
|
86
86
|
// propagate initial load error to calling laodProject function
|
|
@@ -103,7 +103,7 @@ export function createMessagesQuery({ projectPath, nodeishFs, settings, resolved
|
|
|
103
103
|
const resolvedPluginApi = resolvedModules()?.resolvedPluginApi;
|
|
104
104
|
if (!resolvedPluginApi)
|
|
105
105
|
return;
|
|
106
|
-
saveMessagesViaPlugin(nodeishFs, messageLockDirPath, messageStates, index, delegate, _settings, // NOTE we bang here - we don't expect the settings to become null during the livetime of a project
|
|
106
|
+
saveMessagesViaPlugin(nodeishFs, messageLockDirPath, messageStates, index, defaultAliasIndex, delegate, _settings, // NOTE we bang here - we don't expect the settings to become null during the livetime of a project
|
|
107
107
|
resolvedPluginApi)
|
|
108
108
|
.catch((e) => {
|
|
109
109
|
debug.log("error during saveMessagesViaPlugin");
|
|
@@ -147,6 +147,9 @@ export function createMessagesQuery({ projectPath, nodeishFs, settings, resolved
|
|
|
147
147
|
if (message === undefined)
|
|
148
148
|
return false;
|
|
149
149
|
index.set(where.id, { ...message, ...data });
|
|
150
|
+
if (data.alias && "default" in data.alias) {
|
|
151
|
+
defaultAliasIndex.set(data.alias.default, data);
|
|
152
|
+
}
|
|
150
153
|
messageStates.messageDirtyFlags[where.id] = true;
|
|
151
154
|
delegate?.onMessageUpdate(where.id, index.get(data.id), [...index.values()]);
|
|
152
155
|
scheduleSave();
|
|
@@ -164,6 +167,7 @@ export function createMessagesQuery({ projectPath, nodeishFs, settings, resolved
|
|
|
164
167
|
}
|
|
165
168
|
else {
|
|
166
169
|
index.set(where.id, { ...message, ...data });
|
|
170
|
+
defaultAliasIndex.set(data.alias.default, { ...message, ...data });
|
|
167
171
|
messageStates.messageDirtyFlags[where.id] = true;
|
|
168
172
|
delegate?.onMessageUpdate(data.id, index.get(data.id), [...index.values()]);
|
|
169
173
|
}
|
|
@@ -204,7 +208,7 @@ export function createMessagesQuery({ projectPath, nodeishFs, settings, resolved
|
|
|
204
208
|
* @param loadPlugin
|
|
205
209
|
* @returns void - updates the files and messages in of the project in place
|
|
206
210
|
*/
|
|
207
|
-
async function loadMessagesViaPlugin(fs, lockDirPath, messageState, messages, delegate, settingsValue, resolvedPluginApi) {
|
|
211
|
+
async function loadMessagesViaPlugin(fs, lockDirPath, messageState, messages, aliaseToMessageMap, delegate, settingsValue, resolvedPluginApi) {
|
|
208
212
|
const experimentalAliases = !!settingsValue.experimental?.aliases;
|
|
209
213
|
// loading is an asynchronous process - check if another load is in progress - queue this call if so
|
|
210
214
|
if (messageState.isLoading) {
|
|
@@ -258,6 +262,9 @@ async function loadMessagesViaPlugin(fs, lockDirPath, messageState, messages, de
|
|
|
258
262
|
// update is synchronous, so update effect will be triggered immediately
|
|
259
263
|
// NOTE: this might trigger a save before we have the chance to delete - but since save is async and waits for the lock acquired by this method - its save to set the flags afterwards
|
|
260
264
|
messages.set(loadedMessageClone.id, loadedMessageClone);
|
|
265
|
+
if (loadedMessageClone.alias["default"]) {
|
|
266
|
+
aliaseToMessageMap.set(loadedMessageClone.alias["default"], loadedMessageClone);
|
|
267
|
+
}
|
|
261
268
|
// NOTE could use hash instead of the whole object JSON to save memory...
|
|
262
269
|
messageState.messageLoadHash[loadedMessageClone.id] = importedEnecoded;
|
|
263
270
|
delegate?.onMessageUpdate(loadedMessageClone.id, loadedMessageClone, [
|
|
@@ -281,6 +288,7 @@ async function loadMessagesViaPlugin(fs, lockDirPath, messageState, messages, de
|
|
|
281
288
|
} while (messsageId === undefined);
|
|
282
289
|
// create a humanId based on a hash of the alias
|
|
283
290
|
loadedMessageClone.id = messsageId;
|
|
291
|
+
aliaseToMessageMap.set(loadedMessageClone.alias["default"], loadedMessageClone);
|
|
284
292
|
}
|
|
285
293
|
const importedEnecoded = stringifyMessage(loadedMessageClone);
|
|
286
294
|
// we don't have to check - done before hand if (messages.has(loadedMessageClone.id)) return false
|
|
@@ -313,7 +321,7 @@ async function loadMessagesViaPlugin(fs, lockDirPath, messageState, messages, de
|
|
|
313
321
|
// reset sheduling to except scheduling again
|
|
314
322
|
messageState.sheduledLoadMessagesViaPlugin = undefined;
|
|
315
323
|
// recall load unawaited to allow stack to pop
|
|
316
|
-
loadMessagesViaPlugin(fs, lockDirPath, messageState, messages, delegate, settingsValue, resolvedPluginApi)
|
|
324
|
+
loadMessagesViaPlugin(fs, lockDirPath, messageState, messages, aliaseToMessageMap, delegate, settingsValue, resolvedPluginApi)
|
|
317
325
|
.then(() => {
|
|
318
326
|
// resolve the scheduled load message promise
|
|
319
327
|
executingScheduledMessages.resolve();
|
|
@@ -324,7 +332,7 @@ async function loadMessagesViaPlugin(fs, lockDirPath, messageState, messages, de
|
|
|
324
332
|
});
|
|
325
333
|
}
|
|
326
334
|
}
|
|
327
|
-
async function saveMessagesViaPlugin(fs, lockDirPath, messageState, messages, delegate, settingsValue, resolvedPluginApi) {
|
|
335
|
+
async function saveMessagesViaPlugin(fs, lockDirPath, messageState, messages, aliaseToMessageMap, delegate, settingsValue, resolvedPluginApi) {
|
|
328
336
|
// queue next save if we have a save ongoing
|
|
329
337
|
if (messageState.isSaving) {
|
|
330
338
|
if (!messageState.sheduledSaveMessages) {
|
|
@@ -388,7 +396,7 @@ async function saveMessagesViaPlugin(fs, lockDirPath, messageState, messages, de
|
|
|
388
396
|
// if there is a queued load, allow it to take the lock before we run additional saves.
|
|
389
397
|
if (messageState.sheduledLoadMessagesViaPlugin) {
|
|
390
398
|
debug("saveMessagesViaPlugin calling queued loadMessagesViaPlugin to share lock");
|
|
391
|
-
await loadMessagesViaPlugin(fs, lockDirPath, messageState, messages, delegate, settingsValue, resolvedPluginApi);
|
|
399
|
+
await loadMessagesViaPlugin(fs, lockDirPath, messageState, messages, aliaseToMessageMap, delegate, settingsValue, resolvedPluginApi);
|
|
392
400
|
}
|
|
393
401
|
messageState.isSaving = false;
|
|
394
402
|
}
|
|
@@ -421,7 +429,7 @@ async function saveMessagesViaPlugin(fs, lockDirPath, messageState, messages, de
|
|
|
421
429
|
if (messageState.sheduledSaveMessages) {
|
|
422
430
|
const executingSheduledSaveMessages = messageState.sheduledSaveMessages;
|
|
423
431
|
messageState.sheduledSaveMessages = undefined;
|
|
424
|
-
saveMessagesViaPlugin(fs, lockDirPath, messageState, messages, delegate, settingsValue, resolvedPluginApi)
|
|
432
|
+
saveMessagesViaPlugin(fs, lockDirPath, messageState, messages, aliaseToMessageMap, delegate, settingsValue, resolvedPluginApi)
|
|
425
433
|
.then(() => {
|
|
426
434
|
executingSheduledSaveMessages.resolve();
|
|
427
435
|
})
|
package/dist/v2/stubQueryApi.js
CHANGED
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@inlang/sdk",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "0.35.
|
|
4
|
+
"version": "0.35.8",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"publishConfig": {
|
|
7
7
|
"access": "public"
|
|
@@ -34,17 +34,17 @@
|
|
|
34
34
|
"murmurhash3js": "^3.0.1",
|
|
35
35
|
"solid-js": "1.6.12",
|
|
36
36
|
"throttle-debounce": "^5.0.0",
|
|
37
|
-
"@inlang/json-types": "1.1.0",
|
|
38
37
|
"@inlang/language-tag": "1.5.1",
|
|
39
|
-
"@inlang/module": "1.2.13",
|
|
40
38
|
"@inlang/message": "2.1.0",
|
|
39
|
+
"@inlang/module": "1.2.13",
|
|
40
|
+
"@inlang/message-lint-rule": "1.4.7",
|
|
41
|
+
"@inlang/json-types": "1.1.0",
|
|
41
42
|
"@inlang/plugin": "2.4.13",
|
|
42
43
|
"@inlang/project-settings": "2.4.2",
|
|
43
|
-
"@inlang/message-lint-rule": "1.4.7",
|
|
44
44
|
"@inlang/result": "1.1.0",
|
|
45
|
+
"@lix-js/client": "2.2.0",
|
|
45
46
|
"@lix-js/fs": "2.1.0",
|
|
46
|
-
"@inlang/translatable": "1.3.1"
|
|
47
|
-
"@lix-js/client": "2.2.0"
|
|
47
|
+
"@inlang/translatable": "1.3.1"
|
|
48
48
|
},
|
|
49
49
|
"devDependencies": {
|
|
50
50
|
"@types/debug": "^4.1.12",
|
|
@@ -114,6 +114,7 @@ export function createMessagesQuery({
|
|
|
114
114
|
messageLockDirPath,
|
|
115
115
|
messageStates,
|
|
116
116
|
index,
|
|
117
|
+
defaultAliasIndex,
|
|
117
118
|
delegate,
|
|
118
119
|
_settings, // NOTE we bang here - we don't expect the settings to become null during the livetime of a project
|
|
119
120
|
resolvedPluginApi
|
|
@@ -143,6 +144,7 @@ export function createMessagesQuery({
|
|
|
143
144
|
messageLockDirPath,
|
|
144
145
|
messageStates,
|
|
145
146
|
index,
|
|
147
|
+
defaultAliasIndex,
|
|
146
148
|
undefined /* delegate - we don't pass it here since we will call onLoaded instead */,
|
|
147
149
|
_settings, // NOTE we bang here - we don't expect the settings to become null during the livetime of a project
|
|
148
150
|
resolvedPluginApi
|
|
@@ -178,6 +180,7 @@ export function createMessagesQuery({
|
|
|
178
180
|
messageLockDirPath,
|
|
179
181
|
messageStates,
|
|
180
182
|
index,
|
|
183
|
+
defaultAliasIndex,
|
|
181
184
|
delegate,
|
|
182
185
|
_settings, // NOTE we bang here - we don't expect the settings to become null during the livetime of a project
|
|
183
186
|
resolvedPluginApi
|
|
@@ -230,6 +233,9 @@ export function createMessagesQuery({
|
|
|
230
233
|
const message = index.get(where.id)
|
|
231
234
|
if (message === undefined) return false
|
|
232
235
|
index.set(where.id, { ...message, ...data })
|
|
236
|
+
if (data.alias && "default" in data.alias) {
|
|
237
|
+
defaultAliasIndex.set(data.alias.default, data)
|
|
238
|
+
}
|
|
233
239
|
messageStates.messageDirtyFlags[where.id] = true
|
|
234
240
|
delegate?.onMessageUpdate(where.id, index.get(data.id), [...index.values()])
|
|
235
241
|
scheduleSave()
|
|
@@ -246,6 +252,7 @@ export function createMessagesQuery({
|
|
|
246
252
|
delegate?.onMessageCreate(data.id, index.get(data.id), [...index.values()])
|
|
247
253
|
} else {
|
|
248
254
|
index.set(where.id, { ...message, ...data })
|
|
255
|
+
defaultAliasIndex.set(data.alias.default, { ...message, ...data })
|
|
249
256
|
messageStates.messageDirtyFlags[where.id] = true
|
|
250
257
|
delegate?.onMessageUpdate(data.id, index.get(data.id), [...index.values()])
|
|
251
258
|
}
|
|
@@ -292,6 +299,7 @@ async function loadMessagesViaPlugin(
|
|
|
292
299
|
lockDirPath: string,
|
|
293
300
|
messageState: MessageState,
|
|
294
301
|
messages: Map<string, Message>,
|
|
302
|
+
aliaseToMessageMap: Map<string, Message>,
|
|
295
303
|
delegate: MessageQueryDelegate | undefined,
|
|
296
304
|
settingsValue: ProjectSettings,
|
|
297
305
|
resolvedPluginApi: ResolvedPluginApi
|
|
@@ -363,6 +371,9 @@ async function loadMessagesViaPlugin(
|
|
|
363
371
|
// update is synchronous, so update effect will be triggered immediately
|
|
364
372
|
// NOTE: this might trigger a save before we have the chance to delete - but since save is async and waits for the lock acquired by this method - its save to set the flags afterwards
|
|
365
373
|
messages.set(loadedMessageClone.id, loadedMessageClone)
|
|
374
|
+
if (loadedMessageClone.alias["default"]) {
|
|
375
|
+
aliaseToMessageMap.set(loadedMessageClone.alias["default"], loadedMessageClone)
|
|
376
|
+
}
|
|
366
377
|
// NOTE could use hash instead of the whole object JSON to save memory...
|
|
367
378
|
messageState.messageLoadHash[loadedMessageClone.id] = importedEnecoded
|
|
368
379
|
delegate?.onMessageUpdate(loadedMessageClone.id, loadedMessageClone, [
|
|
@@ -387,12 +398,14 @@ async function loadMessagesViaPlugin(
|
|
|
387
398
|
|
|
388
399
|
// create a humanId based on a hash of the alias
|
|
389
400
|
loadedMessageClone.id = messsageId
|
|
401
|
+
aliaseToMessageMap.set(loadedMessageClone.alias["default"], loadedMessageClone)
|
|
390
402
|
}
|
|
391
403
|
|
|
392
404
|
const importedEnecoded = stringifyMessage(loadedMessageClone)
|
|
393
405
|
|
|
394
406
|
// we don't have to check - done before hand if (messages.has(loadedMessageClone.id)) return false
|
|
395
407
|
messages.set(loadedMessageClone.id, loadedMessageClone)
|
|
408
|
+
|
|
396
409
|
messageState.messageLoadHash[loadedMessageClone.id] = importedEnecoded
|
|
397
410
|
delegate?.onMessageUpdate(loadedMessageClone.id, loadedMessageClone, [
|
|
398
411
|
...messages.values(),
|
|
@@ -431,6 +444,7 @@ async function loadMessagesViaPlugin(
|
|
|
431
444
|
lockDirPath,
|
|
432
445
|
messageState,
|
|
433
446
|
messages,
|
|
447
|
+
aliaseToMessageMap,
|
|
434
448
|
delegate,
|
|
435
449
|
settingsValue,
|
|
436
450
|
resolvedPluginApi
|
|
@@ -451,6 +465,7 @@ async function saveMessagesViaPlugin(
|
|
|
451
465
|
lockDirPath: string,
|
|
452
466
|
messageState: MessageState,
|
|
453
467
|
messages: Map<string, Message>,
|
|
468
|
+
aliaseToMessageMap: Map<string, Message>,
|
|
454
469
|
delegate: MessageQueryDelegate | undefined,
|
|
455
470
|
settingsValue: ProjectSettings,
|
|
456
471
|
resolvedPluginApi: ResolvedPluginApi
|
|
@@ -538,6 +553,7 @@ async function saveMessagesViaPlugin(
|
|
|
538
553
|
lockDirPath,
|
|
539
554
|
messageState,
|
|
540
555
|
messages,
|
|
556
|
+
aliaseToMessageMap,
|
|
541
557
|
delegate,
|
|
542
558
|
settingsValue,
|
|
543
559
|
resolvedPluginApi
|
|
@@ -583,6 +599,7 @@ async function saveMessagesViaPlugin(
|
|
|
583
599
|
lockDirPath,
|
|
584
600
|
messageState,
|
|
585
601
|
messages,
|
|
602
|
+
aliaseToMessageMap,
|
|
586
603
|
delegate,
|
|
587
604
|
settingsValue,
|
|
588
605
|
resolvedPluginApi
|
package/src/v2/stubQueryApi.ts
CHANGED