@tuongaz/seeflow 0.1.115 → 0.2.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (70) hide show
  1. package/dist/web/assets/{architectureDiagram-3BPJPVTR-DPSNT4Ld.js → architectureDiagram-3BPJPVTR-BP4T6mA1.js} +1 -1
  2. package/dist/web/assets/{blockDiagram-GPEHLZMM-BLOY8u_S.js → blockDiagram-GPEHLZMM-BtNtXeK-.js} +1 -1
  3. package/dist/web/assets/{c4Diagram-AAUBKEIU-CbCtsmL8.js → c4Diagram-AAUBKEIU-zllILeBc.js} +1 -1
  4. package/dist/web/assets/channel-BaDcWmt9.js +1 -0
  5. package/dist/web/assets/{chart-cc_BTAZc.js → chart-CTi57A5k.js} +1 -1
  6. package/dist/web/assets/{chunk-2J33WTMH-CLTlAzLO.js → chunk-2J33WTMH-DK91nAlB.js} +1 -1
  7. package/dist/web/assets/{chunk-4BX2VUAB-DOzixJ_C.js → chunk-4BX2VUAB-B1nZ2oYH.js} +1 -1
  8. package/dist/web/assets/{chunk-55IACEB6-DXCxqBPy.js → chunk-55IACEB6-BO1Yz65k.js} +1 -1
  9. package/dist/web/assets/{chunk-727SXJPM-Bu54HSh0.js → chunk-727SXJPM-Do2lVazW.js} +1 -1
  10. package/dist/web/assets/{chunk-AQP2D5EJ-BJeKkLj3.js → chunk-AQP2D5EJ-COAk4zWW.js} +1 -1
  11. package/dist/web/assets/{chunk-FMBD7UC4-DCsZrH7U.js → chunk-FMBD7UC4-DlagJm0t.js} +1 -1
  12. package/dist/web/assets/{chunk-ND2GUHAM-CZh-szVJ.js → chunk-ND2GUHAM-MSDepakT.js} +1 -1
  13. package/dist/web/assets/{chunk-QZHKN3VN-D6Rh2zez.js → chunk-QZHKN3VN-PNcsoYy5.js} +1 -1
  14. package/dist/web/assets/classDiagram-4FO5ZUOK-CgMT8ikA.js +1 -0
  15. package/dist/web/assets/classDiagram-v2-Q7XG4LA2-CgMT8ikA.js +1 -0
  16. package/dist/web/assets/{code-block-DptLogcr.js → code-block-BaLTXteb.js} +1 -1
  17. package/dist/web/assets/{cose-bilkent-S5V4N54A-D2qgFc2h.js → cose-bilkent-S5V4N54A-EsAyOjlw.js} +1 -1
  18. package/dist/web/assets/{dagre-BM42HDAG-qiFI29jP.js → dagre-BM42HDAG-BeczwG-p.js} +1 -1
  19. package/dist/web/assets/{diagram-2AECGRRQ-Bsg9_Vd2.js → diagram-2AECGRRQ-Cxt-hv3w.js} +1 -1
  20. package/dist/web/assets/{diagram-5GNKFQAL-BjqB0OrC.js → diagram-5GNKFQAL-DNd2ZjqR.js} +1 -1
  21. package/dist/web/assets/{diagram-KO2AKTUF-D6K76HMu.js → diagram-KO2AKTUF-fQnbV9uU.js} +1 -1
  22. package/dist/web/assets/{diagram-LMA3HP47-DqE19eSp.js → diagram-LMA3HP47-BRMAcCJt.js} +1 -1
  23. package/dist/web/assets/{diagram-OG6HWLK6-CksK6tca.js → diagram-OG6HWLK6-BwgD3tgr.js} +1 -1
  24. package/dist/web/assets/{erDiagram-TEJ5UH35-CAoVV0ZD.js → erDiagram-TEJ5UH35-D9zgPPEj.js} +1 -1
  25. package/dist/web/assets/{flowDiagram-I6XJVG4X-y8ikYQRC.js → flowDiagram-I6XJVG4X-DeK_DVft.js} +1 -1
  26. package/dist/web/assets/{ganttDiagram-6RSMTGT7-Dd5NIwTe.js → ganttDiagram-6RSMTGT7-D5ixoPcv.js} +1 -1
  27. package/dist/web/assets/{gitGraphDiagram-PVQCEYII-DBdL4Hbc.js → gitGraphDiagram-PVQCEYII-BLGiKLuK.js} +1 -1
  28. package/dist/web/assets/{iconify-BM9V6YC8.js → iconify-CfqTggJR.js} +1 -1
  29. package/dist/web/assets/{index-B0-42wxM.js → index-cPs_3Zlh.js} +393 -393
  30. package/dist/web/assets/{index.es-DBSLNquD.js → index.es-DIiHxuUF.js} +1 -1
  31. package/dist/web/assets/{infoDiagram-5YYISTIA-FeMwn_sl.js → infoDiagram-5YYISTIA-faCq5UMN.js} +1 -1
  32. package/dist/web/assets/{ishikawaDiagram-YF4QCWOH-sPsSKUJS.js → ishikawaDiagram-YF4QCWOH-B08q3xk1.js} +1 -1
  33. package/dist/web/assets/{journeyDiagram-JHISSGLW-7pY6zTCs.js → journeyDiagram-JHISSGLW-B3n-Ia_k.js} +1 -1
  34. package/dist/web/assets/{jspdf.es.min-CswmcIXO.js → jspdf.es.min-ByBlwSRB.js} +3 -3
  35. package/dist/web/assets/{kanban-definition-UN3LZRKU-doQuIKQj.js → kanban-definition-UN3LZRKU-BebFqVN1.js} +1 -1
  36. package/dist/web/assets/{linear-ata0BYQv.js → linear-COKMY-XV.js} +1 -1
  37. package/dist/web/assets/{markdown-32W9Sfos.js → markdown-DX0LZAiR.js} +1 -1
  38. package/dist/web/assets/{mermaid.core-BTSFRjqx.js → mermaid.core-Iw0pYMV7.js} +4 -4
  39. package/dist/web/assets/{mindmap-definition-RKZ34NQL-C-jOY5nO.js → mindmap-definition-RKZ34NQL-CudO6Clp.js} +1 -1
  40. package/dist/web/assets/{pieDiagram-4H26LBE5-mR7G0RQM.js → pieDiagram-4H26LBE5--7iM2b2h.js} +1 -1
  41. package/dist/web/assets/{quadrantDiagram-W4KKPZXB-DFUxJ-U6.js → quadrantDiagram-W4KKPZXB-DoEfRS67.js} +1 -1
  42. package/dist/web/assets/{requirementDiagram-4Y6WPE33-B2F_8-jz.js → requirementDiagram-4Y6WPE33-CQCw-vbx.js} +1 -1
  43. package/dist/web/assets/{sankeyDiagram-5OEKKPKP-pmFTmxfV.js → sankeyDiagram-5OEKKPKP-D14wCDvH.js} +1 -1
  44. package/dist/web/assets/{sequenceDiagram-3UESZ5HK-DVTr4etq.js → sequenceDiagram-3UESZ5HK-_l1PC8kz.js} +1 -1
  45. package/dist/web/assets/{stateDiagram-AJRCARHV-B3kGcK4s.js → stateDiagram-AJRCARHV-BASnBha4.js} +1 -1
  46. package/dist/web/assets/stateDiagram-v2-BHNVJYJU-B22a_tep.js +1 -0
  47. package/dist/web/assets/{time-Crf6gimZ.js → time-IFC44Ku-.js} +1 -1
  48. package/dist/web/assets/{timeline-definition-PNZ67QCA-DcwDdX5c.js → timeline-definition-PNZ67QCA-BMzri7cw.js} +1 -1
  49. package/dist/web/assets/{vennDiagram-CIIHVFJN-CxXiWkT0.js → vennDiagram-CIIHVFJN-DALKnV47.js} +1 -1
  50. package/dist/web/assets/{wardley-L42UT6IY-DsyOk5dp.js → wardley-L42UT6IY-DASxbKrT.js} +1 -1
  51. package/dist/web/assets/{wardleyDiagram-YWT4CUSO-C1k96fap.js → wardleyDiagram-YWT4CUSO-BAWZ9yXf.js} +1 -1
  52. package/dist/web/assets/{xychartDiagram-2RQKCTM6-BrhHRzGu.js → xychartDiagram-2RQKCTM6-BaKX6VQd.js} +1 -1
  53. package/dist/web/index.html +1 -1
  54. package/package.json +1 -1
  55. package/src/cli-auth.ts +70 -0
  56. package/src/cli-manifest.ts +25 -0
  57. package/src/cli.ts +72 -0
  58. package/src/cloud-login.ts +82 -0
  59. package/src/cloud-meta.ts +42 -0
  60. package/src/credentials.ts +84 -0
  61. package/src/events.ts +25 -16
  62. package/src/export-bundle.ts +78 -0
  63. package/src/paths.ts +12 -3
  64. package/src/publish.ts +55 -0
  65. package/src/server.ts +19 -0
  66. package/src/tenancy.ts +80 -0
  67. package/dist/web/assets/channel-D_zmRSCr.js +0 -1
  68. package/dist/web/assets/classDiagram-4FO5ZUOK-Bp9sU3Ow.js +0 -1
  69. package/dist/web/assets/classDiagram-v2-Q7XG4LA2-Bp9sU3Ow.js +0 -1
  70. package/dist/web/assets/stateDiagram-v2-BHNVJYJU-DQ4N2HXZ.js +0 -1
package/src/tenancy.ts ADDED
@@ -0,0 +1,80 @@
1
+ import { join } from 'node:path';
2
+ import type { Context } from 'hono';
3
+ import { type EventBus, createEventBus } from './events.ts';
4
+ import { seeflowHome } from './paths.ts';
5
+ import { type Registry, createRegistry, manifestOnlyEntryFilter } from './registry.ts';
6
+
7
+ /** The per-request tenant state downstream handlers consume. */
8
+ export interface TenantContext {
9
+ registry: Registry;
10
+ events: EventBus;
11
+ }
12
+
13
+ declare module 'hono' {
14
+ interface ContextVariableMap {
15
+ tenantId?: string;
16
+ tenant: TenantContext;
17
+ }
18
+ }
19
+
20
+ export interface TenantResolverOptions {
21
+ /** Used when a request resolves no tenant id (single-tenant local studio). */
22
+ defaultRegistry?: Registry;
23
+ defaultEvents?: EventBus;
24
+ }
25
+
26
+ export interface TenantResolver {
27
+ /** Build-or-fetch the cached registry/events for a tenant id. */
28
+ resolve(tenantId: string | undefined): TenantContext;
29
+ }
30
+
31
+ /**
32
+ * Factory keyed by tenant id. Each tenant gets its own registry (persisted
33
+ * under seeflowHome(tenantId)/registry.json) and its own event bus, built
34
+ * lazily and cached for the process lifetime. When tenantId is undefined the
35
+ * injected default singletons are used — the local studio's behavior.
36
+ *
37
+ * Provider-agnostic: knows nothing about how a tenant id is produced (auth,
38
+ * Clerk, etc.). The host supplies getTenantId(ctx); see createApp.
39
+ */
40
+ export function createTenantResolver(options: TenantResolverOptions = {}): TenantResolver {
41
+ const cache = new Map<string, TenantContext>();
42
+ const fallback: TenantContext | undefined =
43
+ options.defaultRegistry && options.defaultEvents
44
+ ? { registry: options.defaultRegistry, events: options.defaultEvents }
45
+ : undefined;
46
+
47
+ return {
48
+ resolve(tenantId) {
49
+ if (!tenantId || tenantId.length === 0) {
50
+ if (fallback) return fallback;
51
+ // No injected default and no tenant: build a process-wide singleton
52
+ // lazily so callers without injected state still get one.
53
+ let shared = cache.get('');
54
+ if (!shared) {
55
+ shared = {
56
+ registry: createRegistry({ isLoadableEntry: manifestOnlyEntryFilter }),
57
+ events: createEventBus(),
58
+ };
59
+ cache.set('', shared);
60
+ }
61
+ return shared;
62
+ }
63
+ let tc = cache.get(tenantId);
64
+ if (!tc) {
65
+ tc = {
66
+ registry: createRegistry({
67
+ path: join(seeflowHome(tenantId), 'registry.json'),
68
+ isLoadableEntry: manifestOnlyEntryFilter,
69
+ }),
70
+ events: createEventBus(),
71
+ };
72
+ cache.set(tenantId, tc);
73
+ }
74
+ return tc;
75
+ },
76
+ };
77
+ }
78
+
79
+ /** Default no-op tenant hook: single-tenant local studio. */
80
+ export const noTenant = (_ctx: Context): string | undefined => undefined;
@@ -1 +0,0 @@
1
- import{U as a,C as n}from"./mermaid.core-BTSFRjqx.js";const t=(r,o)=>a.lang.round(n.parse(r)[o]);export{t as c};
@@ -1 +0,0 @@
1
- import{s as a,a as s,c as e,C as t}from"./chunk-727SXJPM-Bu54HSh0.js";import{a as i}from"./mermaid.core-BTSFRjqx.js";import"./index-B0-42wxM.js";import"./chunk-FMBD7UC4-DCsZrH7U.js";import"./chunk-ND2GUHAM-CZh-szVJ.js";import"./chunk-55IACEB6-DXCxqBPy.js";import"./chunk-2J33WTMH-CLTlAzLO.js";import"./purify.es-CLGrRn1w.js";import"./step-CWvwoXpJ.js";var b={parser:e,get db(){return new t},renderer:s,styles:a,init:i(r=>{r.class||(r.class={}),r.class.arrowMarkerAbsolute=r.arrowMarkerAbsolute},"init")};export{b as diagram};
@@ -1 +0,0 @@
1
- import{s as a,a as s,c as e,C as t}from"./chunk-727SXJPM-Bu54HSh0.js";import{a as i}from"./mermaid.core-BTSFRjqx.js";import"./index-B0-42wxM.js";import"./chunk-FMBD7UC4-DCsZrH7U.js";import"./chunk-ND2GUHAM-CZh-szVJ.js";import"./chunk-55IACEB6-DXCxqBPy.js";import"./chunk-2J33WTMH-CLTlAzLO.js";import"./purify.es-CLGrRn1w.js";import"./step-CWvwoXpJ.js";var b={parser:e,get db(){return new t},renderer:s,styles:a,init:i(r=>{r.class||(r.class={}),r.class.arrowMarkerAbsolute=r.arrowMarkerAbsolute},"init")};export{b as diagram};
@@ -1 +0,0 @@
1
- import{b as r,a as e,s as a,S as s}from"./chunk-AQP2D5EJ-BJeKkLj3.js";import{a as i}from"./mermaid.core-BTSFRjqx.js";import"./index-B0-42wxM.js";import"./chunk-55IACEB6-DXCxqBPy.js";import"./chunk-2J33WTMH-CLTlAzLO.js";import"./purify.es-CLGrRn1w.js";import"./step-CWvwoXpJ.js";var n={parser:a,get db(){return new s(2)},renderer:e,styles:r,init:i(t=>{t.state||(t.state={}),t.state.arrowMarkerAbsolute=t.arrowMarkerAbsolute},"init")};export{n as diagram};