@lobb-js/studio 0.1.42 → 0.2.0
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/components/LlmButton.svelte +1 -2
- package/dist/components/Studio.svelte +1 -2
- package/dist/components/codeEditor.svelte +1 -1
- package/dist/components/createManyButton.svelte +1 -1
- package/dist/components/dataTable/childRecords.svelte +1 -1
- package/dist/components/dataTable/childRecords.svelte.d.ts +1 -1
- package/dist/components/dataTable/dataTable.svelte +2 -3
- package/dist/components/dataTable/dataTable.svelte.d.ts +1 -1
- package/dist/components/dataTable/header.svelte +1 -2
- package/dist/components/dataTable/table.svelte +4 -4
- package/dist/components/dataTable/table.svelte.d.ts +1 -1
- package/dist/components/detailView/create/children.svelte +1 -1
- package/dist/components/detailView/create/createDetailView.svelte +1 -2
- package/dist/components/detailView/create/createManyView.svelte +4 -4
- package/dist/components/detailView/fieldInput.svelte +11 -42
- package/dist/components/detailView/fieldInputReplacement.svelte +7 -7
- package/dist/components/detailView/store.svelte.js +1 -1
- package/dist/components/detailView/update/children.svelte +3 -3
- package/dist/components/detailView/update/updateDetailView.svelte +1 -2
- package/dist/components/diffViewer.svelte +1 -1
- package/dist/components/foreingKeyInput.svelte +2 -2
- package/dist/components/rangeCalendarButton.svelte +10 -10
- package/dist/components/routes/data_model/syncManager.svelte +1 -2
- package/dist/components/routes/workflows/workflows.svelte +1 -2
- package/dist/components/sidebar/sidebar.svelte +1 -1
- package/dist/components/sidebar/sidebarElements.svelte +1 -1
- package/dist/components/singletone.svelte +1 -1
- package/dist/components/ui/input/input.svelte +2 -2
- package/dist/components/ui/range-calendar/range-calendar-day.svelte.d.ts +6 -0
- package/dist/components/ui/select/select-content.svelte +1 -1
- package/dist/components/ui/select/select-trigger.svelte +1 -1
- package/dist/components/ui/textarea/textarea.svelte +1 -1
- package/dist/components/workflowEditor.svelte +1 -2
- package/dist/extensions/extension.types.d.ts +2 -2
- package/dist/extensions/extensionUtils.js +1 -2
- package/dist/index.d.ts +22 -8
- package/dist/index.js +21 -26
- package/dist/store.svelte.d.ts +1 -2
- package/dist/store.svelte.js +2 -2
- package/dist/utils.d.ts +0 -1
- package/dist/utils.js +0 -11
- package/package.json +11 -15
- package/vite-plugins/contextual-lib-alias.js +39 -38
- package/vite-plugins/index.js +0 -2
- package/dist/Lobb.d.ts +0 -30
- package/dist/Lobb.js +0 -358
- package/dist/Studio.svelte +0 -150
- package/dist/Studio.svelte.d.ts +0 -6
- package/vite-plugins/monorepo-import-resolver.js +0 -92
|
@@ -24,7 +24,7 @@
|
|
|
24
24
|
<input
|
|
25
25
|
bind:this={ref}
|
|
26
26
|
class={cn(
|
|
27
|
-
"border-input placeholder:text-muted-foreground focus-visible:ring-ring flex h-9 w-full rounded-md border bg-transparent px-3 py-1 text-base
|
|
27
|
+
"border-input placeholder:text-muted-foreground focus-visible:ring-ring flex h-9 w-full rounded-md border bg-transparent px-3 py-1 text-base transition-colors file:border-0 file:bg-transparent file:text-sm file:font-medium focus-visible:outline-none focus-visible:ring-1 disabled:cursor-not-allowed disabled:opacity-50 md:text-sm",
|
|
28
28
|
className
|
|
29
29
|
)}
|
|
30
30
|
type="file"
|
|
@@ -36,7 +36,7 @@
|
|
|
36
36
|
<input
|
|
37
37
|
bind:this={ref}
|
|
38
38
|
class={cn(
|
|
39
|
-
"border-input placeholder:text-muted-foreground focus-visible:ring-ring flex h-9 w-full rounded-md border bg-transparent px-3 py-1 text-base
|
|
39
|
+
"border-input placeholder:text-muted-foreground focus-visible:ring-ring flex h-9 w-full rounded-md border bg-transparent px-3 py-1 text-base transition-colors file:border-0 file:bg-transparent file:text-sm file:font-medium focus-visible:outline-none focus-visible:ring-1 disabled:cursor-not-allowed disabled:opacity-50 md:text-sm",
|
|
40
40
|
className
|
|
41
41
|
)}
|
|
42
42
|
{type}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { RangeCalendar as RangeCalendarPrimitive } from "bits-ui";
|
|
2
|
+
declare const RangeCalendarDay: import("svelte").Component<RangeCalendarPrimitive.DayProps, {
|
|
3
|
+
class: import("svelte/elements").ClassValue;
|
|
4
|
+
}, "ref">;
|
|
5
|
+
type RangeCalendarDay = ReturnType<typeof RangeCalendarDay>;
|
|
6
|
+
export default RangeCalendarDay;
|
|
@@ -20,7 +20,7 @@
|
|
|
20
20
|
bind:ref
|
|
21
21
|
{sideOffset}
|
|
22
22
|
class={cn(
|
|
23
|
-
"data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 bg-popover text-popover-foreground relative z-50 max-h-96 min-w-32 overflow-hidden rounded-md border
|
|
23
|
+
"data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 bg-popover text-popover-foreground relative z-50 max-h-96 min-w-32 overflow-hidden rounded-md border data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1",
|
|
24
24
|
className
|
|
25
25
|
)}
|
|
26
26
|
{...restProps}
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
<SelectPrimitive.Trigger
|
|
15
15
|
bind:ref
|
|
16
16
|
class={cn(
|
|
17
|
-
"border-input ring-offset-background data-[placeholder]:text-muted-foreground focus:ring-ring flex h-9 w-full items-center justify-between whitespace-nowrap rounded-md border bg-transparent px-3 py-2 text-sm
|
|
17
|
+
"border-input ring-offset-background data-[placeholder]:text-muted-foreground focus:ring-ring flex h-9 w-full items-center justify-between whitespace-nowrap rounded-md border bg-transparent px-3 py-2 text-sm focus:outline-none focus:ring-1 disabled:cursor-not-allowed disabled:opacity-50 [&>span]:line-clamp-1",
|
|
18
18
|
className
|
|
19
19
|
)}
|
|
20
20
|
{...restProps}
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
bind:this={ref}
|
|
16
16
|
bind:value
|
|
17
17
|
class={cn(
|
|
18
|
-
"border-input placeholder:text-muted-foreground focus-visible:ring-ring flex min-h-[60px] w-full rounded-md border bg-transparent px-3 py-2 text-base
|
|
18
|
+
"border-input placeholder:text-muted-foreground focus-visible:ring-ring flex min-h-[60px] w-full rounded-md border bg-transparent px-3 py-2 text-base focus-visible:outline-none focus-visible:ring-1 disabled:cursor-not-allowed disabled:opacity-50 md:text-sm",
|
|
19
19
|
className
|
|
20
20
|
)}
|
|
21
21
|
{...restProps}
|
|
@@ -11,11 +11,10 @@
|
|
|
11
11
|
</script>
|
|
12
12
|
|
|
13
13
|
<script lang="ts">
|
|
14
|
-
import { lobb } from "
|
|
14
|
+
import { lobb, ctx } from "../store.svelte";
|
|
15
15
|
import CodeEditor from "./codeEditor.svelte";
|
|
16
16
|
import Button from "./ui/button/button.svelte";
|
|
17
17
|
import Input from "./ui/input/input.svelte";
|
|
18
|
-
import { ctx } from "../store.svelte";
|
|
19
18
|
import { location } from "@wjfe/n-savant";
|
|
20
19
|
import { Edit, Plus } from "lucide-svelte";
|
|
21
20
|
import { toast } from "svelte-sonner";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { LobbClient } from "@lobb/sdk";
|
|
2
2
|
import type { CTX } from "../lib/store.types";
|
|
3
3
|
import type { Button } from "../components/ui/button";
|
|
4
4
|
import type { Input } from "../components/ui/input";
|
|
@@ -49,7 +49,7 @@ export interface Components {
|
|
|
49
49
|
}
|
|
50
50
|
export interface ExtensionUtils {
|
|
51
51
|
ctx: CTX;
|
|
52
|
-
lobb:
|
|
52
|
+
lobb: LobbClient;
|
|
53
53
|
location: Location;
|
|
54
54
|
toast: typeof toast;
|
|
55
55
|
showDialog: typeof showDialog;
|
|
@@ -43,8 +43,7 @@ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
|
|
43
43
|
}
|
|
44
44
|
return to.concat(ar || Array.prototype.slice.call(from));
|
|
45
45
|
};
|
|
46
|
-
import { lobb } from "
|
|
47
|
-
import { ctx } from "../store.svelte";
|
|
46
|
+
import { lobb, ctx } from "../store.svelte";
|
|
48
47
|
import { toast } from "svelte-sonner";
|
|
49
48
|
import { showDialog } from "../components/confirmationDialog/store.svelte";
|
|
50
49
|
import { Button } from "../components/ui/button";
|
package/dist/index.d.ts
CHANGED
|
@@ -1,9 +1,23 @@
|
|
|
1
|
+
export type { ExtensionProps, Extension, ExtensionUtils } from "./extensions/extension.types";
|
|
1
2
|
export { default as Studio } from "./components/Studio.svelte";
|
|
2
|
-
export {
|
|
3
|
-
export
|
|
4
|
-
export
|
|
5
|
-
export {
|
|
6
|
-
export
|
|
7
|
-
export
|
|
8
|
-
export
|
|
9
|
-
export
|
|
3
|
+
export { Button } from "./components/ui/button";
|
|
4
|
+
export { Input } from "./components/ui/input";
|
|
5
|
+
export { Separator } from "./components/ui/separator";
|
|
6
|
+
export { Skeleton } from "./components/ui/skeleton";
|
|
7
|
+
export { default as LlmButton } from "./components/LlmButton.svelte";
|
|
8
|
+
export { default as Sidebar } from "./components/sidebar/sidebar.svelte";
|
|
9
|
+
export { default as SidebarTrigger } from "./components/sidebar/sidebarTrigger.svelte";
|
|
10
|
+
export { default as CreateDetailViewButton } from "./components/detailView/create/createDetailViewButton.svelte";
|
|
11
|
+
export { default as UpdateDetailViewButton } from "./components/detailView/update/updateDetailViewButton.svelte";
|
|
12
|
+
export * as Tooltip from "./components/ui/tooltip";
|
|
13
|
+
export * as Breadcrumb from "./components/ui/breadcrumb";
|
|
14
|
+
export { ContextMenu } from "bits-ui";
|
|
15
|
+
export * as Popover from "./components/ui/popover";
|
|
16
|
+
export * as Icons from "lucide-svelte";
|
|
17
|
+
export * as Dialog from "./components/ui/dialog/index";
|
|
18
|
+
export { default as Table } from "./components/dataTable/table.svelte";
|
|
19
|
+
export { default as RangeCalendarButton } from "./components/rangeCalendarButton.svelte";
|
|
20
|
+
export { default as DataTable } from "./components/dataTable/dataTable.svelte";
|
|
21
|
+
export { default as Drawer } from "./components/drawer.svelte";
|
|
22
|
+
export { default as SelectRecord } from "./components/selectRecord.svelte";
|
|
23
|
+
export { Switch } from "./components/ui/switch";
|
package/dist/index.js
CHANGED
|
@@ -1,27 +1,22 @@
|
|
|
1
|
-
// Main Studio component
|
|
2
1
|
export { default as Studio } from "./components/Studio.svelte";
|
|
3
|
-
|
|
4
|
-
export {
|
|
5
|
-
export
|
|
6
|
-
export
|
|
7
|
-
export {
|
|
8
|
-
export
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
}
|
|
15
|
-
export
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
}
|
|
24
|
-
export function pxToRem(px) {
|
|
25
|
-
var rootFontSize = parseFloat(getComputedStyle(document.documentElement).fontSize);
|
|
26
|
-
return px / rootFontSize;
|
|
27
|
-
}
|
|
2
|
+
export { Button } from "./components/ui/button";
|
|
3
|
+
export { Input } from "./components/ui/input";
|
|
4
|
+
export { Separator } from "./components/ui/separator";
|
|
5
|
+
export { Skeleton } from "./components/ui/skeleton";
|
|
6
|
+
export { default as LlmButton } from "./components/LlmButton.svelte";
|
|
7
|
+
export { default as Sidebar } from "./components/sidebar/sidebar.svelte";
|
|
8
|
+
export { default as SidebarTrigger } from "./components/sidebar/sidebarTrigger.svelte";
|
|
9
|
+
export { default as CreateDetailViewButton } from "./components/detailView/create/createDetailViewButton.svelte";
|
|
10
|
+
export { default as UpdateDetailViewButton } from "./components/detailView/update/updateDetailViewButton.svelte";
|
|
11
|
+
export * as Tooltip from "./components/ui/tooltip";
|
|
12
|
+
export * as Breadcrumb from "./components/ui/breadcrumb";
|
|
13
|
+
export { ContextMenu } from "bits-ui";
|
|
14
|
+
export * as Popover from "./components/ui/popover";
|
|
15
|
+
export * as Icons from "lucide-svelte";
|
|
16
|
+
export * as Dialog from "./components/ui/dialog/index";
|
|
17
|
+
export { default as Table } from "./components/dataTable/table.svelte";
|
|
18
|
+
export { default as RangeCalendarButton } from "./components/rangeCalendarButton.svelte";
|
|
19
|
+
export { default as DataTable } from "./components/dataTable/dataTable.svelte";
|
|
20
|
+
export { default as Drawer } from "./components/drawer.svelte";
|
|
21
|
+
export { default as SelectRecord } from "./components/selectRecord.svelte";
|
|
22
|
+
export { Switch } from "./components/ui/switch";
|
package/dist/store.svelte.d.ts
CHANGED
package/dist/store.svelte.js
CHANGED
|
@@ -34,7 +34,7 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
|
34
34
|
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
35
35
|
}
|
|
36
36
|
};
|
|
37
|
-
import {
|
|
37
|
+
import { LobbClient } from '@lobb/sdk';
|
|
38
38
|
import { toast } from 'svelte-sonner';
|
|
39
39
|
if (!window.APP_ENV) {
|
|
40
40
|
window.APP_ENV = {};
|
|
@@ -56,7 +56,7 @@ export var ctx = $state.raw({
|
|
|
56
56
|
filter: null
|
|
57
57
|
},
|
|
58
58
|
});
|
|
59
|
-
export var lobb = new
|
|
59
|
+
export var lobb = new LobbClient(ctx.lobbUrl);
|
|
60
60
|
// logging the message if got any bad responses
|
|
61
61
|
lobb.onResponse(function (response) { return __awaiter(void 0, void 0, void 0, function () {
|
|
62
62
|
var body;
|
package/dist/utils.d.ts
CHANGED
|
@@ -19,7 +19,6 @@ export declare const mediaQueries: {
|
|
|
19
19
|
'2xl': MediaQuery;
|
|
20
20
|
};
|
|
21
21
|
export declare function getFieldRelation(collectionName: string, fieldName: string): any;
|
|
22
|
-
export declare function getDiscriminatorFieldRelation(collectionName: string, fieldName: string): any;
|
|
23
22
|
export declare function recordHasChildrean(collectionName: string): boolean;
|
|
24
23
|
export declare function calculateDrawerWidth(): number;
|
|
25
24
|
export declare function getChangedProperties(oldObj: Record<string, any>, newObj: Record<string, any>): Record<string, any>;
|
package/dist/utils.js
CHANGED
|
@@ -27,17 +27,6 @@ export function getFieldRelation(collectionName, fieldName) {
|
|
|
27
27
|
return null;
|
|
28
28
|
}
|
|
29
29
|
;
|
|
30
|
-
export function getDiscriminatorFieldRelation(collectionName, fieldName) {
|
|
31
|
-
var relations = ctx.meta.relations;
|
|
32
|
-
for (var index = 0; index < relations.length; index++) {
|
|
33
|
-
var relation = relations[index];
|
|
34
|
-
if (relation.from.collection === collectionName && relation.from.discriminator === fieldName) {
|
|
35
|
-
return relation;
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
return null;
|
|
39
|
-
}
|
|
40
|
-
;
|
|
41
30
|
export function recordHasChildrean(collectionName) {
|
|
42
31
|
for (var index = 0; index < ctx.meta.relations.length; index++) {
|
|
43
32
|
var relation = ctx.meta.relations[index];
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lobb-js/studio",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.2.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"publishConfig": {
|
|
6
6
|
"access": "public"
|
|
@@ -11,19 +11,10 @@
|
|
|
11
11
|
],
|
|
12
12
|
"exports": {
|
|
13
13
|
".": {
|
|
14
|
-
"svelte": "./dist/
|
|
14
|
+
"svelte": "./dist/index.js",
|
|
15
|
+
"types": "./dist/index.d.ts"
|
|
15
16
|
},
|
|
16
|
-
"./
|
|
17
|
-
"svelte": "./src/lib/components/Studio.svelte"
|
|
18
|
-
},
|
|
19
|
-
"./*": {
|
|
20
|
-
"svelte": "./dist/components/*"
|
|
21
|
-
},
|
|
22
|
-
"./internal/*": {
|
|
23
|
-
"svelte": "./src/lib/components/*"
|
|
24
|
-
},
|
|
25
|
-
"./vite-plugins": "./vite-plugins/index.js",
|
|
26
|
-
"./components": "./src/components-export.ts"
|
|
17
|
+
"./vite-plugins": "./vite-plugins/index.js"
|
|
27
18
|
},
|
|
28
19
|
"scripts": {
|
|
29
20
|
"dev": "vite",
|
|
@@ -35,7 +26,9 @@
|
|
|
35
26
|
"storybook": "storybook dev -p 6006",
|
|
36
27
|
"build-storybook": "storybook build",
|
|
37
28
|
"test": "vitest",
|
|
38
|
-
"test-storybook": "vitest --project=storybook"
|
|
29
|
+
"test-storybook": "vitest --project=storybook",
|
|
30
|
+
"prepublishOnly": "npm run package && jq '.exports[\".\"] = {\"svelte\": \"./dist/index.js\", \"types\": \"./dist/index.d.ts\"}' package.json > package.json.tmp && mv package.json.tmp package.json",
|
|
31
|
+
"postpublish": "jq '.exports[\".\"] = {\"__svelte\": \"./dist/index.js\", \"__types\": \"./dist/index.d.ts\", \"default\": \"./src/lib/index.ts\"}' package.json > package.json.tmp && mv package.json.tmp package.json"
|
|
39
32
|
},
|
|
40
33
|
"devDependencies": {
|
|
41
34
|
"@chromatic-com/storybook": "^4.1.2",
|
|
@@ -68,7 +61,9 @@
|
|
|
68
61
|
"vitest": "^4.0.5"
|
|
69
62
|
},
|
|
70
63
|
"peerDependencies": {
|
|
71
|
-
"svelte": "^5.0.0"
|
|
64
|
+
"svelte": "^5.0.0",
|
|
65
|
+
"tailwindcss": "^4.0.0",
|
|
66
|
+
"@tailwindcss/vite": "^4.0.0"
|
|
72
67
|
},
|
|
73
68
|
"dependencies": {
|
|
74
69
|
"@andrewbranch/untar.js": "^1.0.3",
|
|
@@ -79,6 +74,7 @@
|
|
|
79
74
|
"@codemirror/theme-one-dark": "^6.1.3",
|
|
80
75
|
"@codemirror/view": "^6.39.12",
|
|
81
76
|
"@dagrejs/dagre": "^1.1.5",
|
|
77
|
+
"@lobb/sdk": "0.1.0",
|
|
82
78
|
"@lucide/svelte": "^0.563.1",
|
|
83
79
|
"@tailwindcss/vite": "^4.1.18",
|
|
84
80
|
"@wjfe/n-savant": "^0.3.0",
|
|
@@ -1,63 +1,64 @@
|
|
|
1
1
|
import path from "path";
|
|
2
2
|
import fs from "fs";
|
|
3
|
-
import { fileURLToPath } from "url";
|
|
4
|
-
|
|
5
|
-
const __filename = fileURLToPath(import.meta.url);
|
|
6
|
-
const __dirname = path.dirname(__filename);
|
|
7
3
|
|
|
8
4
|
/**
|
|
9
|
-
* Vite plugin that resolves $lib imports contextually based on the importing file
|
|
5
|
+
* Vite plugin that resolves $lib imports contextually based on the importing file's package.
|
|
10
6
|
*
|
|
11
|
-
*
|
|
12
|
-
*
|
|
13
|
-
* - Files from Studio package in node_modules -> resolve to node_modules/@lobb-js/studio/src/lib
|
|
7
|
+
* Walks up the directory tree from the importer to find the nearest package.json,
|
|
8
|
+
* then checks if that package has a src/lib directory. If so, resolves $lib to that path.
|
|
14
9
|
*
|
|
15
|
-
* This allows
|
|
16
|
-
* without conflicts.
|
|
10
|
+
* This allows any package using the src/lib convention to use $lib imports without conflicts.
|
|
17
11
|
*
|
|
18
12
|
* @returns {import('vite').Plugin}
|
|
19
13
|
*/
|
|
20
14
|
export function contextualLibAlias() {
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
15
|
+
const packageRootCache = new Map();
|
|
16
|
+
|
|
17
|
+
function findPackageRoot(filePath) {
|
|
18
|
+
const dir = path.dirname(filePath);
|
|
19
|
+
|
|
20
|
+
// Check cache
|
|
21
|
+
if (packageRootCache.has(dir)) {
|
|
22
|
+
return packageRootCache.get(dir);
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
// Walk up directories to find package.json
|
|
26
|
+
let currentDir = dir;
|
|
27
|
+
const rootDir = path.parse(currentDir).root;
|
|
28
|
+
|
|
29
|
+
while (currentDir !== rootDir) {
|
|
30
|
+
const pkgPath = path.join(currentDir, "package.json");
|
|
31
|
+
if (fs.existsSync(pkgPath)) {
|
|
32
|
+
packageRootCache.set(dir, currentDir);
|
|
33
|
+
return currentDir;
|
|
34
|
+
}
|
|
35
|
+
currentDir = path.dirname(currentDir);
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
// Not found
|
|
39
|
+
packageRootCache.set(dir, null);
|
|
40
|
+
return null;
|
|
41
|
+
}
|
|
24
42
|
|
|
25
43
|
return {
|
|
26
44
|
name: "contextual-lib-alias",
|
|
27
45
|
enforce: "pre",
|
|
28
46
|
|
|
29
|
-
configResolved(config) {
|
|
30
|
-
projectRoot = config.root;
|
|
31
|
-
localLibPath = path.resolve(projectRoot, "./src/lib");
|
|
32
|
-
},
|
|
33
|
-
|
|
34
47
|
async resolveId(source, importer, options) {
|
|
35
48
|
if (!source.startsWith("$lib")) return null;
|
|
36
49
|
if (!importer) return null;
|
|
37
50
|
|
|
38
|
-
//
|
|
39
|
-
const
|
|
40
|
-
|
|
41
|
-
let targetPath;
|
|
51
|
+
// Find the package root for the importing file
|
|
52
|
+
const packageRoot = findPackageRoot(importer);
|
|
53
|
+
if (!packageRoot) return null;
|
|
42
54
|
|
|
43
|
-
if
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
} else if (importer.includes("node_modules/@lobb-js/studio")) {
|
|
47
|
-
// Import from Studio package in node_modules -> resolve to node_modules/@lobb-js/studio/src/lib
|
|
48
|
-
const nodeModulesStudioPath = importer.substring(0, importer.indexOf("node_modules/@lobb-js/studio") + "node_modules/@lobb-js/studio".length);
|
|
49
|
-
targetPath = path.join(nodeModulesStudioPath, "src/lib");
|
|
50
|
-
} else if (fs.existsSync(studioLibPath)) {
|
|
51
|
-
// External file (e.g., Studio in monorepo) importing $lib -> resolve to Studio's src/lib
|
|
52
|
-
targetPath = studioLibPath;
|
|
53
|
-
} else {
|
|
54
|
-
// Neither path exists, let default resolution handle it
|
|
55
|
-
return null;
|
|
56
|
-
}
|
|
55
|
+
// Check if this package has src/lib
|
|
56
|
+
const libPath = path.join(packageRoot, "src/lib");
|
|
57
|
+
if (!fs.existsSync(libPath)) return null;
|
|
57
58
|
|
|
58
|
-
//
|
|
59
|
+
// Resolve $lib to this package's src/lib
|
|
59
60
|
const importPath = source.slice(4); // Remove "$lib"
|
|
60
|
-
const resolvedPath = path.join(
|
|
61
|
+
const resolvedPath = path.join(libPath, importPath);
|
|
61
62
|
|
|
62
63
|
// Let Vite resolve the actual file (handles .js, .ts, .svelte extensions)
|
|
63
64
|
return this.resolve(resolvedPath, importer, { skipSelf: true, ...options });
|
package/vite-plugins/index.js
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { contextualLibAlias } from "./contextual-lib-alias.js";
|
|
2
|
-
import { monorepoImportResolver } from "./monorepo-import-resolver.js";
|
|
3
2
|
|
|
4
3
|
/**
|
|
5
4
|
* Returns an array of Vite plugins needed for Lobb Studio integration.
|
|
@@ -12,7 +11,6 @@ import { monorepoImportResolver } from "./monorepo-import-resolver.js";
|
|
|
12
11
|
*/
|
|
13
12
|
export function lobbStudioPlugins() {
|
|
14
13
|
return [
|
|
15
|
-
monorepoImportResolver(),
|
|
16
14
|
contextualLibAlias(),
|
|
17
15
|
];
|
|
18
16
|
}
|
package/dist/Lobb.d.ts
DELETED
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
interface RouteParams {
|
|
2
|
-
method: string;
|
|
3
|
-
route: string;
|
|
4
|
-
payload?: any;
|
|
5
|
-
}
|
|
6
|
-
type OnResponseHandlers = (reponse: Response) => void;
|
|
7
|
-
export declare class Lobb {
|
|
8
|
-
lobbUrl: string;
|
|
9
|
-
private headers;
|
|
10
|
-
private onResponseHandlers;
|
|
11
|
-
constructor(lobbUrl: string);
|
|
12
|
-
onResponse(callback: OnResponseHandlers): Promise<void>;
|
|
13
|
-
setHeaders(headers: HeadersInit): void;
|
|
14
|
-
getHeaders(): HeadersInit;
|
|
15
|
-
getMeta(): Promise<any>;
|
|
16
|
-
findAll(collectionName: string, params: any): Promise<Response>;
|
|
17
|
-
findOne(collectionName: string, id: string, queryParams?: any): Promise<Response>;
|
|
18
|
-
createOne(collectionName: string, body: any, file?: File): Promise<Response>;
|
|
19
|
-
updateOne(collectionName: string, id: string, body: any): Promise<Response>;
|
|
20
|
-
readSingleton(collectionName: string): Promise<Response>;
|
|
21
|
-
updateSingleton(collectionName: string, body: Record<string, any>): Promise<Response>;
|
|
22
|
-
deleteOne(collectionName: string, id: string, force?: boolean): Promise<Response>;
|
|
23
|
-
deleteMany(collectionName: string, filter: any, force?: boolean): Promise<Response>;
|
|
24
|
-
createMany(collectionName: string, body: any): Promise<Response>;
|
|
25
|
-
updateMany(collectionName: string, body: any, filter: any): Promise<Response>;
|
|
26
|
-
transactions(body: any[], rollback?: boolean): Promise<Response>;
|
|
27
|
-
request(params: RouteParams): Promise<Response>;
|
|
28
|
-
private handleResponse;
|
|
29
|
-
}
|
|
30
|
-
export {};
|