@agent-native/core 0.26.9 → 0.27.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/agent/run-ownership.d.ts +12 -0
- package/dist/agent/run-ownership.d.ts.map +1 -0
- package/dist/agent/run-ownership.js +39 -0
- package/dist/agent/run-ownership.js.map +1 -0
- package/dist/client/db-admin/DataGrid.d.ts +42 -0
- package/dist/client/db-admin/DataGrid.d.ts.map +1 -0
- package/dist/client/db-admin/DataGrid.js +204 -0
- package/dist/client/db-admin/DataGrid.js.map +1 -0
- package/dist/client/db-admin/DbAdminPage.d.ts +2 -0
- package/dist/client/db-admin/DbAdminPage.d.ts.map +1 -0
- package/dist/client/db-admin/DbAdminPage.js +72 -0
- package/dist/client/db-admin/DbAdminPage.js.map +1 -0
- package/dist/client/db-admin/DevDatabaseLink.d.ts +19 -0
- package/dist/client/db-admin/DevDatabaseLink.d.ts.map +1 -0
- package/dist/client/db-admin/DevDatabaseLink.js +25 -0
- package/dist/client/db-admin/DevDatabaseLink.js.map +1 -0
- package/dist/client/db-admin/EditableCell.d.ts +26 -0
- package/dist/client/db-admin/EditableCell.d.ts.map +1 -0
- package/dist/client/db-admin/EditableCell.js +150 -0
- package/dist/client/db-admin/EditableCell.js.map +1 -0
- package/dist/client/db-admin/FilterBar.d.ts +8 -0
- package/dist/client/db-admin/FilterBar.d.ts.map +1 -0
- package/dist/client/db-admin/FilterBar.js +68 -0
- package/dist/client/db-admin/FilterBar.js.map +1 -0
- package/dist/client/db-admin/ResultsGrid.d.ts +6 -0
- package/dist/client/db-admin/ResultsGrid.d.ts.map +1 -0
- package/dist/client/db-admin/ResultsGrid.js +41 -0
- package/dist/client/db-admin/ResultsGrid.js.map +1 -0
- package/dist/client/db-admin/RowSidePanel.d.ts +18 -0
- package/dist/client/db-admin/RowSidePanel.d.ts.map +1 -0
- package/dist/client/db-admin/RowSidePanel.js +104 -0
- package/dist/client/db-admin/RowSidePanel.js.map +1 -0
- package/dist/client/db-admin/SqlEditor.d.ts +8 -0
- package/dist/client/db-admin/SqlEditor.d.ts.map +1 -0
- package/dist/client/db-admin/SqlEditor.js +350 -0
- package/dist/client/db-admin/SqlEditor.js.map +1 -0
- package/dist/client/db-admin/TableBrowser.d.ts +10 -0
- package/dist/client/db-admin/TableBrowser.d.ts.map +1 -0
- package/dist/client/db-admin/TableBrowser.js +61 -0
- package/dist/client/db-admin/TableBrowser.js.map +1 -0
- package/dist/client/db-admin/TableEditor.d.ts +9 -0
- package/dist/client/db-admin/TableEditor.d.ts.map +1 -0
- package/dist/client/db-admin/TableEditor.js +254 -0
- package/dist/client/db-admin/TableEditor.js.map +1 -0
- package/dist/client/db-admin/cell-format.d.ts +55 -0
- package/dist/client/db-admin/cell-format.d.ts.map +1 -0
- package/dist/client/db-admin/cell-format.js +223 -0
- package/dist/client/db-admin/cell-format.js.map +1 -0
- package/dist/client/db-admin/changeset.d.ts +74 -0
- package/dist/client/db-admin/changeset.d.ts.map +1 -0
- package/dist/client/db-admin/changeset.js +169 -0
- package/dist/client/db-admin/changeset.js.map +1 -0
- package/dist/client/db-admin/export-utils.d.ts +15 -0
- package/dist/client/db-admin/export-utils.d.ts.map +1 -0
- package/dist/client/db-admin/export-utils.js +62 -0
- package/dist/client/db-admin/export-utils.js.map +1 -0
- package/dist/client/db-admin/index.d.ts +7 -0
- package/dist/client/db-admin/index.d.ts.map +1 -0
- package/dist/client/db-admin/index.js +8 -0
- package/dist/client/db-admin/index.js.map +1 -0
- package/dist/client/db-admin/sql-storage.d.ts +35 -0
- package/dist/client/db-admin/sql-storage.d.ts.map +1 -0
- package/dist/client/db-admin/sql-storage.js +117 -0
- package/dist/client/db-admin/sql-storage.js.map +1 -0
- package/dist/client/db-admin/storage.d.ts +24 -0
- package/dist/client/db-admin/storage.d.ts.map +1 -0
- package/dist/client/db-admin/storage.js +50 -0
- package/dist/client/db-admin/storage.js.map +1 -0
- package/dist/client/db-admin/useAgentSync.d.ts +22 -0
- package/dist/client/db-admin/useAgentSync.d.ts.map +1 -0
- package/dist/client/db-admin/useAgentSync.js +120 -0
- package/dist/client/db-admin/useAgentSync.js.map +1 -0
- package/dist/client/db-admin/useDbAdmin.d.ts +20 -0
- package/dist/client/db-admin/useDbAdmin.d.ts.map +1 -0
- package/dist/client/db-admin/useDbAdmin.js +154 -0
- package/dist/client/db-admin/useDbAdmin.js.map +1 -0
- package/dist/client/index.d.ts +1 -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/credentials/index.d.ts.map +1 -1
- package/dist/credentials/index.js +25 -5
- package/dist/credentials/index.js.map +1 -1
- package/dist/db-admin/agent-tools.d.ts +15 -0
- package/dist/db-admin/agent-tools.d.ts.map +1 -0
- package/dist/db-admin/agent-tools.js +147 -0
- package/dist/db-admin/agent-tools.js.map +1 -0
- package/dist/db-admin/operations.d.ts +17 -0
- package/dist/db-admin/operations.d.ts.map +1 -0
- package/dist/db-admin/operations.js +541 -0
- package/dist/db-admin/operations.js.map +1 -0
- package/dist/db-admin/routes.d.ts +5 -0
- package/dist/db-admin/routes.d.ts.map +1 -0
- package/dist/db-admin/routes.js +134 -0
- package/dist/db-admin/routes.js.map +1 -0
- package/dist/db-admin/types.d.ts +85 -0
- package/dist/db-admin/types.d.ts.map +1 -0
- package/dist/db-admin/types.js +9 -0
- package/dist/db-admin/types.js.map +1 -0
- package/dist/extensions/url-safety.d.ts +20 -0
- package/dist/extensions/url-safety.d.ts.map +1 -1
- package/dist/extensions/url-safety.js +43 -0
- package/dist/extensions/url-safety.js.map +1 -1
- package/dist/file-upload/actions/upload-image.d.ts.map +1 -1
- package/dist/file-upload/actions/upload-image.js +6 -1
- package/dist/file-upload/actions/upload-image.js.map +1 -1
- package/dist/integrations/adapters/email.d.ts.map +1 -1
- package/dist/integrations/adapters/email.js +112 -0
- package/dist/integrations/adapters/email.js.map +1 -1
- package/dist/integrations/types.d.ts +11 -0
- package/dist/integrations/types.d.ts.map +1 -1
- package/dist/integrations/types.js.map +1 -1
- package/dist/scripts/db/exec.d.ts.map +1 -1
- package/dist/scripts/db/exec.js +2 -1
- package/dist/scripts/db/exec.js.map +1 -1
- package/dist/scripts/db/index.d.ts.map +1 -1
- package/dist/scripts/db/index.js +1 -0
- package/dist/scripts/db/index.js.map +1 -1
- package/dist/scripts/db/migrate-encrypt-credentials.d.ts +28 -0
- package/dist/scripts/db/migrate-encrypt-credentials.d.ts.map +1 -0
- package/dist/scripts/db/migrate-encrypt-credentials.js +190 -0
- package/dist/scripts/db/migrate-encrypt-credentials.js.map +1 -0
- package/dist/scripts/db/query.d.ts.map +1 -1
- package/dist/scripts/db/query.js +2 -1
- package/dist/scripts/db/query.js.map +1 -1
- package/dist/scripts/db/safety.d.ts +1 -0
- package/dist/scripts/db/safety.d.ts.map +1 -1
- package/dist/scripts/db/safety.js +32 -0
- package/dist/scripts/db/safety.js.map +1 -1
- package/dist/scripts/db/scoping.d.ts.map +1 -1
- package/dist/scripts/db/scoping.js +11 -1
- package/dist/scripts/db/scoping.js.map +1 -1
- package/dist/secrets/crypto.d.ts +28 -0
- package/dist/secrets/crypto.d.ts.map +1 -0
- package/dist/secrets/crypto.js +81 -0
- package/dist/secrets/crypto.js.map +1 -0
- package/dist/secrets/storage.d.ts.map +1 -1
- package/dist/secrets/storage.js +3 -61
- package/dist/secrets/storage.js.map +1 -1
- package/dist/server/action-discovery.d.ts.map +1 -1
- package/dist/server/action-discovery.js +5 -2
- package/dist/server/action-discovery.js.map +1 -1
- package/dist/server/action-routes.d.ts.map +1 -1
- package/dist/server/action-routes.js +24 -7
- package/dist/server/action-routes.js.map +1 -1
- package/dist/server/agent-chat-plugin.d.ts.map +1 -1
- package/dist/server/agent-chat-plugin.js +39 -0
- package/dist/server/agent-chat-plugin.js.map +1 -1
- package/dist/server/auth.d.ts +1 -1
- package/dist/server/auth.d.ts.map +1 -1
- package/dist/server/auth.js.map +1 -1
- package/dist/server/better-auth-instance.js +3 -3
- package/dist/server/better-auth-instance.js.map +1 -1
- package/dist/server/core-routes-plugin.d.ts.map +1 -1
- package/dist/server/core-routes-plugin.js +5 -0
- package/dist/server/core-routes-plugin.js.map +1 -1
- package/dist/server/csrf.d.ts.map +1 -1
- package/dist/server/csrf.js +9 -1
- package/dist/server/csrf.js.map +1 -1
- package/dist/server/design-token-utils.d.ts +8 -1
- package/dist/server/design-token-utils.d.ts.map +1 -1
- package/dist/server/design-token-utils.js +12 -4
- package/dist/server/design-token-utils.js.map +1 -1
- package/dist/templates/default/AGENTS.md +4 -4
- package/dist/templates/default/app/routes/database.tsx +13 -0
- package/dist/templates/workspace-core/.agents/skills/authentication/SKILL.md +9 -2
- package/dist/templates/workspace-core/.agents/skills/sharing/SKILL.md +7 -1
- package/dist/vite/client.d.ts.map +1 -1
- package/dist/vite/client.js +4 -0
- package/dist/vite/client.js.map +1 -1
- package/docs/content/a2a-protocol.md +2 -2
- package/docs/content/actions.md +2 -54
- package/docs/content/agent-mentions.md +1 -1
- package/docs/content/agent-teams.md +1 -1
- package/docs/content/authentication.md +2 -2
- package/docs/content/cli-adapters.md +33 -17
- package/docs/content/client.md +11 -20
- package/docs/content/code-agents-ui.md +19 -6
- package/docs/content/context-awareness.md +36 -20
- package/docs/content/database.md +3 -3
- package/docs/content/deployment.md +8 -8
- package/docs/content/dispatch.md +1 -1
- package/docs/content/external-agents.md +5 -1
- package/docs/content/faq.md +1 -0
- package/docs/content/frames.md +110 -30
- package/docs/content/getting-started.md +15 -14
- package/docs/content/mcp-clients.md +1 -1
- package/docs/content/mcp-protocol.md +11 -88
- package/docs/content/messaging.md +1 -1
- package/docs/content/migration-workbench.md +13 -87
- package/docs/content/multi-app-workspace.md +2 -38
- package/docs/content/multi-tenancy.md +3 -26
- package/docs/content/onboarding.md +10 -3
- package/docs/content/recurring-jobs.md +2 -2
- package/docs/content/security.md +33 -1
- package/docs/content/server.md +1 -1
- package/docs/content/template-assets.md +9 -9
- package/docs/content/template-brain.md +114 -388
- package/docs/content/template-clips.md +42 -2
- package/docs/content/template-content.md +1 -1
- package/docs/content/template-design.md +27 -0
- package/docs/content/template-dispatch.md +3 -3
- package/docs/content/template-forms.md +6 -6
- package/docs/content/template-starter.md +2 -2
- package/docs/content/using-your-agent.md +56 -0
- package/docs/content/workspace-management.md +6 -6
- package/docs/content/workspace.md +19 -0
- package/package.json +10 -3
- package/src/templates/default/AGENTS.md +4 -4
- package/src/templates/default/app/routes/database.tsx +13 -0
- package/src/templates/workspace-core/.agents/skills/authentication/SKILL.md +9 -2
- package/src/templates/workspace-core/.agents/skills/sharing/SKILL.md +7 -1
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Typed, SSR-safe localStorage helpers for the database admin UI.
|
|
3
|
+
*
|
|
4
|
+
* All keys live under the `agentnative.dbadmin.*` namespace. Per-table grid
|
|
5
|
+
* state (column widths, sort, filters, page size) is persisted so reopening a
|
|
6
|
+
* table restores the user's last view.
|
|
7
|
+
*/
|
|
8
|
+
import type { DbAdminFilter, DbAdminSort } from "../../db-admin/types.js";
|
|
9
|
+
/** Read and JSON-parse a namespaced key, returning `fallback` on any failure. */
|
|
10
|
+
export declare function getLS<T>(key: string, fallback: T): T;
|
|
11
|
+
/** JSON-serialize and write a namespaced key. No-op when storage is absent. */
|
|
12
|
+
export declare function setLS<T>(key: string, value: T): void;
|
|
13
|
+
/** Remove a namespaced key. */
|
|
14
|
+
export declare function removeLS(key: string): void;
|
|
15
|
+
export interface GridState {
|
|
16
|
+
/** Column name → pixel width. */
|
|
17
|
+
columnWidths?: Record<string, number>;
|
|
18
|
+
sort?: DbAdminSort[];
|
|
19
|
+
filters?: DbAdminFilter[];
|
|
20
|
+
pageSize?: number;
|
|
21
|
+
}
|
|
22
|
+
export declare function loadGridState(table: string): GridState;
|
|
23
|
+
export declare function saveGridState(table: string, state: GridState): void;
|
|
24
|
+
//# sourceMappingURL=storage.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"storage.d.ts","sourceRoot":"","sources":["../../../src/client/db-admin/storage.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAQ1E,iFAAiF;AACjF,wBAAgB,KAAK,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,GAAG,CAAC,CASpD;AAED,+EAA+E;AAC/E,wBAAgB,KAAK,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,GAAG,IAAI,CAOpD;AAED,+BAA+B;AAC/B,wBAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAO1C;AAID,MAAM,WAAW,SAAS;IACxB,iCAAiC;IACjC,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACtC,IAAI,CAAC,EAAE,WAAW,EAAE,CAAC;IACrB,OAAO,CAAC,EAAE,aAAa,EAAE,CAAC;IAC1B,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAMD,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,CAEtD;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,GAAG,IAAI,CAEnE"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
const NS = "agentnative.dbadmin.";
|
|
2
|
+
function hasStorage() {
|
|
3
|
+
return typeof window !== "undefined" && !!window.localStorage;
|
|
4
|
+
}
|
|
5
|
+
/** Read and JSON-parse a namespaced key, returning `fallback` on any failure. */
|
|
6
|
+
export function getLS(key, fallback) {
|
|
7
|
+
if (!hasStorage())
|
|
8
|
+
return fallback;
|
|
9
|
+
try {
|
|
10
|
+
const raw = window.localStorage.getItem(`${NS}${key}`);
|
|
11
|
+
if (raw === null)
|
|
12
|
+
return fallback;
|
|
13
|
+
return JSON.parse(raw);
|
|
14
|
+
}
|
|
15
|
+
catch {
|
|
16
|
+
return fallback;
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
/** JSON-serialize and write a namespaced key. No-op when storage is absent. */
|
|
20
|
+
export function setLS(key, value) {
|
|
21
|
+
if (!hasStorage())
|
|
22
|
+
return;
|
|
23
|
+
try {
|
|
24
|
+
window.localStorage.setItem(`${NS}${key}`, JSON.stringify(value));
|
|
25
|
+
}
|
|
26
|
+
catch {
|
|
27
|
+
// Quota exceeded / disabled storage — silently ignore.
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
/** Remove a namespaced key. */
|
|
31
|
+
export function removeLS(key) {
|
|
32
|
+
if (!hasStorage())
|
|
33
|
+
return;
|
|
34
|
+
try {
|
|
35
|
+
window.localStorage.removeItem(`${NS}${key}`);
|
|
36
|
+
}
|
|
37
|
+
catch {
|
|
38
|
+
// ignore
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
function gridKey(table) {
|
|
42
|
+
return `grid.${table}`;
|
|
43
|
+
}
|
|
44
|
+
export function loadGridState(table) {
|
|
45
|
+
return getLS(gridKey(table), {});
|
|
46
|
+
}
|
|
47
|
+
export function saveGridState(table, state) {
|
|
48
|
+
setLS(gridKey(table), state);
|
|
49
|
+
}
|
|
50
|
+
//# sourceMappingURL=storage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"storage.js","sourceRoot":"","sources":["../../../src/client/db-admin/storage.ts"],"names":[],"mappings":"AASA,MAAM,EAAE,GAAG,sBAAsB,CAAC;AAElC,SAAS,UAAU;IACjB,OAAO,OAAO,MAAM,KAAK,WAAW,IAAI,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC;AAChE,CAAC;AAED,iFAAiF;AACjF,MAAM,UAAU,KAAK,CAAI,GAAW,EAAE,QAAW;IAC/C,IAAI,CAAC,UAAU,EAAE;QAAE,OAAO,QAAQ,CAAC;IACnC,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,GAAG,EAAE,CAAC,CAAC;QACvD,IAAI,GAAG,KAAK,IAAI;YAAE,OAAO,QAAQ,CAAC;QAClC,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAM,CAAC;IAC9B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,QAAQ,CAAC;IAClB,CAAC;AACH,CAAC;AAED,+EAA+E;AAC/E,MAAM,UAAU,KAAK,CAAI,GAAW,EAAE,KAAQ;IAC5C,IAAI,CAAC,UAAU,EAAE;QAAE,OAAO;IAC1B,IAAI,CAAC;QACH,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,GAAG,EAAE,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;IACpE,CAAC;IAAC,MAAM,CAAC;QACP,uDAAuD;IACzD,CAAC;AACH,CAAC;AAED,+BAA+B;AAC/B,MAAM,UAAU,QAAQ,CAAC,GAAW;IAClC,IAAI,CAAC,UAAU,EAAE;QAAE,OAAO;IAC1B,IAAI,CAAC;QACH,MAAM,CAAC,YAAY,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG,GAAG,EAAE,CAAC,CAAC;IAChD,CAAC;IAAC,MAAM,CAAC;QACP,SAAS;IACX,CAAC;AACH,CAAC;AAYD,SAAS,OAAO,CAAC,KAAa;IAC5B,OAAO,QAAQ,KAAK,EAAE,CAAC;AACzB,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,KAAa;IACzC,OAAO,KAAK,CAAY,OAAO,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC;AAC9C,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,KAAa,EAAE,KAAgB;IAC3D,KAAK,CAAY,OAAO,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,CAAC;AAC1C,CAAC","sourcesContent":["/**\n * Typed, SSR-safe localStorage helpers for the database admin UI.\n *\n * All keys live under the `agentnative.dbadmin.*` namespace. Per-table grid\n * state (column widths, sort, filters, page size) is persisted so reopening a\n * table restores the user's last view.\n */\nimport type { DbAdminFilter, DbAdminSort } from \"../../db-admin/types.js\";\n\nconst NS = \"agentnative.dbadmin.\";\n\nfunction hasStorage(): boolean {\n return typeof window !== \"undefined\" && !!window.localStorage;\n}\n\n/** Read and JSON-parse a namespaced key, returning `fallback` on any failure. */\nexport function getLS<T>(key: string, fallback: T): T {\n if (!hasStorage()) return fallback;\n try {\n const raw = window.localStorage.getItem(`${NS}${key}`);\n if (raw === null) return fallback;\n return JSON.parse(raw) as T;\n } catch {\n return fallback;\n }\n}\n\n/** JSON-serialize and write a namespaced key. No-op when storage is absent. */\nexport function setLS<T>(key: string, value: T): void {\n if (!hasStorage()) return;\n try {\n window.localStorage.setItem(`${NS}${key}`, JSON.stringify(value));\n } catch {\n // Quota exceeded / disabled storage — silently ignore.\n }\n}\n\n/** Remove a namespaced key. */\nexport function removeLS(key: string): void {\n if (!hasStorage()) return;\n try {\n window.localStorage.removeItem(`${NS}${key}`);\n } catch {\n // ignore\n }\n}\n\n// ─── Per-table grid state ──────────────────────────────────────────────────\n\nexport interface GridState {\n /** Column name → pixel width. */\n columnWidths?: Record<string, number>;\n sort?: DbAdminSort[];\n filters?: DbAdminFilter[];\n pageSize?: number;\n}\n\nfunction gridKey(table: string): string {\n return `grid.${table}`;\n}\n\nexport function loadGridState(table: string): GridState {\n return getLS<GridState>(gridKey(table), {});\n}\n\nexport function saveGridState(table: string, state: GridState): void {\n setLS<GridState>(gridKey(table), state);\n}\n"]}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
export interface DbAdminNavigationState {
|
|
2
|
+
view: "database";
|
|
3
|
+
table: string | null;
|
|
4
|
+
mode: "table" | "sql";
|
|
5
|
+
}
|
|
6
|
+
export interface UseDbAdminAgentSyncArgs {
|
|
7
|
+
table: string | null;
|
|
8
|
+
mode: "table" | "sql";
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Write the current database-admin view to application state whenever the
|
|
12
|
+
* selected table or mode changes, so the agent always knows what the user is
|
|
13
|
+
* looking at.
|
|
14
|
+
*/
|
|
15
|
+
export declare function useDbAdminAgentSync({ table, mode, }: UseDbAdminAgentSyncArgs): void;
|
|
16
|
+
/**
|
|
17
|
+
* Poll the one-shot `navigate` app-state key. When the agent requests a jump to
|
|
18
|
+
* a database table, invoke `onNavigate(table)` then clear the key so it does
|
|
19
|
+
* not replay on the next poll.
|
|
20
|
+
*/
|
|
21
|
+
export declare function useNavigateConsumer(onNavigate: (table: string) => void): void;
|
|
22
|
+
//# sourceMappingURL=useAgentSync.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useAgentSync.d.ts","sourceRoot":"","sources":["../../../src/client/db-admin/useAgentSync.ts"],"names":[],"mappings":"AAwDA,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,UAAU,CAAC;IACjB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,IAAI,EAAE,OAAO,GAAG,KAAK,CAAC;CACvB;AAED,MAAM,WAAW,uBAAuB;IACtC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,IAAI,EAAE,OAAO,GAAG,KAAK,CAAC;CACvB;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,EAClC,KAAK,EACL,IAAI,GACL,EAAE,uBAAuB,GAAG,IAAI,CAWhC;AAOD;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,UAAU,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,GAAG,IAAI,CA+C7E"}
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Two-way navigation sync between the database admin UI and the agent.
|
|
3
|
+
*
|
|
4
|
+
* (a) `useDbAdminAgentSync` writes the current view into application state
|
|
5
|
+
* under the `navigation` key, so the agent's `<current-screen>` context
|
|
6
|
+
* knows which table/mode is open. Mirrors the template
|
|
7
|
+
* `use-navigation-state` write mechanism (PUT to the app-state route with a
|
|
8
|
+
* request-source header), but talks to the route directly since core has no
|
|
9
|
+
* template `TAB_ID`.
|
|
10
|
+
*
|
|
11
|
+
* (b) `useNavigateConsumer` short-polls the one-shot `navigate` app-state key.
|
|
12
|
+
* When the agent sets `{ view: "database", table }`, the consumer invokes
|
|
13
|
+
* `onNavigate(table)` then DELETEs the key so it fires exactly once.
|
|
14
|
+
*/
|
|
15
|
+
import { useEffect, useRef } from "react";
|
|
16
|
+
import { agentNativePath } from "../api-path.js";
|
|
17
|
+
const NAVIGATION_PATH = agentNativePath("/_agent-native/application-state/navigation");
|
|
18
|
+
const NAVIGATE_PATH = agentNativePath("/_agent-native/application-state/navigate");
|
|
19
|
+
const POLL_INTERVAL_MS = 1500;
|
|
20
|
+
let cachedSource = null;
|
|
21
|
+
function requestSource() {
|
|
22
|
+
if (typeof window === "undefined")
|
|
23
|
+
return undefined;
|
|
24
|
+
if (cachedSource)
|
|
25
|
+
return cachedSource;
|
|
26
|
+
try {
|
|
27
|
+
const existing = window.sessionStorage.getItem("agentnative.tabId");
|
|
28
|
+
if (existing) {
|
|
29
|
+
cachedSource = existing;
|
|
30
|
+
return existing;
|
|
31
|
+
}
|
|
32
|
+
const generated = typeof crypto !== "undefined" && "randomUUID" in crypto
|
|
33
|
+
? crypto.randomUUID()
|
|
34
|
+
: `tab-${Math.random().toString(36).slice(2)}`;
|
|
35
|
+
window.sessionStorage.setItem("agentnative.tabId", generated);
|
|
36
|
+
cachedSource = generated;
|
|
37
|
+
return generated;
|
|
38
|
+
}
|
|
39
|
+
catch {
|
|
40
|
+
return undefined;
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
function headers(extra) {
|
|
44
|
+
const h = { ...extra };
|
|
45
|
+
const source = requestSource();
|
|
46
|
+
if (source)
|
|
47
|
+
h["X-Request-Source"] = source;
|
|
48
|
+
return h;
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Write the current database-admin view to application state whenever the
|
|
52
|
+
* selected table or mode changes, so the agent always knows what the user is
|
|
53
|
+
* looking at.
|
|
54
|
+
*/
|
|
55
|
+
export function useDbAdminAgentSync({ table, mode, }) {
|
|
56
|
+
useEffect(() => {
|
|
57
|
+
const state = { view: "database", table, mode };
|
|
58
|
+
fetch(NAVIGATION_PATH, {
|
|
59
|
+
method: "PUT",
|
|
60
|
+
keepalive: true,
|
|
61
|
+
credentials: "include",
|
|
62
|
+
headers: headers({ "Content-Type": "application/json" }),
|
|
63
|
+
body: JSON.stringify(state),
|
|
64
|
+
}).catch(() => { });
|
|
65
|
+
}, [table, mode]);
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Poll the one-shot `navigate` app-state key. When the agent requests a jump to
|
|
69
|
+
* a database table, invoke `onNavigate(table)` then clear the key so it does
|
|
70
|
+
* not replay on the next poll.
|
|
71
|
+
*/
|
|
72
|
+
export function useNavigateConsumer(onNavigate) {
|
|
73
|
+
const handlerRef = useRef(onNavigate);
|
|
74
|
+
handlerRef.current = onNavigate;
|
|
75
|
+
useEffect(() => {
|
|
76
|
+
let active = true;
|
|
77
|
+
let timer;
|
|
78
|
+
const tick = async () => {
|
|
79
|
+
if (!active)
|
|
80
|
+
return;
|
|
81
|
+
try {
|
|
82
|
+
const res = await fetch(NAVIGATE_PATH, {
|
|
83
|
+
method: "GET",
|
|
84
|
+
credentials: "include",
|
|
85
|
+
headers: headers(),
|
|
86
|
+
});
|
|
87
|
+
if (active && res.ok) {
|
|
88
|
+
const data = (await res.json());
|
|
89
|
+
if (data &&
|
|
90
|
+
data.view === "database" &&
|
|
91
|
+
typeof data.table === "string" &&
|
|
92
|
+
data.table) {
|
|
93
|
+
const target = data.table;
|
|
94
|
+
// Clear the one-shot command before acting so it fires once.
|
|
95
|
+
fetch(NAVIGATE_PATH, {
|
|
96
|
+
method: "DELETE",
|
|
97
|
+
credentials: "include",
|
|
98
|
+
headers: headers({ "X-Agent-Native-CSRF": "1" }),
|
|
99
|
+
}).catch(() => { });
|
|
100
|
+
handlerRef.current(target);
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
catch {
|
|
105
|
+
// Ignore transient errors; the next tick retries.
|
|
106
|
+
}
|
|
107
|
+
finally {
|
|
108
|
+
if (active)
|
|
109
|
+
timer = setTimeout(tick, POLL_INTERVAL_MS);
|
|
110
|
+
}
|
|
111
|
+
};
|
|
112
|
+
timer = setTimeout(tick, POLL_INTERVAL_MS);
|
|
113
|
+
return () => {
|
|
114
|
+
active = false;
|
|
115
|
+
if (timer)
|
|
116
|
+
clearTimeout(timer);
|
|
117
|
+
};
|
|
118
|
+
}, []);
|
|
119
|
+
}
|
|
120
|
+
//# sourceMappingURL=useAgentSync.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useAgentSync.js","sourceRoot":"","sources":["../../../src/client/db-admin/useAgentSync.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Two-way navigation sync between the database admin UI and the agent.\n *\n * (a) `useDbAdminAgentSync` writes the current view into application state\n * under the `navigation` key, so the agent's `<current-screen>` context\n * knows which table/mode is open. Mirrors the template\n * `use-navigation-state` write mechanism (PUT to the app-state route with a\n * request-source header), but talks to the route directly since core has no\n * template `TAB_ID`.\n *\n * (b) `useNavigateConsumer` short-polls the one-shot `navigate` app-state key.\n * When the agent sets `{ view: \"database\", table }`, the consumer invokes\n * `onNavigate(table)` then DELETEs the key so it fires exactly once.\n */\nimport { useEffect, useRef } from \"react\";\nimport { agentNativePath } from \"../api-path.js\";\n\nconst NAVIGATION_PATH = agentNativePath(\n \"/_agent-native/application-state/navigation\",\n);\nconst NAVIGATE_PATH = agentNativePath(\n \"/_agent-native/application-state/navigate\",\n);\n\nconst POLL_INTERVAL_MS = 1500;\n\nlet cachedSource: string | null = null;\n\nfunction requestSource(): string | undefined {\n if (typeof window === \"undefined\") return undefined;\n if (cachedSource) return cachedSource;\n try {\n const existing = window.sessionStorage.getItem(\"agentnative.tabId\");\n if (existing) {\n cachedSource = existing;\n return existing;\n }\n const generated =\n typeof crypto !== \"undefined\" && \"randomUUID\" in crypto\n ? crypto.randomUUID()\n : `tab-${Math.random().toString(36).slice(2)}`;\n window.sessionStorage.setItem(\"agentnative.tabId\", generated);\n cachedSource = generated;\n return generated;\n } catch {\n return undefined;\n }\n}\n\nfunction headers(extra?: Record<string, string>): Record<string, string> {\n const h: Record<string, string> = { ...extra };\n const source = requestSource();\n if (source) h[\"X-Request-Source\"] = source;\n return h;\n}\n\nexport interface DbAdminNavigationState {\n view: \"database\";\n table: string | null;\n mode: \"table\" | \"sql\";\n}\n\nexport interface UseDbAdminAgentSyncArgs {\n table: string | null;\n mode: \"table\" | \"sql\";\n}\n\n/**\n * Write the current database-admin view to application state whenever the\n * selected table or mode changes, so the agent always knows what the user is\n * looking at.\n */\nexport function useDbAdminAgentSync({\n table,\n mode,\n}: UseDbAdminAgentSyncArgs): void {\n useEffect(() => {\n const state: DbAdminNavigationState = { view: \"database\", table, mode };\n fetch(NAVIGATION_PATH, {\n method: \"PUT\",\n keepalive: true,\n credentials: \"include\",\n headers: headers({ \"Content-Type\": \"application/json\" }),\n body: JSON.stringify(state),\n }).catch(() => {});\n }, [table, mode]);\n}\n\ninterface NavigateCommand {\n view?: string;\n table?: string | null;\n}\n\n/**\n * Poll the one-shot `navigate` app-state key. When the agent requests a jump to\n * a database table, invoke `onNavigate(table)` then clear the key so it does\n * not replay on the next poll.\n */\nexport function useNavigateConsumer(onNavigate: (table: string) => void): void {\n const handlerRef = useRef(onNavigate);\n handlerRef.current = onNavigate;\n\n useEffect(() => {\n let active = true;\n let timer: ReturnType<typeof setTimeout> | undefined;\n\n const tick = async () => {\n if (!active) return;\n try {\n const res = await fetch(NAVIGATE_PATH, {\n method: \"GET\",\n credentials: \"include\",\n headers: headers(),\n });\n if (active && res.ok) {\n const data = (await res.json()) as NavigateCommand | null;\n if (\n data &&\n data.view === \"database\" &&\n typeof data.table === \"string\" &&\n data.table\n ) {\n const target = data.table;\n // Clear the one-shot command before acting so it fires once.\n fetch(NAVIGATE_PATH, {\n method: \"DELETE\",\n credentials: \"include\",\n headers: headers({ \"X-Agent-Native-CSRF\": \"1\" }),\n }).catch(() => {});\n handlerRef.current(target);\n }\n }\n } catch {\n // Ignore transient errors; the next tick retries.\n } finally {\n if (active) timer = setTimeout(tick, POLL_INTERVAL_MS);\n }\n };\n\n timer = setTimeout(tick, POLL_INTERVAL_MS);\n return () => {\n active = false;\n if (timer) clearTimeout(timer);\n };\n }, []);\n}\n"]}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { DbAdminDialect, DbAdminTableSummary, DbAdminTableSchema, DbAdminRowsRequest, DbAdminRowsResult, DbAdminMutation, DbAdminMutationResult, DbAdminQueryResult } from "../../db-admin/types.js";
|
|
2
|
+
export declare const dbAdminBasePath: string;
|
|
3
|
+
export declare function dbAdminGet<T>(subpath: string): Promise<T>;
|
|
4
|
+
export declare function dbAdminPost<T>(subpath: string, body: unknown): Promise<T>;
|
|
5
|
+
export interface DbAdminQueryState<T> {
|
|
6
|
+
data: T | undefined;
|
|
7
|
+
isLoading: boolean;
|
|
8
|
+
error: Error | null;
|
|
9
|
+
refetch: () => void;
|
|
10
|
+
}
|
|
11
|
+
export interface DbAdminOverview {
|
|
12
|
+
dialect: DbAdminDialect;
|
|
13
|
+
tables: DbAdminTableSummary[];
|
|
14
|
+
}
|
|
15
|
+
export declare function useOverview(): DbAdminQueryState<DbAdminOverview>;
|
|
16
|
+
export declare function useTableSchema(table: string | null): DbAdminQueryState<DbAdminTableSchema>;
|
|
17
|
+
export declare function useTableRows(table: string | null, req: DbAdminRowsRequest): DbAdminQueryState<DbAdminRowsResult>;
|
|
18
|
+
export declare function mutateTable(table: string, mutation: DbAdminMutation): Promise<DbAdminMutationResult>;
|
|
19
|
+
export declare function runQuery(sql: string, params?: unknown[], confirmDestructive?: boolean): Promise<DbAdminQueryResult>;
|
|
20
|
+
//# sourceMappingURL=useDbAdmin.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useDbAdmin.d.ts","sourceRoot":"","sources":["../../../src/client/db-admin/useDbAdmin.ts"],"names":[],"mappings":"AAoBA,OAAO,KAAK,EACV,cAAc,EACd,mBAAmB,EACnB,kBAAkB,EAClB,kBAAkB,EAClB,iBAAiB,EACjB,eAAe,EACf,qBAAqB,EACrB,kBAAkB,EACnB,MAAM,yBAAyB,CAAC;AAIjC,eAAO,MAAM,eAAe,QAA6C,CAAC;AAwE1E,wBAAsB,UAAU,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAO/D;AAED,wBAAsB,WAAW,CAAC,CAAC,EACjC,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,OAAO,GACZ,OAAO,CAAC,CAAC,CAAC,CAQZ;AAID,MAAM,WAAW,iBAAiB,CAAC,CAAC;IAClC,IAAI,EAAE,CAAC,GAAG,SAAS,CAAC;IACpB,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IACpB,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB;AAeD,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,cAAc,CAAC;IACxB,MAAM,EAAE,mBAAmB,EAAE,CAAC;CAC/B;AAQD,wBAAgB,WAAW,IAAI,iBAAiB,CAAC,eAAe,CAAC,CAYhE;AASD,wBAAgB,cAAc,CAC5B,KAAK,EAAE,MAAM,GAAG,IAAI,GACnB,iBAAiB,CAAC,kBAAkB,CAAC,CAevC;AAID,wBAAgB,YAAY,CAC1B,KAAK,EAAE,MAAM,GAAG,IAAI,EACpB,GAAG,EAAE,kBAAkB,GACtB,iBAAiB,CAAC,iBAAiB,CAAC,CActC;AAID,wBAAsB,WAAW,CAC/B,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,eAAe,GACxB,OAAO,CAAC,qBAAqB,CAAC,CAKhC;AAED,wBAAsB,QAAQ,CAC5B,GAAG,EAAE,MAAM,EACX,MAAM,CAAC,EAAE,OAAO,EAAE,EAClB,kBAAkB,CAAC,EAAE,OAAO,GAC3B,OAAO,CAAC,kBAAkB,CAAC,CAM7B"}
|
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared data layer for the dev-mode database admin UI.
|
|
3
|
+
*
|
|
4
|
+
* Both sibling surfaces — TableEditor (`TableEditor.tsx`) and SqlEditor
|
|
5
|
+
* (`SqlEditor.tsx`) — import their data access from this module so the request
|
|
6
|
+
* shapes, error handling, and agent-write auto-refetch behavior stay
|
|
7
|
+
* consistent.
|
|
8
|
+
*
|
|
9
|
+
* Every read hook folds the `["db-admin", "action"]` change counters into its
|
|
10
|
+
* React Query key, so when the agent writes to the database (via an action that
|
|
11
|
+
* emits a change event) the open table or query result refetches immediately —
|
|
12
|
+
* the same "agent writes show up instantly" primitive templates use.
|
|
13
|
+
*/
|
|
14
|
+
import { useQuery, keepPreviousData, } from "@tanstack/react-query";
|
|
15
|
+
import { agentNativePath } from "../api-path.js";
|
|
16
|
+
import { useChangeVersions } from "../use-change-version.js";
|
|
17
|
+
// ─── Base path ───────────────────────────────────────────────────────────
|
|
18
|
+
export const dbAdminBasePath = agentNativePath("/_agent-native/db-admin");
|
|
19
|
+
// ─── Tab id (request source) ───────────────────────────────────────────────
|
|
20
|
+
let cachedTabId = null;
|
|
21
|
+
/**
|
|
22
|
+
* Best-effort stable per-tab identifier sent as `x-request-source` so the
|
|
23
|
+
* backend can attribute changes to this tab (and skip echoing them back to the
|
|
24
|
+
* originator). Mirrors the template `TAB_ID` convention without depending on a
|
|
25
|
+
* template-only module.
|
|
26
|
+
*/
|
|
27
|
+
function getRequestSource() {
|
|
28
|
+
if (typeof window === "undefined")
|
|
29
|
+
return undefined;
|
|
30
|
+
if (cachedTabId)
|
|
31
|
+
return cachedTabId;
|
|
32
|
+
try {
|
|
33
|
+
const existing = window.sessionStorage.getItem("agentnative.tabId");
|
|
34
|
+
if (existing) {
|
|
35
|
+
cachedTabId = existing;
|
|
36
|
+
return existing;
|
|
37
|
+
}
|
|
38
|
+
const generated = typeof crypto !== "undefined" && "randomUUID" in crypto
|
|
39
|
+
? crypto.randomUUID()
|
|
40
|
+
: `tab-${Math.random().toString(36).slice(2)}`;
|
|
41
|
+
window.sessionStorage.setItem("agentnative.tabId", generated);
|
|
42
|
+
cachedTabId = generated;
|
|
43
|
+
return generated;
|
|
44
|
+
}
|
|
45
|
+
catch {
|
|
46
|
+
return undefined;
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
function baseHeaders(extra) {
|
|
50
|
+
const headers = { ...extra };
|
|
51
|
+
const source = getRequestSource();
|
|
52
|
+
if (source)
|
|
53
|
+
headers["x-request-source"] = source;
|
|
54
|
+
return headers;
|
|
55
|
+
}
|
|
56
|
+
async function parseEnvelope(res) {
|
|
57
|
+
let json = null;
|
|
58
|
+
try {
|
|
59
|
+
json = (await res.json());
|
|
60
|
+
}
|
|
61
|
+
catch {
|
|
62
|
+
json = null;
|
|
63
|
+
}
|
|
64
|
+
if (!res.ok || (json && json.ok === false)) {
|
|
65
|
+
const message = (json && json.error) || `Request failed (HTTP ${res.status})`;
|
|
66
|
+
const err = new Error(message);
|
|
67
|
+
if (json && json.needsConfirm) {
|
|
68
|
+
err.needsConfirm = true;
|
|
69
|
+
}
|
|
70
|
+
throw err;
|
|
71
|
+
}
|
|
72
|
+
if (!json) {
|
|
73
|
+
throw new Error(`Empty response (HTTP ${res.status})`);
|
|
74
|
+
}
|
|
75
|
+
return json;
|
|
76
|
+
}
|
|
77
|
+
export async function dbAdminGet(subpath) {
|
|
78
|
+
const res = await fetch(`${dbAdminBasePath}${subpath}`, {
|
|
79
|
+
method: "GET",
|
|
80
|
+
credentials: "include",
|
|
81
|
+
headers: baseHeaders(),
|
|
82
|
+
});
|
|
83
|
+
return parseEnvelope(res);
|
|
84
|
+
}
|
|
85
|
+
export async function dbAdminPost(subpath, body) {
|
|
86
|
+
const res = await fetch(`${dbAdminBasePath}${subpath}`, {
|
|
87
|
+
method: "POST",
|
|
88
|
+
credentials: "include",
|
|
89
|
+
headers: baseHeaders({ "Content-Type": "application/json" }),
|
|
90
|
+
body: JSON.stringify(body),
|
|
91
|
+
});
|
|
92
|
+
return parseEnvelope(res);
|
|
93
|
+
}
|
|
94
|
+
function toState(query) {
|
|
95
|
+
return {
|
|
96
|
+
data: query.data,
|
|
97
|
+
isLoading: query.isLoading,
|
|
98
|
+
error: query.error ?? null,
|
|
99
|
+
refetch: () => {
|
|
100
|
+
void query.refetch();
|
|
101
|
+
},
|
|
102
|
+
};
|
|
103
|
+
}
|
|
104
|
+
export function useOverview() {
|
|
105
|
+
const version = useChangeVersions(["db-admin", "action"]);
|
|
106
|
+
const query = useQuery({
|
|
107
|
+
queryKey: ["db-admin", "overview", version],
|
|
108
|
+
queryFn: async () => {
|
|
109
|
+
const res = await dbAdminGet("/overview");
|
|
110
|
+
return { dialect: res.dialect, tables: res.tables };
|
|
111
|
+
},
|
|
112
|
+
placeholderData: keepPreviousData,
|
|
113
|
+
staleTime: 2000,
|
|
114
|
+
});
|
|
115
|
+
return toState(query);
|
|
116
|
+
}
|
|
117
|
+
export function useTableSchema(table) {
|
|
118
|
+
const version = useChangeVersions(["db-admin", "action"]);
|
|
119
|
+
const query = useQuery({
|
|
120
|
+
queryKey: ["db-admin", "schema", table, version],
|
|
121
|
+
enabled: !!table,
|
|
122
|
+
queryFn: async () => {
|
|
123
|
+
const res = await dbAdminGet(`/table/${encodeURIComponent(table)}/schema`);
|
|
124
|
+
return res.table;
|
|
125
|
+
},
|
|
126
|
+
placeholderData: keepPreviousData,
|
|
127
|
+
staleTime: 2000,
|
|
128
|
+
});
|
|
129
|
+
return toState(query);
|
|
130
|
+
}
|
|
131
|
+
// ─── Table rows ────────────────────────────────────────────────────────────
|
|
132
|
+
export function useTableRows(table, req) {
|
|
133
|
+
const version = useChangeVersions(["db-admin", "action"]);
|
|
134
|
+
const query = useQuery({
|
|
135
|
+
queryKey: ["db-admin", "rows", table, req, version],
|
|
136
|
+
enabled: !!table,
|
|
137
|
+
queryFn: () => dbAdminPost(`/table/${encodeURIComponent(table)}/rows`, req),
|
|
138
|
+
placeholderData: keepPreviousData,
|
|
139
|
+
staleTime: 2000,
|
|
140
|
+
});
|
|
141
|
+
return toState(query);
|
|
142
|
+
}
|
|
143
|
+
// ─── Mutations ─────────────────────────────────────────────────────────────
|
|
144
|
+
export async function mutateTable(table, mutation) {
|
|
145
|
+
return dbAdminPost(`/table/${encodeURIComponent(table)}/mutate`, mutation);
|
|
146
|
+
}
|
|
147
|
+
export async function runQuery(sql, params, confirmDestructive) {
|
|
148
|
+
return dbAdminPost("/query", {
|
|
149
|
+
sql,
|
|
150
|
+
params,
|
|
151
|
+
confirmDestructive,
|
|
152
|
+
});
|
|
153
|
+
}
|
|
154
|
+
//# sourceMappingURL=useDbAdmin.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useDbAdmin.js","sourceRoot":"","sources":["../../../src/client/db-admin/useDbAdmin.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Shared data layer for the dev-mode database admin UI.\n *\n * Both sibling surfaces — TableEditor (`TableEditor.tsx`) and SqlEditor\n * (`SqlEditor.tsx`) — import their data access from this module so the request\n * shapes, error handling, and agent-write auto-refetch behavior stay\n * consistent.\n *\n * Every read hook folds the `[\"db-admin\", \"action\"]` change counters into its\n * React Query key, so when the agent writes to the database (via an action that\n * emits a change event) the open table or query result refetches immediately —\n * the same \"agent writes show up instantly\" primitive templates use.\n */\nimport {\n useQuery,\n keepPreviousData,\n type UseQueryResult,\n} from \"@tanstack/react-query\";\nimport { agentNativePath } from \"../api-path.js\";\nimport { useChangeVersions } from \"../use-change-version.js\";\nimport type {\n DbAdminDialect,\n DbAdminTableSummary,\n DbAdminTableSchema,\n DbAdminRowsRequest,\n DbAdminRowsResult,\n DbAdminMutation,\n DbAdminMutationResult,\n DbAdminQueryResult,\n} from \"../../db-admin/types.js\";\n\n// ─── Base path ───────────────────────────────────────────────────────────\n\nexport const dbAdminBasePath = agentNativePath(\"/_agent-native/db-admin\");\n\n// ─── Tab id (request source) ───────────────────────────────────────────────\n\nlet cachedTabId: string | null = null;\n\n/**\n * Best-effort stable per-tab identifier sent as `x-request-source` so the\n * backend can attribute changes to this tab (and skip echoing them back to the\n * originator). Mirrors the template `TAB_ID` convention without depending on a\n * template-only module.\n */\nfunction getRequestSource(): string | undefined {\n if (typeof window === \"undefined\") return undefined;\n if (cachedTabId) return cachedTabId;\n try {\n const existing = window.sessionStorage.getItem(\"agentnative.tabId\");\n if (existing) {\n cachedTabId = existing;\n return existing;\n }\n const generated =\n typeof crypto !== \"undefined\" && \"randomUUID\" in crypto\n ? crypto.randomUUID()\n : `tab-${Math.random().toString(36).slice(2)}`;\n window.sessionStorage.setItem(\"agentnative.tabId\", generated);\n cachedTabId = generated;\n return generated;\n } catch {\n return undefined;\n }\n}\n\n// ─── Low-level fetchers ────────────────────────────────────────────────────\n\ninterface ApiEnvelope {\n ok?: boolean;\n error?: string;\n needsConfirm?: boolean;\n}\n\nfunction baseHeaders(extra?: Record<string, string>): Record<string, string> {\n const headers: Record<string, string> = { ...extra };\n const source = getRequestSource();\n if (source) headers[\"x-request-source\"] = source;\n return headers;\n}\n\nasync function parseEnvelope<T>(res: Response): Promise<T> {\n let json: (T & ApiEnvelope) | null = null;\n try {\n json = (await res.json()) as T & ApiEnvelope;\n } catch {\n json = null;\n }\n\n if (!res.ok || (json && json.ok === false)) {\n const message =\n (json && json.error) || `Request failed (HTTP ${res.status})`;\n const err = new Error(message);\n if (json && json.needsConfirm) {\n (err as Error & { needsConfirm?: boolean }).needsConfirm = true;\n }\n throw err;\n }\n\n if (!json) {\n throw new Error(`Empty response (HTTP ${res.status})`);\n }\n return json;\n}\n\nexport async function dbAdminGet<T>(subpath: string): Promise<T> {\n const res = await fetch(`${dbAdminBasePath}${subpath}`, {\n method: \"GET\",\n credentials: \"include\",\n headers: baseHeaders(),\n });\n return parseEnvelope<T>(res);\n}\n\nexport async function dbAdminPost<T>(\n subpath: string,\n body: unknown,\n): Promise<T> {\n const res = await fetch(`${dbAdminBasePath}${subpath}`, {\n method: \"POST\",\n credentials: \"include\",\n headers: baseHeaders({ \"Content-Type\": \"application/json\" }),\n body: JSON.stringify(body),\n });\n return parseEnvelope<T>(res);\n}\n\n// ─── Shared hook result shape ──────────────────────────────────────────────\n\nexport interface DbAdminQueryState<T> {\n data: T | undefined;\n isLoading: boolean;\n error: Error | null;\n refetch: () => void;\n}\n\nfunction toState<T>(query: UseQueryResult<T, Error>): DbAdminQueryState<T> {\n return {\n data: query.data,\n isLoading: query.isLoading,\n error: query.error ?? null,\n refetch: () => {\n void query.refetch();\n },\n };\n}\n\n// ─── Overview ──────────────────────────────────────────────────────────────\n\nexport interface DbAdminOverview {\n dialect: DbAdminDialect;\n tables: DbAdminTableSummary[];\n}\n\ninterface OverviewResponse {\n ok: true;\n dialect: DbAdminDialect;\n tables: DbAdminTableSummary[];\n}\n\nexport function useOverview(): DbAdminQueryState<DbAdminOverview> {\n const version = useChangeVersions([\"db-admin\", \"action\"]);\n const query = useQuery<DbAdminOverview, Error>({\n queryKey: [\"db-admin\", \"overview\", version],\n queryFn: async () => {\n const res = await dbAdminGet<OverviewResponse>(\"/overview\");\n return { dialect: res.dialect, tables: res.tables };\n },\n placeholderData: keepPreviousData,\n staleTime: 2000,\n });\n return toState(query);\n}\n\n// ─── Table schema ──────────────────────────────────────────────────────────\n\ninterface SchemaResponse {\n ok: true;\n table: DbAdminTableSchema;\n}\n\nexport function useTableSchema(\n table: string | null,\n): DbAdminQueryState<DbAdminTableSchema> {\n const version = useChangeVersions([\"db-admin\", \"action\"]);\n const query = useQuery<DbAdminTableSchema, Error>({\n queryKey: [\"db-admin\", \"schema\", table, version],\n enabled: !!table,\n queryFn: async () => {\n const res = await dbAdminGet<SchemaResponse>(\n `/table/${encodeURIComponent(table!)}/schema`,\n );\n return res.table;\n },\n placeholderData: keepPreviousData,\n staleTime: 2000,\n });\n return toState(query);\n}\n\n// ─── Table rows ────────────────────────────────────────────────────────────\n\nexport function useTableRows(\n table: string | null,\n req: DbAdminRowsRequest,\n): DbAdminQueryState<DbAdminRowsResult> {\n const version = useChangeVersions([\"db-admin\", \"action\"]);\n const query = useQuery<DbAdminRowsResult, Error>({\n queryKey: [\"db-admin\", \"rows\", table, req, version],\n enabled: !!table,\n queryFn: () =>\n dbAdminPost<DbAdminRowsResult>(\n `/table/${encodeURIComponent(table!)}/rows`,\n req,\n ),\n placeholderData: keepPreviousData,\n staleTime: 2000,\n });\n return toState(query);\n}\n\n// ─── Mutations ─────────────────────────────────────────────────────────────\n\nexport async function mutateTable(\n table: string,\n mutation: DbAdminMutation,\n): Promise<DbAdminMutationResult> {\n return dbAdminPost<DbAdminMutationResult>(\n `/table/${encodeURIComponent(table)}/mutate`,\n mutation,\n );\n}\n\nexport async function runQuery(\n sql: string,\n params?: unknown[],\n confirmDestructive?: boolean,\n): Promise<DbAdminQueryResult> {\n return dbAdminPost<DbAdminQueryResult>(\"/query\", {\n sql,\n params,\n confirmDestructive,\n });\n}\n"]}
|
package/dist/client/index.d.ts
CHANGED
|
@@ -54,6 +54,7 @@ export { Turnstile, type TurnstileProps } from "./Turnstile.js";
|
|
|
54
54
|
export { OpenSourceBadge, PoweredByBadge, type OpenSourceBadgeProps, type PoweredByBadgeProps, } from "./PoweredByBadge.js";
|
|
55
55
|
export { StarfieldBackground, type StarfieldBackgroundProps, } from "./StarfieldBackground.js";
|
|
56
56
|
export { FeedbackButton, type FeedbackButtonProps } from "./FeedbackButton.js";
|
|
57
|
+
export { DevDatabaseLink, type DevDatabaseLinkProps, } from "./db-admin/DevDatabaseLink.js";
|
|
57
58
|
export { ErrorBoundary } from "./ErrorBoundary.js";
|
|
58
59
|
export { installRouteChunkRecovery } from "./route-chunk-recovery.js";
|
|
59
60
|
export { ClientOnly } from "./ClientOnly.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/client/index.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,eAAe,EACf,aAAa,EACb,KAAK,gBAAgB,GACtB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EACL,eAAe,EACf,UAAU,EACV,WAAW,EACX,OAAO,GACR,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,+BAA+B,EAC/B,iBAAiB,EACjB,iBAAiB,EACjB,0BAA0B,GAC3B,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,kCAAkC,EAClC,0BAA0B,EAC1B,KAAK,uBAAuB,EAC5B,KAAK,0BAA0B,EAC/B,KAAK,yBAAyB,EAC9B,KAAK,4BAA4B,EACjC,KAAK,iCAAiC,GACvC,MAAM,8BAA8B,CAAC;AACtC,OAAO,EACL,sCAAsC,EACtC,KAAK,6CAA6C,EAClD,KAAK,8BAA8B,GACpC,MAAM,iCAAiC,CAAC;AACzC,OAAO,EACL,gCAAgC,EAChC,yBAAyB,EACzB,oBAAoB,EACpB,8BAA8B,EAC9B,KAAK,qBAAqB,EAC1B,KAAK,6BAA6B,GACnC,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AACjE,OAAO,EACL,aAAa,EACb,KAAK,mBAAmB,EACxB,KAAK,gBAAgB,GACtB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,kBAAkB,EAClB,KAAK,uBAAuB,GAC7B,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EACL,iBAAiB,EACjB,4BAA4B,EAC5B,2CAA2C,EAC3C,uBAAuB,EACvB,KAAK,oCAAoC,EACzC,KAAK,wCAAwC,EAC7C,KAAK,mCAAmC,EACxC,KAAK,yBAAyB,EAC9B,KAAK,2BAA2B,EAChC,KAAK,wBAAwB,EAC7B,KAAK,4BAA4B,EACjC,KAAK,4BAA4B,EACjC,KAAK,uBAAuB,EAC5B,KAAK,2BAA2B,EAChC,KAAK,yBAAyB,EAC9B,KAAK,0BAA0B,GAChC,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EACL,uCAAuC,EACvC,oBAAoB,EACpB,kBAAkB,EAClB,wBAAwB,EACxB,qBAAqB,EACrB,wBAAwB,EACxB,oBAAoB,EACpB,KAAK,gCAAgC,EACrC,KAAK,iBAAiB,EACtB,KAAK,qBAAqB,EAC1B,KAAK,sBAAsB,EAC3B,KAAK,iBAAiB,EACtB,KAAK,yBAAyB,EAC9B,KAAK,6BAA6B,EAClC,KAAK,wBAAwB,GAC9B,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,kBAAkB,EAClB,KAAK,uBAAuB,GAC7B,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EACL,SAAS,EACT,cAAc,EACd,mBAAmB,GACpB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,gBAAgB,EAChB,iBAAiB,EACjB,gBAAgB,EAChB,iBAAiB,GAClB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EACL,4BAA4B,EAC5B,iBAAiB,EACjB,qBAAqB,EACrB,sCAAsC,EACtC,0BAA0B,EAC1B,KAAK,6BAA6B,EAClC,KAAK,6BAA6B,EAClC,KAAK,6BAA6B,GACnC,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,EAAE,EAAE,MAAM,YAAY,CAAC;AAChC,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAChE,OAAO,EAAE,UAAU,EAAE,KAAK,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAChE,OAAO,EACL,WAAW,EACX,cAAc,EACd,eAAe,EACf,cAAc,EACd,+BAA+B,EAC/B,iBAAiB,EACjB,gBAAgB,EAChB,SAAS,EACT,iBAAiB,EACjB,gBAAgB,EAChB,iBAAiB,EACjB,KAAK,QAAQ,GACd,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,sBAAsB,EACtB,gBAAgB,EAChB,iBAAiB,EACjB,KAAK,kBAAkB,GACxB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,WAAW,EACX,2BAA2B,EAC3B,KAAK,0BAA0B,EAC/B,KAAK,8BAA8B,EACnC,KAAK,gBAAgB,GACtB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,mBAAmB,EACnB,oCAAoC,EACpC,KAAK,wCAAwC,EAC7C,KAAK,kCAAkC,EACvC,KAAK,sCAAsC,EAC3C,KAAK,wBAAwB,EAC7B,KAAK,2CAA2C,GACjD,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACL,kBAAkB,EAClB,KAAK,iCAAiC,EACtC,KAAK,6BAA6B,GACnC,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,gBAAgB,EAChB,KAAK,qBAAqB,GAC3B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,yBAAyB,EACzB,wBAAwB,EACxB,KAAK,8BAA8B,EACnC,KAAK,kCAAkC,EACvC,KAAK,6BAA6B,EAClC,KAAK,oCAAoC,GAC1C,MAAM,2CAA2C,CAAC;AACnD,OAAO,EACL,oCAAoC,EACpC,6BAA6B,EAC7B,qCAAqC,EACrC,6CAA6C,EAC7C,+BAA+B,EAC/B,mCAAmC,EACnC,oCAAoC,EACpC,KAAK,8BAA8B,EACnC,KAAK,4BAA4B,EACjC,KAAK,+BAA+B,EACpC,KAAK,2BAA2B,EAChC,KAAK,kCAAkC,EACvC,KAAK,kCAAkC,EACvC,KAAK,8BAA8B,EACnC,KAAK,gCAAgC,EACrC,KAAK,oCAAoC,EACzC,KAAK,4CAA4C,GAClD,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EACL,gCAAgC,EAChC,+BAA+B,EAC/B,6BAA6B,EAC7B,2BAA2B,EAC3B,8BAA8B,EAC9B,qBAAqB,EACrB,4BAA4B,EAC5B,6BAA6B,EAC7B,6BAA6B,EAC7B,wBAAwB,EACxB,0BAA0B,EAC1B,KAAK,6BAA6B,EAClC,KAAK,8BAA8B,EACnC,KAAK,uBAAuB,EAC5B,KAAK,qCAAqC,EAC1C,KAAK,6BAA6B,EAClC,KAAK,8BAA8B,EACnC,KAAK,wBAAwB,EAC7B,KAAK,mBAAmB,EACxB,KAAK,0BAA0B,EAC/B,KAAK,qBAAqB,EAC1B,KAAK,0BAA0B,EAC/B,KAAK,4BAA4B,EACjC,KAAK,2BAA2B,EAChC,KAAK,6BAA6B,EAClC,KAAK,8BAA8B,EACnC,KAAK,6BAA6B,EAClC,KAAK,sBAAsB,EAC3B,KAAK,4BAA4B,EACjC,KAAK,mBAAmB,EACxB,KAAK,0BAA0B,EAC/B,KAAK,6BAA6B,EAClC,KAAK,8BAA8B,EACnC,KAAK,2BAA2B,EAChC,KAAK,+BAA+B,EACpC,KAAK,sBAAsB,EAC3B,KAAK,qBAAqB,EAC1B,KAAK,yBAAyB,EAC9B,KAAK,gCAAgC,EACrC,KAAK,6BAA6B,GACnC,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,4BAA4B,EAC5B,0BAA0B,EAC1B,KAAK,6BAA6B,EAClC,KAAK,uBAAuB,EAC5B,KAAK,6BAA6B,EAClC,KAAK,sBAAsB,EAC3B,KAAK,iCAAiC,EACtC,KAAK,iCAAiC,EACtC,KAAK,mCAAmC,GACzC,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,qCAAqC,EACrC,oCAAoC,EACpC,KAAK,+BAA+B,EACpC,KAAK,sCAAsC,GAC5C,MAAM,6BAA6B,CAAC;AACrC,YAAY,EACV,yBAAyB,EACzB,+BAA+B,EAC/B,+BAA+B,EAC/B,gCAAgC,EAChC,sCAAsC,EACtC,oCAAoC,EACpC,2CAA2C,EAC3C,sCAAsC,GACvC,MAAM,8BAA8B,CAAC;AACtC,OAAO,EACL,mBAAmB,EACnB,KAAK,wBAAwB,EAC7B,KAAK,iBAAiB,GACvB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACL,aAAa,EACb,gBAAgB,EAChB,KAAK,kBAAkB,EACvB,KAAK,mBAAmB,GACzB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,qBAAqB,EACrB,KAAK,0BAA0B,EAC/B,KAAK,gCAAgC,GACtC,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,cAAc,EAAE,KAAK,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC/E,OAAO,EACL,oBAAoB,EACpB,WAAW,EACX,KAAK,aAAa,EAClB,KAAK,2BAA2B,GACjC,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AACjE,OAAO,EACL,kBAAkB,EAClB,KAAK,uBAAuB,EAC5B,cAAc,EACd,mCAAmC,EACnC,kCAAkC,EAClC,+BAA+B,EAC/B,2BAA2B,EAC3B,2BAA2B,EAC3B,yBAAyB,EACzB,KAAK,mBAAmB,EACxB,KAAK,kBAAkB,EACvB,KAAK,2BAA2B,EAChC,KAAK,qBAAqB,EAC1B,KAAK,gCAAgC,EACrC,KAAK,0BAA0B,EAC/B,KAAK,YAAY,EACjB,KAAK,WAAW,GACjB,MAAM,qBAAqB,CAAC;AAC7B,YAAY,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AACzE,OAAO,EACL,kBAAkB,EAClB,qBAAqB,EACrB,uBAAuB,EACvB,2BAA2B,EAC3B,wBAAwB,EACxB,eAAe,EACf,mBAAmB,EACnB,qBAAqB,EACrB,sBAAsB,EACtB,KAAK,cAAc,EACnB,KAAK,qBAAqB,EAC1B,KAAK,uBAAuB,EAC5B,KAAK,oBAAoB,EACzB,KAAK,qBAAqB,EAC1B,KAAK,kBAAkB,EACvB,KAAK,4BAA4B,GAClC,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,cAAc,EACd,KAAK,eAAe,EACpB,KAAK,iBAAiB,EACtB,KAAK,cAAc,EACnB,KAAK,qBAAqB,GAC3B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,gBAAgB,EAChB,UAAU,EACV,YAAY,EACZ,iBAAiB,EACjB,cAAc,EACd,KAAK,oBAAoB,EACzB,KAAK,qBAAqB,EAC1B,KAAK,eAAe,EACpB,KAAK,iBAAiB,GACvB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,0BAA0B,EAC1B,KAAK,6BAA6B,EAClC,KAAK,qBAAqB,EAC1B,KAAK,uBAAuB,GAC7B,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,eAAe,EAAE,MAAM,uCAAuC,CAAC;AACxE,OAAO,EAAE,aAAa,EAAE,KAAK,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAC7E,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAClE,OAAO,EACL,uBAAuB,EACvB,qBAAqB,EACrB,KAAK,kBAAkB,EACvB,KAAK,yBAAyB,EAC9B,KAAK,8BAA8B,GACpC,MAAM,gCAAgC,CAAC;AAExC,OAAO,EACL,oBAAoB,EACpB,KAAK,yBAAyB,GAC/B,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACL,kBAAkB,EAClB,KAAK,sBAAsB,EAC3B,KAAK,yBAAyB,EAC9B,KAAK,wBAAwB,GAC9B,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,SAAS,EAAE,KAAK,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAChE,OAAO,EACL,eAAe,EACf,cAAc,EACd,KAAK,oBAAoB,EACzB,KAAK,mBAAmB,GACzB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,mBAAmB,EACnB,KAAK,wBAAwB,GAC9B,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,cAAc,EAAE,KAAK,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC/E,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,yBAAyB,EAAE,MAAM,2BAA2B,CAAC;AACtE,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EACL,kBAAkB,EAClB,eAAe,EACf,KAAK,eAAe,GACrB,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,kBAAkB,EAClB,eAAe,EACf,mBAAmB,EACnB,aAAa,EACb,iBAAiB,EACjB,KAAK,kBAAkB,GACxB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,gBAAgB,EAChB,KAAK,qBAAqB,GAC3B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,aAAa,EAAE,KAAK,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAC7E,OAAO,EACL,UAAU,EACV,kBAAkB,EAClB,iBAAiB,EACjB,aAAa,EACb,YAAY,EACZ,sBAAsB,EACtB,KAAK,oBAAoB,GAC1B,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,mBAAmB,EACnB,qBAAqB,EACrB,YAAY,EACZ,WAAW,EACX,KAAK,0BAA0B,EAC/B,KAAK,yBAAyB,EAC9B,KAAK,UAAU,GAChB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EACL,cAAc,EACd,YAAY,EACZ,cAAc,EACd,YAAY,EACZ,eAAe,EACf,WAAW,EACX,iBAAiB,EACjB,iBAAiB,EACjB,iBAAiB,EACjB,iBAAiB,EACjB,KAAK,QAAQ,EACb,KAAK,YAAY,EACjB,KAAK,QAAQ,EACb,KAAK,aAAa,EAClB,KAAK,iBAAiB,EACtB,KAAK,mBAAmB,GACzB,MAAM,sBAAsB,CAAC;AAC9B,YAAY,EACV,iBAAiB,EACjB,iBAAiB,EACjB,YAAY,EACZ,mBAAmB,EACnB,kBAAkB,GACnB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,WAAW,EACX,sBAAsB,EACtB,gBAAgB,EAChB,aAAa,EACb,KAAK,gBAAgB,EACrB,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,EACrB,KAAK,oBAAoB,GAC1B,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,UAAU,EACV,qBAAqB,EACrB,gBAAgB,EAChB,kBAAkB,EAClB,aAAa,EACb,kBAAkB,EAClB,YAAY,EACZ,yBAAyB,EACzB,YAAY,EACZ,0BAA0B,EAC1B,KAAK,eAAe,EACpB,KAAK,QAAQ,EACb,KAAK,SAAS,EACd,KAAK,gBAAgB,EACrB,KAAK,eAAe,EACpB,KAAK,eAAe,EACpB,KAAK,eAAe,EACpB,KAAK,cAAc,GACpB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,cAAc,EACd,iBAAiB,EACjB,KAAK,cAAc,GACpB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,YAAY,EAAE,KAAK,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC7E,OAAO,EACL,WAAW,EACX,WAAW,EACX,eAAe,EACf,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,EACrB,KAAK,oBAAoB,GAC1B,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,YAAY,EACZ,cAAc,EACd,2BAA2B,EAC3B,KAAK,oBAAoB,GAC1B,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAC/D,OAAO,EACL,YAAY,EACZ,YAAY,EACZ,qBAAqB,GACtB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,sBAAsB,EACtB,cAAc,GACf,MAAM,0BAA0B,CAAC;AAElC,OAAO,EACL,WAAW,EACX,KAAK,gBAAgB,GACtB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EACL,iBAAiB,EACjB,KAAK,sBAAsB,GAC5B,MAAM,mCAAmC,CAAC;AAE3C,OAAO,EACL,mBAAmB,EACnB,qBAAqB,EACrB,KAAK,0BAA0B,EAC/B,KAAK,yBAAyB,EAC9B,KAAK,4BAA4B,EACjC,KAAK,2BAA2B,GACjC,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/client/index.ts"],"names":[],"mappings":"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"}
|
package/dist/client/index.js
CHANGED
|
@@ -55,6 +55,7 @@ export { Turnstile } from "./Turnstile.js";
|
|
|
55
55
|
export { OpenSourceBadge, PoweredByBadge, } from "./PoweredByBadge.js";
|
|
56
56
|
export { StarfieldBackground, } from "./StarfieldBackground.js";
|
|
57
57
|
export { FeedbackButton } from "./FeedbackButton.js";
|
|
58
|
+
export { DevDatabaseLink, } from "./db-admin/DevDatabaseLink.js";
|
|
58
59
|
export { ErrorBoundary } from "./ErrorBoundary.js";
|
|
59
60
|
export { installRouteChunkRecovery } from "./route-chunk-recovery.js";
|
|
60
61
|
export { ClientOnly } from "./ClientOnly.js";
|