ugly-app 0.1.19 → 0.1.22
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.
- package/dist/client/callAI.d.ts +11 -0
- package/dist/client/callAI.d.ts.map +1 -0
- package/dist/client/callAI.js +36 -0
- package/dist/client/callAI.js.map +1 -0
- package/dist/client/index.d.ts +2 -0
- package/dist/client/index.d.ts.map +1 -1
- package/dist/client/index.js +1 -0
- package/dist/client/index.js.map +1 -1
- package/dist/server/App.d.ts.map +1 -1
- package/dist/server/App.js +7 -8
- package/dist/server/App.js.map +1 -1
- package/dist/server/Auth.d.ts +1 -0
- package/dist/server/Auth.d.ts.map +1 -1
- package/dist/server/Auth.js +33 -8
- package/dist/server/Auth.js.map +1 -1
- package/dist/server/DB.d.ts +35 -2
- package/dist/server/DB.d.ts.map +1 -1
- package/dist/server/DB.js +27 -22
- package/dist/server/DB.js.map +1 -1
- package/dist/server/ai/ImageGenClient.d.ts.map +1 -1
- package/dist/server/ai/ImageGenClient.js +2 -8
- package/dist/server/ai/ImageGenClient.js.map +1 -1
- package/dist/server/ai/ProviderSelector.d.ts +4 -9
- package/dist/server/ai/ProviderSelector.d.ts.map +1 -1
- package/dist/server/ai/ProviderSelector.js +2 -10
- package/dist/server/ai/ProviderSelector.js.map +1 -1
- package/dist/server/ai/TextGenBase.d.ts +12 -1
- package/dist/server/ai/TextGenBase.d.ts.map +1 -1
- package/dist/server/ai/TextGenBase.js.map +1 -1
- package/dist/server/ai/TextGenClient.d.ts.map +1 -1
- package/dist/server/ai/TextGenClient.js +1 -2
- package/dist/server/ai/TextGenClient.js.map +1 -1
- package/dist/server/ai/TextGenFactory.d.ts.map +1 -1
- package/dist/server/ai/TextGenFactory.js +28 -5
- package/dist/server/ai/TextGenFactory.js.map +1 -1
- package/dist/server/ai/fallbacks.js +1 -1
- package/dist/server/ai/fallbacks.js.map +1 -1
- package/dist/server/ai/providers/Claude.d.ts.map +1 -1
- package/dist/server/ai/providers/Claude.js +56 -5
- package/dist/server/ai/providers/Claude.js.map +1 -1
- package/dist/server/ai/providers/Fireworks.d.ts.map +1 -1
- package/dist/server/ai/providers/Fireworks.js +64 -2
- package/dist/server/ai/providers/Fireworks.js.map +1 -1
- package/dist/server/ai/providers/Google.js +1 -1
- package/dist/server/ai/providers/Google.js.map +1 -1
- package/dist/server/ai/providers/Groq.d.ts.map +1 -1
- package/dist/server/ai/providers/Groq.js +64 -5
- package/dist/server/ai/providers/Groq.js.map +1 -1
- package/dist/server/ai/providers/Kie.js +1 -1
- package/dist/server/ai/providers/Kie.js.map +1 -1
- package/dist/server/ai/providers/OpenAIText.d.ts.map +1 -1
- package/dist/server/ai/providers/OpenAIText.js +66 -5
- package/dist/server/ai/providers/OpenAIText.js.map +1 -1
- package/dist/server/ai/providers/Together.d.ts.map +1 -1
- package/dist/server/ai/providers/Together.js +64 -2
- package/dist/server/ai/providers/Together.js.map +1 -1
- package/dist/server/ai/providers/UglyBotImageGenProvider.d.ts.map +1 -1
- package/dist/server/ai/providers/UglyBotImageGenProvider.js +8 -1
- package/dist/server/ai/providers/UglyBotImageGenProvider.js.map +1 -1
- package/dist/server/ai/providers/UglyBotTextGenProvider.d.ts.map +1 -1
- package/dist/server/ai/providers/UglyBotTextGenProvider.js +29 -3
- package/dist/server/ai/providers/UglyBotTextGenProvider.js.map +1 -1
- package/dist/server/ai/types.d.ts +28 -13
- package/dist/server/ai/types.d.ts.map +1 -1
- package/dist/server/ai/types.js.map +1 -1
- package/dist/shared/DB.d.ts +10 -10
- package/dist/shared/DB.d.ts.map +1 -1
- package/dist/shared/ImageGen.d.ts +64 -0
- package/dist/shared/ImageGen.d.ts.map +1 -1
- package/dist/shared/ImageGen.js +34 -0
- package/dist/shared/ImageGen.js.map +1 -1
- package/dist/shared/TextGen.d.ts +212 -0
- package/dist/shared/TextGen.d.ts.map +1 -1
- package/dist/shared/TextGen.js +73 -0
- package/dist/shared/TextGen.js.map +1 -1
- package/package.json +1 -1
- package/templates/client/App.tsx +6 -8
- package/templates/client/pages/AITestPage.tsx +122 -0
- package/templates/client/pages/HomePage.tsx +8 -0
- package/templates/server/index.ts +1 -24
- package/templates/shared/api.ts +0 -14
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { ImageGenInput, JsonGenInput, TextGenInput } from '../shared/index.js';
|
|
2
|
+
type AiSocket = {
|
|
3
|
+
call(op: string, input: unknown): Promise<unknown>;
|
|
4
|
+
};
|
|
5
|
+
/** Call once at app startup (e.g. after socket.connect()) to enable the socket-based path. */
|
|
6
|
+
export declare function initAiClientSocket(socket: AiSocket): void;
|
|
7
|
+
export declare const callTextGen: (input: TextGenInput) => Promise<string>;
|
|
8
|
+
export declare const callJsonGen: <T = unknown>(input: JsonGenInput) => Promise<T>;
|
|
9
|
+
export declare const callImageGen: (input: ImageGenInput) => Promise<string>;
|
|
10
|
+
export {};
|
|
11
|
+
//# sourceMappingURL=callAI.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"callAI.d.ts","sourceRoot":"","sources":["../../src/client/callAI.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAWpF,KAAK,QAAQ,GAAG;IAAE,IAAI,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;CAAE,CAAC;AAGvE,8FAA8F;AAC9F,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,QAAQ,GAAG,IAAI,CAEzD;AA4BD,eAAO,MAAM,WAAW,GAAI,OAAO,YAAY,KAAG,OAAO,CAAC,MAAM,CACjB,CAAC;AAEhD,eAAO,MAAM,WAAW,GAAI,CAAC,GAAG,OAAO,EAAE,OAAO,YAAY,KAAG,OAAO,CAAC,CAAC,CAC9B,CAAC;AAE3C,eAAO,MAAM,YAAY,GAAI,OAAO,aAAa,KAAG,OAAO,CAAC,MAAM,CAClB,CAAC"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
// VITE_USE_UGLY_BOT_API defaults to true; set to 'false' to route through the app socket instead
|
|
2
|
+
const USE_UGLY_BOT = import.meta.env?.VITE_USE_UGLY_BOT_API !== 'false';
|
|
3
|
+
const UGLY_BOT_URL = import.meta.env?.VITE_UGLY_BOT_URL ??
|
|
4
|
+
'https://ugly.bot';
|
|
5
|
+
let _socket = null;
|
|
6
|
+
/** Call once at app startup (e.g. after socket.connect()) to enable the socket-based path. */
|
|
7
|
+
export function initAiClientSocket(socket) {
|
|
8
|
+
_socket = socket;
|
|
9
|
+
}
|
|
10
|
+
async function callViaUglyBot(op, input) {
|
|
11
|
+
const token = window.__AUTH_TOKEN__;
|
|
12
|
+
const res = await fetch(`${UGLY_BOT_URL}/request`, {
|
|
13
|
+
method: 'POST',
|
|
14
|
+
headers: {
|
|
15
|
+
Authorization: `Bearer ${token ?? ''}`,
|
|
16
|
+
'Content-Type': 'application/json',
|
|
17
|
+
},
|
|
18
|
+
body: JSON.stringify({ op, input, sessionId: 'ai-test' }),
|
|
19
|
+
});
|
|
20
|
+
if (!res.ok) {
|
|
21
|
+
const body = await res.text().catch(() => '');
|
|
22
|
+
throw new Error(`${res.status}: ${body}`);
|
|
23
|
+
}
|
|
24
|
+
return (await res.json()).result;
|
|
25
|
+
}
|
|
26
|
+
async function dispatch(op, input) {
|
|
27
|
+
if (USE_UGLY_BOT)
|
|
28
|
+
return callViaUglyBot(op, input);
|
|
29
|
+
if (!_socket)
|
|
30
|
+
throw new Error('[callAI] Socket not initialized — call initAiClientSocket() first');
|
|
31
|
+
return _socket.call(op, input);
|
|
32
|
+
}
|
|
33
|
+
export const callTextGen = (input) => dispatch('textGen', input);
|
|
34
|
+
export const callJsonGen = (input) => dispatch('jsonGen', input);
|
|
35
|
+
export const callImageGen = (input) => dispatch('imageGen', input);
|
|
36
|
+
//# sourceMappingURL=callAI.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"callAI.js","sourceRoot":"","sources":["../../src/client/callAI.ts"],"names":[],"mappings":"AAEA,iGAAiG;AACjG,MAAM,YAAY,GACf,MAAM,CAAC,IAAyC,CAAC,GAAG,EAAE,qBAAqB,KAAK,OAAO,CAAC;AAE3F,MAAM,YAAY,GACf,MAAM,CAAC,IAAyC,CAAC,GAAG,EAAE,iBAAiB;IACxE,kBAAkB,CAAC;AAIrB,IAAI,OAAO,GAAoB,IAAI,CAAC;AAEpC,8FAA8F;AAC9F,MAAM,UAAU,kBAAkB,CAAC,MAAgB;IACjD,OAAO,GAAG,MAAM,CAAC;AACnB,CAAC;AAED,KAAK,UAAU,cAAc,CAAC,EAAU,EAAE,KAAc;IACtD,MAAM,KAAK,GAAI,MAAiD,CAAC,cAAc,CAAC;IAChF,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,YAAY,UAAU,EAAE;QACjD,MAAM,EAAE,MAAM;QACd,OAAO,EAAE;YACP,aAAa,EAAE,UAAU,KAAK,IAAI,EAAE,EAAE;YACtC,cAAc,EAAE,kBAAkB;SACnC;QACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC;KAC1D,CAAC,CAAC;IACH,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;QACZ,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;QAC9C,MAAM,IAAI,KAAK,CAAC,GAAG,GAAG,CAAC,MAAM,KAAK,IAAI,EAAE,CAAC,CAAC;IAC5C,CAAC;IACD,OAAQ,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAyB,CAAC,MAAM,CAAC;AAC5D,CAAC;AAED,KAAK,UAAU,QAAQ,CAAC,EAAU,EAAE,KAAc;IAChD,IAAI,YAAY;QAAE,OAAO,cAAc,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;IACnD,IAAI,CAAC,OAAO;QACV,MAAM,IAAI,KAAK,CACb,mEAAmE,CACpE,CAAC;IACJ,OAAO,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;AACjC,CAAC;AAED,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,KAAmB,EAAmB,EAAE,CAClE,QAAQ,CAAC,SAAS,EAAE,KAAK,CAAoB,CAAC;AAEhD,MAAM,CAAC,MAAM,WAAW,GAAG,CAAc,KAAmB,EAAc,EAAE,CAC1E,QAAQ,CAAC,SAAS,EAAE,KAAK,CAAe,CAAC;AAE3C,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,KAAoB,EAAmB,EAAE,CACpE,QAAQ,CAAC,UAAU,EAAE,KAAK,CAAoB,CAAC"}
|
package/dist/client/index.d.ts
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
export { callTextGen, callJsonGen, callImageGen, initAiClientSocket, } from './callAI.js';
|
|
2
|
+
export type { TextGenInput, JsonGenInput, ImageGenInput, TextGenCallOptions, ImageGenCallOptions, Message, ContentPart, } from '../shared/index.js';
|
|
1
3
|
export type { AnimConfig, AppRouterBase, PopupMode, PopupSlideFrom, RouterState, TransitionType, } from '../shared/Router.js';
|
|
2
4
|
export { Animated } from './animation/Animated.js';
|
|
3
5
|
export type { AnimatedStyle } from './animation/Animated.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/client/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,UAAU,EACV,aAAa,EACb,SAAS,EACT,cAAc,EACd,WAAW,EACX,cAAc,GACf,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AACnD,YAAY,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EACL,mBAAmB,EACnB,eAAe,EACf,gBAAgB,GACjB,MAAM,8BAA8B,CAAC;AACtC,YAAY,EACV,gBAAgB,EAChB,cAAc,EACd,gBAAgB,GACjB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAChD,OAAO,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAClE,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAChE,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AACrE,YAAY,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAC3C,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAC3C,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAChE,cAAc,uBAAuB,CAAC;AACtC,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,YAAY,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,EACL,oBAAoB,EACpB,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AACjD,YAAY,EACV,WAAW,EACX,eAAe,EACf,YAAY,EACZ,kBAAkB,GACnB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACpD,YAAY,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/client/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,EACX,WAAW,EACX,YAAY,EACZ,kBAAkB,GACnB,MAAM,aAAa,CAAC;AACrB,YAAY,EACV,YAAY,EACZ,YAAY,EACZ,aAAa,EACb,kBAAkB,EAClB,mBAAmB,EACnB,OAAO,EACP,WAAW,GACZ,MAAM,oBAAoB,CAAC;AAC5B,YAAY,EACV,UAAU,EACV,aAAa,EACb,SAAS,EACT,cAAc,EACd,WAAW,EACX,cAAc,GACf,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AACnD,YAAY,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EACL,mBAAmB,EACnB,eAAe,EACf,gBAAgB,GACjB,MAAM,8BAA8B,CAAC;AACtC,YAAY,EACV,gBAAgB,EAChB,cAAc,EACd,gBAAgB,GACjB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAChD,OAAO,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAClE,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAChE,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AACrE,YAAY,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAC3C,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAC3C,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAChE,cAAc,uBAAuB,CAAC;AACtC,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,YAAY,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,EACL,oBAAoB,EACpB,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AACjD,YAAY,EACV,WAAW,EACX,eAAe,EACf,YAAY,EACZ,kBAAkB,GACnB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACpD,YAAY,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC"}
|
package/dist/client/index.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
export { callTextGen, callJsonGen, callImageGen, initAiClientSocket, } from './callAI.js';
|
|
1
2
|
export { Animated } from './animation/Animated.js';
|
|
2
3
|
export { createAnimatedValue, easingFunctions, useAnimatedValue, } from './animation/animatedValue.js';
|
|
3
4
|
export { FadeIn } from './animations/FadeIn.js';
|
package/dist/client/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/client/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/client/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,EACX,WAAW,EACX,YAAY,EACZ,kBAAkB,GACnB,MAAM,aAAa,CAAC;AAkBrB,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAEnD,OAAO,EACL,mBAAmB,EACnB,eAAe,EACf,gBAAgB,GACjB,MAAM,8BAA8B,CAAC;AAMtC,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAChD,OAAO,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAClE,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAChE,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAErE,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAC3C,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAC3C,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAChE,cAAc,uBAAuB,CAAC;AACtC,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEjD,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,EACL,oBAAoB,EACpB,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAOjD,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC"}
|
package/dist/server/App.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"App.d.ts","sourceRoot":"","sources":["../../src/server/App.ts"],"names":[],"mappings":"AACA,OAAO,OAAO,MAAM,SAAS,CAAC;AAC9B,OAAO,EAAE,YAAY,EAAE,MAAM,MAAM,CAAC;AAGpC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC;AACpC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,KAAK,EACV,qBAAqB,
|
|
1
|
+
{"version":3,"file":"App.d.ts","sourceRoot":"","sources":["../../src/server/App.ts"],"names":[],"mappings":"AACA,OAAO,OAAO,MAAM,SAAS,CAAC;AAC9B,OAAO,EAAE,YAAY,EAAE,MAAM,MAAM,CAAC;AAGpC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC;AACpC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,KAAK,EACV,qBAAqB,EAGrB,UAAU,EACX,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAE,YAAY,EAAY,MAAM,qBAAqB,CAAC;AAE7D,OAAO,EAKL,WAAW,EACX,KAAK,YAAY,EACjB,KAAK,YAAY,EAClB,MAAM,WAAW,CAAC;AAcnB,OAAO,EAAE,SAAS,EAAgB,cAAc,EAAE,MAAM,aAAa,CAAC;AAItE,OAAO,EAAE,WAAW,EAAE,CAAC;AAOvB,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,YAAY,CAAC;IAEpB,UAAU,CAAC,EAAE,CACX,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,KAC3B,OAAO,CAAC,MAAM,CAAC,CAAC;IAErB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAGD,MAAM,WAAW,WAAW;IAC1B,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACvB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACvB;AAED,MAAM,WAAW,eAAe;IAC9B,OAAO,CAAC,QAAQ,EAAE,YAAY,GAAG,IAAI,CAAC;IACtC;;;OAGG;IAEH,aAAa,CAAC,MAAM,EAAE,UAAU,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;IAC7C;;;OAGG;IACH,eAAe,CAAC,OAAO,EAAE,YAAY,GAAG,IAAI,CAAC;IAE7C,kBAAkB,CAChB,OAAO,EAAE,CAAC,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,KAAK,OAAO,GAChE,IAAI,CAAC;IAER,oBAAoB,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACpD,EAAE,EAAE,CAAC,IAAI,EAAE,cAAc,KAAK,OAAO,CAAC,CAAC,CAAC,GACvC,IAAI,CAAC;IAER,cAAc,CAAC,KAAK,EAAE,WAAW,GAAG,IAAI,CAAC;IAEzC,cAAc,CAAC,EAAE,EAAE,CAAC,MAAM,EAAE,UAAU,CAAC,OAAO,OAAO,CAAC,MAAM,CAAC,KAAK,IAAI,GAAG,IAAI,CAAC;IAE9E,QAAQ,CAAC,OAAO,EAAE,iBAAiB,GAAG,IAAI,CAAC;CAC5C;AAED,MAAM,WAAW,GAAI,SAAQ,SAAS;IACpC,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACpC,cAAc,CAAC,EAAE,EAAE,CAAC,MAAM,EAAE,UAAU,CAAC,OAAO,OAAO,CAAC,MAAM,CAAC,KAAK,IAAI,GAAG,IAAI,CAAC;IAC9E,UAAU,EAAE,UAAU,CAAC,OAAO,YAAY,CAAC,CAAC;CAC7C;AAED,wBAAgB,SAAS,CACvB,CAAC,SAAS,eAAe,EACzB,IAAI,SAAS,qBAAqB,EAElC,QAAQ,EAAE,CAAC,EACX,OAAO,GAAE,IAAiB,EAC1B,SAAS,CAAC,EAAE,CAAC,YAAY,EAAE,eAAe,KAAK,IAAI,GAClD,GAAG,CAsQL"}
|
package/dist/server/App.js
CHANGED
|
@@ -71,14 +71,13 @@ export function createApp(registry, appDefs = {}, configure) {
|
|
|
71
71
|
// Call configure callback if provided
|
|
72
72
|
if (configure)
|
|
73
73
|
configure(configurator);
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
}
|
|
80
|
-
const
|
|
81
|
-
const resolvedOnUserCreate = onUserCreate;
|
|
74
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
75
|
+
const resolvedUserHelper = userHelper ?? {
|
|
76
|
+
get: (db, userId) => db.getDoc('user', userId),
|
|
77
|
+
set: async () => false,
|
|
78
|
+
update: async (_db, userId) => ({ id: userId, version: 0, created: new Date(), updated: new Date() }),
|
|
79
|
+
};
|
|
80
|
+
const resolvedOnUserCreate = onUserCreate ?? (async () => { });
|
|
82
81
|
const rateLimiter = createRateLimiter();
|
|
83
82
|
const router = createRouter(registry, typedDb, contextExtensionFn ?? undefined, rateLimiter);
|
|
84
83
|
expressApp.use(cookieParser());
|
package/dist/server/App.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"App.js","sourceRoot":"","sources":["../../src/server/App.ts"],"names":[],"mappings":"AAAA,OAAO,YAAY,MAAM,eAAe,CAAC;AACzC,OAAO,OAAO,MAAM,SAAS,CAAC;AAC9B,OAAO,EAAE,YAAY,EAAE,MAAM,MAAM,CAAC;AACpC,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAClC,OAAO,IAAI,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"App.js","sourceRoot":"","sources":["../../src/server/App.ts"],"names":[],"mappings":"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"}
|
package/dist/server/Auth.d.ts
CHANGED
|
@@ -17,5 +17,6 @@ export type OnUserCreate = (userId: string, info: {
|
|
|
17
17
|
email?: string;
|
|
18
18
|
phone?: string;
|
|
19
19
|
}, db: TypedDB<any>) => Promise<void>;
|
|
20
|
+
export declare function createAuthRoutes(provider?: AuthProvider): express.Router;
|
|
20
21
|
export declare function createAuthRoutes(db: TypedDB<any>, userHelper: UserHelper<any>, onUserCreate: OnUserCreate, provider?: AuthProvider): express.Router;
|
|
21
22
|
//# sourceMappingURL=Auth.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Auth.d.ts","sourceRoot":"","sources":["../../src/server/Auth.ts"],"names":[],"mappings":"AACA,OAAO,OAAO,MAAM,SAAS,CAAC;AAG9B,OAAO,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"Auth.d.ts","sourceRoot":"","sources":["../../src/server/Auth.ts"],"names":[],"mappings":"AACA,OAAO,OAAO,MAAM,SAAS,CAAC;AAG9B,OAAO,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAY3D,wBAAgB,gBAAgB,IAAI,MAAM,CASzC;AAED,wBAAsB,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAM/D;AAED,wBAAsB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAIhE;AAED,MAAM,WAAW,YAAY;IAE3B,MAAM,CACJ,IAAI,EAAE,MAAM,GACX,OAAO,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAE/D,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC;IAEhC,cAAc,CAAC,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;CAC/C;AAED,eAAO,MAAM,mBAAmB,EAAE,YAyBjC,CAAC;AAGF,MAAM,MAAM,YAAY,GAAG,CACzB,MAAM,EAAE,MAAM,EACd,IAAI,EAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,EACxC,EAAE,EAAE,OAAO,CAAC,GAAG,CAAC,KACb,OAAO,CAAC,IAAI,CAAC,CAAC;AAYnB,wBAAgB,gBAAgB,CAAC,QAAQ,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC;AAE1E,wBAAgB,gBAAgB,CAE9B,EAAE,EAAE,OAAO,CAAC,GAAG,CAAC,EAEhB,UAAU,EAAE,UAAU,CAAC,GAAG,CAAC,EAC3B,YAAY,EAAE,YAAY,EAC1B,QAAQ,CAAC,EAAE,YAAY,GACtB,OAAO,CAAC,MAAM,CAAC"}
|
package/dist/server/Auth.js
CHANGED
|
@@ -3,6 +3,7 @@ import { SignJWT, jwtVerify } from 'jose';
|
|
|
3
3
|
import { nanoid } from 'nanoid';
|
|
4
4
|
import { BUILTIN_DEFS, dbDefaults } from '../shared/DB.js';
|
|
5
5
|
import { AuthError } from '../shared/Errors.js';
|
|
6
|
+
import { createTypedDB } from './DB.js';
|
|
6
7
|
import { writeClientLogEntry } from './Logging.js';
|
|
7
8
|
function getJwtSecret() {
|
|
8
9
|
const secret = process.env.JWT_SECRET;
|
|
@@ -50,11 +51,35 @@ export const uglyBotAuthProvider = {
|
|
|
50
51
|
};
|
|
51
52
|
},
|
|
52
53
|
};
|
|
54
|
+
// No-op defaults used when createAuthRoutes() is called without explicit db/userHelper
|
|
55
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
56
|
+
const noOpUserHelper = {
|
|
57
|
+
get: async () => null,
|
|
58
|
+
set: async () => false,
|
|
59
|
+
update: async (_db, userId) => ({ id: userId, version: 0, created: new Date(), updated: new Date() }),
|
|
60
|
+
};
|
|
61
|
+
const noOpOnUserCreate = async () => { };
|
|
53
62
|
export function createAuthRoutes(
|
|
54
63
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
55
|
-
|
|
64
|
+
dbOrProvider,
|
|
56
65
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
57
|
-
userHelper, onUserCreate, provider
|
|
66
|
+
userHelper, onUserCreate, provider) {
|
|
67
|
+
// Detect which overload was used by checking if first arg has a 'verify' method
|
|
68
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
69
|
+
let db;
|
|
70
|
+
let resolvedProvider;
|
|
71
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
72
|
+
const isAuthProvider = (v) => typeof v === 'object' && v !== null && 'verify' in v && 'authUrl' in v;
|
|
73
|
+
if (dbOrProvider === undefined || isAuthProvider(dbOrProvider)) {
|
|
74
|
+
db = createTypedDB(BUILTIN_DEFS);
|
|
75
|
+
resolvedProvider = dbOrProvider ?? uglyBotAuthProvider;
|
|
76
|
+
}
|
|
77
|
+
else {
|
|
78
|
+
db = dbOrProvider;
|
|
79
|
+
resolvedProvider = provider ?? uglyBotAuthProvider;
|
|
80
|
+
}
|
|
81
|
+
const resolvedUserHelper = userHelper ?? noOpUserHelper;
|
|
82
|
+
const resolvedOnUserCreate = onUserCreate ?? noOpOnUserCreate;
|
|
58
83
|
const router = express.Router();
|
|
59
84
|
// POST /auth/verify — client sends OAuth code, server verifies and returns JWT
|
|
60
85
|
router.post('/auth/verify', async (req, res) => {
|
|
@@ -64,11 +89,11 @@ userHelper, onUserCreate, provider = uglyBotAuthProvider) {
|
|
|
64
89
|
res.status(400).json({ error: 'Missing code' });
|
|
65
90
|
return;
|
|
66
91
|
}
|
|
67
|
-
const { userId, email, phone } = await
|
|
92
|
+
const { userId, email, phone } = await resolvedProvider.verify(code);
|
|
68
93
|
// Find or create user — app is responsible for the full user record
|
|
69
|
-
const existing = await
|
|
94
|
+
const existing = await resolvedUserHelper.get(db, userId);
|
|
70
95
|
if (!existing) {
|
|
71
|
-
await
|
|
96
|
+
await resolvedOnUserCreate(userId, { email, phone }, db);
|
|
72
97
|
}
|
|
73
98
|
const token = await signToken(userId);
|
|
74
99
|
res.cookie('auth_token', token, {
|
|
@@ -121,7 +146,7 @@ userHelper, onUserCreate, provider = uglyBotAuthProvider) {
|
|
|
121
146
|
res.status(400).json({ error: 'Missing origin' });
|
|
122
147
|
return;
|
|
123
148
|
}
|
|
124
|
-
res.json({ url:
|
|
149
|
+
res.json({ url: resolvedProvider.authUrl(origin) });
|
|
125
150
|
});
|
|
126
151
|
const MAX_LOG_ENTRIES = 100;
|
|
127
152
|
const MAX_FIELD_LENGTH = 10_000; // ~10 KB per field — rejects BASE64 blobs
|
|
@@ -163,8 +188,8 @@ userHelper, onUserCreate, provider = uglyBotAuthProvider) {
|
|
|
163
188
|
}
|
|
164
189
|
});
|
|
165
190
|
// Register any provider-specific routes
|
|
166
|
-
if (
|
|
167
|
-
|
|
191
|
+
if (resolvedProvider.registerRoutes) {
|
|
192
|
+
resolvedProvider.registerRoutes(router);
|
|
168
193
|
}
|
|
169
194
|
return router;
|
|
170
195
|
}
|
package/dist/server/Auth.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Auth.js","sourceRoot":"","sources":["../../src/server/Auth.ts"],"names":[],"mappings":"AACA,OAAO,OAAO,MAAM,SAAS,CAAC;AAC9B,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,MAAM,CAAC;AAC1C,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEhC,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC3D,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAChD,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAEnD,SAAS,YAAY;IACnB,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC;IACtC,IAAI,CAAC,MAAM;QAAE,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;IACtE,OAAO,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;AAC1C,CAAC;AAED,MAAM,UAAU,gBAAgB;IAC9B,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,kBAAkB,IAAI,SAAS,CAAC;IACxD,MAAM,OAAO,GAAG,QAAQ,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;IAClC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,OAAO,IAAI,CAAC,EAAE,CAAC;QAC/C,MAAM,IAAI,KAAK,CACb,8DAA8D,GAAG,GAAG,CACrE,CAAC;IACJ,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,MAAc;IAC5C,OAAO,IAAI,OAAO,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC;SAChC,kBAAkB,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC;SACpC,iBAAiB,CAAC,GAAG,gBAAgB,EAAE,GAAG,CAAC;SAC3C,WAAW,EAAE;SACb,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC;AAC1B,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,KAAa;IAC7C,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,SAAS,CAAC,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC;IAC3D,IAAI,CAAC,OAAO,CAAC,GAAG;QAAE,MAAM,IAAI,SAAS,CAAC,eAAe,CAAC,CAAC;IACvD,OAAO,OAAO,CAAC,GAAG,CAAC;AACrB,CAAC;AAaD,MAAM,CAAC,MAAM,mBAAmB,GAAiB;IAC/C,OAAO,EAAE,CAAC,MAAc,EAAE,EAAE,CAC1B,iCAAiC,kBAAkB,CAAC,MAAM,CAAC,EAAE;IAC/D,MAAM,EAAE,KAAK,EAAE,IAAY,EAAE,EAAE;QAC7B,MAAM,QAAQ,GAAG,MAAM,KAAK,CAC1B,sCAAsC,kBAAkB,CAAC,IAAI,CAAC,EAAE,CACjE,CAAC;QACF,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,MAAM,GAAG,GAAG,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;YAC7D,OAAO,CAAC,KAAK,CAAC,qCAAqC,EAAE;gBACnD,MAAM,EAAE,QAAQ,CAAC,MAAM;aACxB,CAAC,CAAC;YACH,MAAM,GAAG,CAAC;QACZ,CAAC;QACD,MAAM,IAAI,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAIlC,CAAC;QACF,OAAO;YACL,MAAM,EAAE,IAAI,CAAC,OAAO;YACpB,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,KAAK,EAAE,IAAI,CAAC,KAAK;SAClB,CAAC;IACJ,CAAC;CACF,CAAC;AASF,MAAM,UAAU,gBAAgB;AAC9B,8DAA8D;AAC9D,
|
|
1
|
+
{"version":3,"file":"Auth.js","sourceRoot":"","sources":["../../src/server/Auth.ts"],"names":[],"mappings":"AACA,OAAO,OAAO,MAAM,SAAS,CAAC;AAC9B,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,MAAM,CAAC;AAC1C,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEhC,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC3D,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACxC,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAEnD,SAAS,YAAY;IACnB,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC;IACtC,IAAI,CAAC,MAAM;QAAE,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;IACtE,OAAO,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;AAC1C,CAAC;AAED,MAAM,UAAU,gBAAgB;IAC9B,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,kBAAkB,IAAI,SAAS,CAAC;IACxD,MAAM,OAAO,GAAG,QAAQ,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;IAClC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,OAAO,IAAI,CAAC,EAAE,CAAC;QAC/C,MAAM,IAAI,KAAK,CACb,8DAA8D,GAAG,GAAG,CACrE,CAAC;IACJ,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,MAAc;IAC5C,OAAO,IAAI,OAAO,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC;SAChC,kBAAkB,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC;SACpC,iBAAiB,CAAC,GAAG,gBAAgB,EAAE,GAAG,CAAC;SAC3C,WAAW,EAAE;SACb,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC;AAC1B,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,KAAa;IAC7C,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,SAAS,CAAC,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC;IAC3D,IAAI,CAAC,OAAO,CAAC,GAAG;QAAE,MAAM,IAAI,SAAS,CAAC,eAAe,CAAC,CAAC;IACvD,OAAO,OAAO,CAAC,GAAG,CAAC;AACrB,CAAC;AAaD,MAAM,CAAC,MAAM,mBAAmB,GAAiB;IAC/C,OAAO,EAAE,CAAC,MAAc,EAAE,EAAE,CAC1B,iCAAiC,kBAAkB,CAAC,MAAM,CAAC,EAAE;IAC/D,MAAM,EAAE,KAAK,EAAE,IAAY,EAAE,EAAE;QAC7B,MAAM,QAAQ,GAAG,MAAM,KAAK,CAC1B,sCAAsC,kBAAkB,CAAC,IAAI,CAAC,EAAE,CACjE,CAAC;QACF,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,MAAM,GAAG,GAAG,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;YAC7D,OAAO,CAAC,KAAK,CAAC,qCAAqC,EAAE;gBACnD,MAAM,EAAE,QAAQ,CAAC,MAAM;aACxB,CAAC,CAAC;YACH,MAAM,GAAG,CAAC;QACZ,CAAC;QACD,MAAM,IAAI,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAIlC,CAAC;QACF,OAAO;YACL,MAAM,EAAE,IAAI,CAAC,OAAO;YACpB,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,KAAK,EAAE,IAAI,CAAC,KAAK;SAClB,CAAC;IACJ,CAAC;CACF,CAAC;AASF,uFAAuF;AACvF,8DAA8D;AAC9D,MAAM,cAAc,GAAoB;IACtC,GAAG,EAAE,KAAK,IAAI,EAAE,CAAC,IAAI;IACrB,GAAG,EAAE,KAAK,IAAI,EAAE,CAAC,KAAK;IACtB,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,IAAI,EAAE,EAAE,OAAO,EAAE,IAAI,IAAI,EAAE,EAAE,CAAC;CACtG,CAAC;AACF,MAAM,gBAAgB,GAAiB,KAAK,IAAI,EAAE,GAAE,CAAC,CAAC;AAatD,MAAM,UAAU,gBAAgB;AAC9B,8DAA8D;AAC9D,YAA0C;AAC1C,8DAA8D;AAC9D,UAA4B,EAC5B,YAA2B,EAC3B,QAAuB;IAEvB,gFAAgF;IAChF,8DAA8D;IAC9D,IAAI,EAAgB,CAAC;IACrB,IAAI,gBAA8B,CAAC;IACnC,8DAA8D;IAC9D,MAAM,cAAc,GAAG,CAAC,CAAU,EAAqB,EAAE,CACvD,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,IAAI,IAAI,QAAQ,IAAI,CAAC,IAAI,SAAS,IAAI,CAAC,CAAC;IAEzE,IAAI,YAAY,KAAK,SAAS,IAAI,cAAc,CAAC,YAAY,CAAC,EAAE,CAAC;QAC/D,EAAE,GAAG,aAAa,CAAC,YAAY,CAAC,CAAC;QACjC,gBAAgB,GAAG,YAAY,IAAI,mBAAmB,CAAC;IACzD,CAAC;SAAM,CAAC;QACN,EAAE,GAAG,YAAY,CAAC;QAClB,gBAAgB,GAAG,QAAQ,IAAI,mBAAmB,CAAC;IACrD,CAAC;IACD,MAAM,kBAAkB,GAAG,UAAU,IAAI,cAAc,CAAC;IACxD,MAAM,oBAAoB,GAAG,YAAY,IAAI,gBAAgB,CAAC;IAE9D,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAEhC,+EAA+E;IAC/E,MAAM,CAAC,IAAI,CAAC,cAAc,EAAE,KAAK,EAAE,GAAY,EAAE,GAAa,EAAE,EAAE;QAChE,IAAI,CAAC;YACH,MAAM,EAAE,IAAI,EAAE,GAAG,GAAG,CAAC,IAAyB,CAAC;YAC/C,IAAI,CAAC,IAAI,EAAE,CAAC;gBACV,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,cAAc,EAAE,CAAC,CAAC;gBAChD,OAAO;YACT,CAAC;YACD,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,MAAM,gBAAgB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YACrE,oEAAoE;YACpE,MAAM,QAAQ,GAAG,MAAM,kBAAkB,CAAC,GAAG,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;YAC1D,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACd,MAAM,oBAAoB,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC;YAC3D,CAAC;YACD,MAAM,KAAK,GAAG,MAAM,SAAS,CAAC,MAAM,CAAC,CAAC;YACtC,GAAG,CAAC,MAAM,CAAC,YAAY,EAAE,KAAK,EAAE;gBAC9B,QAAQ,EAAE,IAAI;gBACd,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,YAAY;gBAC7C,QAAQ,EAAE,KAAK;gBACf,MAAM,EAAE,gBAAgB,EAAE,GAAG,IAAI;gBACjC,IAAI,EAAE,GAAG;aACV,CAAC,CAAC;YACH,GAAG,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;QACtB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,4BAA4B,EAAE,GAAG,CAAC,CAAC;YACjD,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,uBAAuB,EAAE,CAAC,CAAC;QAC3D,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,uEAAuE;IACvE,MAAM,CAAC,GAAG,CAAC,aAAa,EAAE,KAAK,EAAE,GAAY,EAAE,GAAa,EAAE,EAAE;QAC9D,MAAM,KAAK,GAAG,GAAG,CAAC,OAAO,EAAE,UAAgC,CAAC;QAC5D,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC;YAC9C,OAAO;QACT,CAAC;QACD,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,KAAK,CAAC,CAAC;YACxC,MAAM,KAAK,GAAG,MAAM,SAAS,CAAC,MAAM,CAAC,CAAC;YACtC,GAAG,CAAC,MAAM,CAAC,YAAY,EAAE,KAAK,EAAE;gBAC9B,QAAQ,EAAE,IAAI;gBACd,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,YAAY;gBAC7C,QAAQ,EAAE,KAAK;gBACf,MAAM,EAAE,gBAAgB,EAAE,GAAG,IAAI;gBACjC,IAAI,EAAE,GAAG;aACV,CAAC,CAAC;YACH,GAAG,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;QAC7B,CAAC;QAAC,MAAM,CAAC;YACP,GAAG,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;YAC9B,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,iBAAiB,EAAE,CAAC,CAAC;QACrD,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,6CAA6C;IAC7C,MAAM,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC,IAAa,EAAE,GAAa,EAAE,EAAE;QAC3D,GAAG,CAAC,WAAW,CAAC,YAAY,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC;QAC7C,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;IACzB,CAAC,CAAC,CAAC;IAEH,6DAA6D;IAC7D,MAAM,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,GAAY,EAAE,GAAa,EAAE,EAAE;QACtD,MAAM,MAAM,GAAG,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAuB,CAAC;QACzD,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,gBAAgB,EAAE,CAAC,CAAC;YAClD,OAAO;QACT,CAAC;QACD,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,gBAAgB,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IACtD,CAAC,CAAC,CAAC;IAEH,MAAM,eAAe,GAAG,GAAG,CAAC;IAC5B,MAAM,gBAAgB,GAAG,MAAM,CAAC,CAAC,0CAA0C;IAE3E,sDAAsD;IACtD,MAAM,CAAC,IAAI,CAAC,cAAc,EAAE,KAAK,EAAE,GAAY,EAAE,GAAa,EAAE,EAAE;QAChE,IAAI,CAAC;YACH,MAAM,EAAE,OAAO,EAAE,GAAG,GAAG,CAAC,IAQvB,CAAC;YACF,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,MAAM,GAAG,eAAe,EAAE,CAAC;gBAC/D,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,sBAAsB,EAAE,CAAC,CAAC;gBACxD,OAAO;YACT,CAAC;YACD,KAAK,MAAM,KAAK,IAAI,OAAO,IAAI,EAAE,EAAE,CAAC;gBAClC,IACE,CAAC,OAAO,KAAK,CAAC,OAAO,KAAK,QAAQ;oBAChC,KAAK,CAAC,OAAO,CAAC,MAAM,GAAG,gBAAgB,CAAC;oBAC1C,CAAC,OAAO,KAAK,CAAC,KAAK,KAAK,QAAQ;wBAC9B,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,gBAAgB,CAAC,EACxC,CAAC;oBACD,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,2BAA2B,EAAE,CAAC,CAAC;oBAC7D,OAAO;gBACT,CAAC;gBACD,MAAM,EAAE,CAAC,MAAM,CAAC,YAAY,CAAC,QAAQ,EAAE;oBACrC,GAAG,UAAU,EAAE;oBACf,EAAE,EAAE,MAAM,EAAE;oBACZ,MAAM,EAAE,SAAkB;oBAC1B,KAAK,EAAE,KAAK,CAAC,KAAoD;oBACjE,OAAO,EAAE,KAAK,CAAC,OAAO;oBACtB,KAAK,EAAE,KAAK,CAAC,KAAK,IAAI,IAAI;oBAC1B,GAAG,EAAE,KAAK,CAAC,GAAG;oBACd,MAAM,EAAE,IAAI;oBACZ,OAAO,EAAE,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC;oBAClC,OAAO,EAAE,IAAI,IAAI,EAAE;iBACpB,CAAC,CAAC;gBACH,mBAAmB,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;YACtE,CAAC;YACD,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;QACzB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,oCAAoC,EAAE,GAAG,CAAC,CAAC;YACzD,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;QAC5C,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,wCAAwC;IACxC,IAAI,gBAAgB,CAAC,cAAc,EAAE,CAAC;QACpC,gBAAgB,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;IAC1C,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
package/dist/server/DB.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { MongoClient } from 'mongodb';
|
|
2
|
-
import { CollectionDefRegistry, TypedDB } from '../shared/DB.js';
|
|
1
|
+
import { Document, Filter, MongoClient } from 'mongodb';
|
|
2
|
+
import { CollectionDefRegistry, DBObject, DocFields, MongoUpdateOp, TypedDB } from '../shared/DB.js';
|
|
3
3
|
/**
|
|
4
4
|
* Validate that a raw leaf id does not contain ':'.
|
|
5
5
|
* Compound ids (parentId) legitimately contain ':' and are NOT validated here.
|
|
@@ -9,6 +9,39 @@ export declare function initMongoClient(uri: string, dbName?: string): Promise<v
|
|
|
9
9
|
export declare function getMongoClient(): Promise<MongoClient>;
|
|
10
10
|
export declare function getDbName(): string;
|
|
11
11
|
export declare function stopMongo(): Promise<void>;
|
|
12
|
+
export declare function getDoc<T extends DBObject>(collection: string, id: string, parentId?: string): Promise<T | null>;
|
|
13
|
+
export declare function setDoc<T extends DBObject>(collection: string, doc: T, options?: {
|
|
14
|
+
skipIfExists?: boolean;
|
|
15
|
+
parentId?: string;
|
|
16
|
+
}): Promise<boolean>;
|
|
17
|
+
export declare function setDocFields<T extends DBObject>(collection: string, id: string, fields: DocFields<T>, options?: {
|
|
18
|
+
parentId?: string;
|
|
19
|
+
}): Promise<T>;
|
|
20
|
+
export declare function setDocFieldsOrIgnore<T extends DBObject>(collection: string, id: string, fields: DocFields<T>, options?: {
|
|
21
|
+
parentId?: string;
|
|
22
|
+
}): Promise<T | null>;
|
|
23
|
+
export declare function setDocFieldsOrCreate<T extends DBObject>(collection: string, id: string, fields: DocFields<T>, obj: T, options?: {
|
|
24
|
+
parentId?: string;
|
|
25
|
+
}): Promise<T>;
|
|
26
|
+
export declare function setDocOp<T extends DBObject>(collection: string, id: string, op: MongoUpdateOp<T>, options?: {
|
|
27
|
+
parentId?: string;
|
|
28
|
+
}): Promise<T>;
|
|
29
|
+
export declare function setDocOpOrIgnore<T extends DBObject>(collection: string, id: string, op: MongoUpdateOp<T>, options?: {
|
|
30
|
+
parentId?: string;
|
|
31
|
+
}): Promise<T | null>;
|
|
32
|
+
export declare function deleteDoc(collection: string, id: string, options?: {
|
|
33
|
+
parentId?: string;
|
|
34
|
+
}): Promise<void>;
|
|
35
|
+
export declare function getDocs<T extends DBObject>(collection: string, filter?: Filter<Document>, options?: {
|
|
36
|
+
sort?: Record<string, 1 | -1>;
|
|
37
|
+
limit?: number;
|
|
38
|
+
skip?: number;
|
|
39
|
+
}): Promise<T[]>;
|
|
40
|
+
export declare function getQueryCount(collection: string, pipeline: Record<string, unknown>[]): Promise<number>;
|
|
41
|
+
export declare function getQueryRaw<T>(collection: string, pipeline: Record<string, unknown>[], options?: {
|
|
42
|
+
skip?: number;
|
|
43
|
+
limit?: number;
|
|
44
|
+
}): Promise<T[]>;
|
|
12
45
|
type CollectionMap<Defs extends CollectionDefRegistry> = {
|
|
13
46
|
[K in keyof Defs]: Defs[K]['type'];
|
|
14
47
|
};
|
package/dist/server/DB.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DB.d.ts","sourceRoot":"","sources":["../../src/server/DB.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"DB.d.ts","sourceRoot":"","sources":["../../src/server/DB.ts"],"names":[],"mappings":"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"}
|
package/dist/server/DB.js
CHANGED
|
@@ -104,16 +104,16 @@ function docCacheKey(collection, id, parentId) {
|
|
|
104
104
|
: buildCacheKey(collection, id);
|
|
105
105
|
}
|
|
106
106
|
// ---------------------------------------------------------------------------
|
|
107
|
-
//
|
|
107
|
+
// Standalone helpers (exported for direct use and used by createTypedDB)
|
|
108
108
|
// ---------------------------------------------------------------------------
|
|
109
|
-
async function getDoc(collection, id, parentId) {
|
|
109
|
+
export async function getDoc(collection, id, parentId) {
|
|
110
110
|
const compoundId = toMongoId(id, parentId);
|
|
111
111
|
const raw = await db()
|
|
112
112
|
.collection(collection)
|
|
113
113
|
.findOne({ _id: compoundId });
|
|
114
114
|
return fromMongoDoc(raw);
|
|
115
115
|
}
|
|
116
|
-
async function setDoc(collection, doc, options) {
|
|
116
|
+
export async function setDoc(collection, doc, options) {
|
|
117
117
|
const parentId = options?.parentId;
|
|
118
118
|
const mongoDoc = toMongoDoc(doc, parentId);
|
|
119
119
|
const compoundId = toMongoId(doc.id, parentId);
|
|
@@ -156,7 +156,7 @@ update) {
|
|
|
156
156
|
.findOneAndUpdate({ _id: compoundId }, update, { returnDocument: 'after' });
|
|
157
157
|
return fromMongoDoc(raw);
|
|
158
158
|
}
|
|
159
|
-
async function setDocFields(collection, id, fields, options) {
|
|
159
|
+
export async function setDocFields(collection, id, fields, options) {
|
|
160
160
|
const compoundId = toMongoId(id, options?.parentId);
|
|
161
161
|
const updated = await findOneAndUpdateDoc(collection, compoundId, {
|
|
162
162
|
$set: fields,
|
|
@@ -166,7 +166,7 @@ async function setDocFields(collection, id, fields, options) {
|
|
|
166
166
|
publishDocUpdate(compoundId, collection, updated);
|
|
167
167
|
return updated;
|
|
168
168
|
}
|
|
169
|
-
async function setDocFieldsOrIgnore(collection, id, fields, options) {
|
|
169
|
+
export async function setDocFieldsOrIgnore(collection, id, fields, options) {
|
|
170
170
|
const compoundId = toMongoId(id, options?.parentId);
|
|
171
171
|
const updated = await findOneAndUpdateDoc(collection, compoundId, {
|
|
172
172
|
$set: fields,
|
|
@@ -175,14 +175,14 @@ async function setDocFieldsOrIgnore(collection, id, fields, options) {
|
|
|
175
175
|
publishDocUpdate(compoundId, collection, updated);
|
|
176
176
|
return updated;
|
|
177
177
|
}
|
|
178
|
-
async function setDocFieldsOrCreate(collection, id, fields, obj, options) {
|
|
178
|
+
export async function setDocFieldsOrCreate(collection, id, fields, obj, options) {
|
|
179
179
|
const existing = await setDocFieldsOrIgnore(collection, id, fields, options);
|
|
180
180
|
if (existing)
|
|
181
181
|
return existing;
|
|
182
182
|
await setDoc(collection, obj, options);
|
|
183
183
|
return obj;
|
|
184
184
|
}
|
|
185
|
-
async function setDocOp(collection, id, op, options) {
|
|
185
|
+
export async function setDocOp(collection, id, op, options) {
|
|
186
186
|
const compoundId = toMongoId(id, options?.parentId);
|
|
187
187
|
const updated = await findOneAndUpdateDoc(collection, compoundId, op);
|
|
188
188
|
if (!updated)
|
|
@@ -190,21 +190,21 @@ async function setDocOp(collection, id, op, options) {
|
|
|
190
190
|
publishDocUpdate(compoundId, collection, updated);
|
|
191
191
|
return updated;
|
|
192
192
|
}
|
|
193
|
-
async function setDocOpOrIgnore(collection, id, op, options) {
|
|
193
|
+
export async function setDocOpOrIgnore(collection, id, op, options) {
|
|
194
194
|
const compoundId = toMongoId(id, options?.parentId);
|
|
195
195
|
const updated = await findOneAndUpdateDoc(collection, compoundId, op);
|
|
196
196
|
if (updated)
|
|
197
197
|
publishDocUpdate(compoundId, collection, updated);
|
|
198
198
|
return updated;
|
|
199
199
|
}
|
|
200
|
-
async function deleteDoc(collection, id, options) {
|
|
200
|
+
export async function deleteDoc(collection, id, options) {
|
|
201
201
|
const compoundId = toMongoId(id, options?.parentId);
|
|
202
202
|
await db()
|
|
203
203
|
.collection(collection)
|
|
204
204
|
.deleteOne({ _id: compoundId });
|
|
205
205
|
publishDocDelete(compoundId, collection);
|
|
206
206
|
}
|
|
207
|
-
async function getDocs(collection, filter = {}, options = {}) {
|
|
207
|
+
export async function getDocs(collection, filter = {}, options = {}) {
|
|
208
208
|
let cursor = db().collection(collection).find(filter);
|
|
209
209
|
if (options.sort)
|
|
210
210
|
cursor = cursor.sort(options.sort);
|
|
@@ -228,12 +228,12 @@ async function getQuery(collection, pipeline, options) {
|
|
|
228
228
|
.map((r) => fromMongoDoc(r))
|
|
229
229
|
.filter(Boolean);
|
|
230
230
|
}
|
|
231
|
-
async function getQueryCount(collection, pipeline) {
|
|
231
|
+
export async function getQueryCount(collection, pipeline) {
|
|
232
232
|
const stages = [...pipeline, { $count: 'count' }];
|
|
233
233
|
const raw = await db().collection(collection).aggregate(stages).toArray();
|
|
234
234
|
return raw[0]?.count ?? 0;
|
|
235
235
|
}
|
|
236
|
-
async function getQueryRaw(collection, pipeline, options) {
|
|
236
|
+
export async function getQueryRaw(collection, pipeline, options) {
|
|
237
237
|
const stages = [...pipeline];
|
|
238
238
|
if (options?.skip)
|
|
239
239
|
stages.push({ $skip: options.skip });
|
|
@@ -291,10 +291,15 @@ export function createTypedDB(defs) {
|
|
|
291
291
|
cacheDelete(docCacheKey(collection, leafId, parentId));
|
|
292
292
|
}
|
|
293
293
|
}
|
|
294
|
+
// Resolve collection name from either a CollectionDef object or a plain string
|
|
295
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
296
|
+
function colName(collection) {
|
|
297
|
+
return typeof collection === 'string' ? collection : collection.name;
|
|
298
|
+
}
|
|
294
299
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
295
300
|
const typedDb = {
|
|
296
301
|
getDoc: async (collection, id, parentId) => {
|
|
297
|
-
const name = collection
|
|
302
|
+
const name = colName(collection);
|
|
298
303
|
const meta = defs[name]?.meta;
|
|
299
304
|
const compoundId = toMongoId(id, parentId);
|
|
300
305
|
if (meta?.cache) {
|
|
@@ -313,7 +318,7 @@ export function createTypedDB(defs) {
|
|
|
313
318
|
return fromMongoDoc(raw);
|
|
314
319
|
},
|
|
315
320
|
setDoc: async (collection, doc, options) => {
|
|
316
|
-
const name = collection
|
|
321
|
+
const name = colName(collection);
|
|
317
322
|
const result = await setDoc(name, doc, options);
|
|
318
323
|
if (result) {
|
|
319
324
|
const meta = defs[name]?.meta;
|
|
@@ -325,7 +330,7 @@ export function createTypedDB(defs) {
|
|
|
325
330
|
return result;
|
|
326
331
|
},
|
|
327
332
|
setDocFields: async (collection, id, fields, options) => {
|
|
328
|
-
const name = collection
|
|
333
|
+
const name = colName(collection);
|
|
329
334
|
const updated = await setDocFields(name, id, fields, options);
|
|
330
335
|
const meta = defs[name]?.meta;
|
|
331
336
|
if (meta?.cache) {
|
|
@@ -335,7 +340,7 @@ export function createTypedDB(defs) {
|
|
|
335
340
|
return updated;
|
|
336
341
|
},
|
|
337
342
|
setDocFieldsOrIgnore: async (collection, id, fields, options) => {
|
|
338
|
-
const name = collection
|
|
343
|
+
const name = colName(collection);
|
|
339
344
|
const updated = await setDocFieldsOrIgnore(name, id, fields, options);
|
|
340
345
|
if (updated) {
|
|
341
346
|
const meta = defs[name]?.meta;
|
|
@@ -347,7 +352,7 @@ export function createTypedDB(defs) {
|
|
|
347
352
|
return updated;
|
|
348
353
|
},
|
|
349
354
|
setDocFieldsOrCreate: async (collection, id, fields, obj, options) => {
|
|
350
|
-
const name = collection
|
|
355
|
+
const name = colName(collection);
|
|
351
356
|
const result = await setDocFieldsOrCreate(name, id, fields, obj, options);
|
|
352
357
|
const meta = defs[name]?.meta;
|
|
353
358
|
if (meta?.cache) {
|
|
@@ -357,7 +362,7 @@ export function createTypedDB(defs) {
|
|
|
357
362
|
return result;
|
|
358
363
|
},
|
|
359
364
|
setDocOp: async (collection, id, op, options) => {
|
|
360
|
-
const name = collection
|
|
365
|
+
const name = colName(collection);
|
|
361
366
|
const updated = await setDocOp(name, id, op, options);
|
|
362
367
|
const meta = defs[name]?.meta;
|
|
363
368
|
if (meta?.cache) {
|
|
@@ -367,7 +372,7 @@ export function createTypedDB(defs) {
|
|
|
367
372
|
return updated;
|
|
368
373
|
},
|
|
369
374
|
setDocOpOrIgnore: async (collection, id, op, options) => {
|
|
370
|
-
const name = collection
|
|
375
|
+
const name = colName(collection);
|
|
371
376
|
const updated = await setDocOpOrIgnore(name, id, op, options);
|
|
372
377
|
if (updated) {
|
|
373
378
|
const meta = defs[name]?.meta;
|
|
@@ -379,12 +384,12 @@ export function createTypedDB(defs) {
|
|
|
379
384
|
return updated;
|
|
380
385
|
},
|
|
381
386
|
deleteDoc: async (collection, id, options) => {
|
|
382
|
-
const name = collection
|
|
387
|
+
const name = colName(collection);
|
|
383
388
|
const compoundId = toMongoId(id, options?.parentId);
|
|
384
389
|
await cascadeDeleteDoc(name, id, compoundId);
|
|
385
390
|
},
|
|
386
391
|
getDocs: async (collection, filter, options) => {
|
|
387
|
-
const name = collection
|
|
392
|
+
const name = colName(collection);
|
|
388
393
|
const { parentId, ...rest } = options ?? {};
|
|
389
394
|
const effectiveFilter = { ...(filter ?? {}) };
|
|
390
395
|
if (parentId !== undefined) {
|
|
@@ -401,7 +406,7 @@ export function createTypedDB(defs) {
|
|
|
401
406
|
getQueryCount: (collection, pipeline) => getQueryCount(collection, pipeline),
|
|
402
407
|
getQueryRaw: (collection, pipeline, options) => getQueryRaw(collection, pipeline, options),
|
|
403
408
|
deleteQuery: async (collection, match, options) => {
|
|
404
|
-
const name = collection
|
|
409
|
+
const name = colName(collection);
|
|
405
410
|
const { parentId } = options ?? {};
|
|
406
411
|
const effectiveMatch = { ...match };
|
|
407
412
|
if (parentId !== undefined) {
|