@fluid-app/fluid-cli-portal 0.1.80 → 0.1.82
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/{backend-dev-plugin-CbnPhBUY.mjs → backend-dev-plugin-C3gcb6LF.mjs} +2 -2
- package/dist/{backend-dev-plugin-CbnPhBUY.mjs.map → backend-dev-plugin-C3gcb6LF.mjs.map} +1 -1
- package/dist/index.d.mts +61 -1
- package/dist/index.d.mts.map +1 -1
- package/dist/index.mjs +9 -9
- package/dist/{portal-dev-plugin-8U7Q5jlH.mjs → portal-dev-plugin-C6TJcQmL.mjs} +2 -2
- package/dist/{portal-dev-plugin-8U7Q5jlH.mjs.map → portal-dev-plugin-C6TJcQmL.mjs.map} +1 -1
- package/dist/{portal-widget-dev-plugin-D8k8emMl.mjs → portal-widget-dev-plugin-BFyun5DF.mjs} +3 -3
- package/dist/{portal-widget-dev-plugin-D8k8emMl.mjs.map → portal-widget-dev-plugin-BFyun5DF.mjs.map} +1 -1
- package/dist/{pull-B1bXrPhS.mjs → pull-DhGfFqnU.mjs} +512 -39
- package/dist/{pull-B1bXrPhS.mjs.map → pull-DhGfFqnU.mjs.map} +1 -1
- package/dist/{src-D1cU2gmw.mjs → src-BuSYN4Co.mjs} +9 -1
- package/dist/{src-D1cU2gmw.mjs.map → src-BuSYN4Co.mjs.map} +1 -1
- package/dist/vite-plugin.mjs +4 -4
- package/package.json +7 -7
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { P as __exportAll } from "./pull-
|
|
1
|
+
import { P as __exportAll } from "./pull-DhGfFqnU.mjs";
|
|
2
2
|
//#region src/vite-plugin/backend-dev-plugin.ts
|
|
3
3
|
var backend_dev_plugin_exports = /* @__PURE__ */ __exportAll({ backendDevPlugin: () => backendDevPlugin });
|
|
4
4
|
/**
|
|
@@ -61,4 +61,4 @@ function serve(res, contentType, body) {
|
|
|
61
61
|
//#endregion
|
|
62
62
|
export { backend_dev_plugin_exports as n, backendDevPlugin as t };
|
|
63
63
|
|
|
64
|
-
//# sourceMappingURL=backend-dev-plugin-
|
|
64
|
+
//# sourceMappingURL=backend-dev-plugin-C3gcb6LF.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"backend-dev-plugin-
|
|
1
|
+
{"version":3,"file":"backend-dev-plugin-C3gcb6LF.mjs","names":[],"sources":["../src/vite-plugin/backend-dev-plugin.ts"],"sourcesContent":["import type { Plugin } from \"vite\";\n\nexport interface BackendDevPluginOptions {\n /** Entry module path relative to project root. @default \"/src/main.tsx\" */\n entry?: string;\n /** Production chunk filenames to stub as empty ES modules. */\n chunks?: string[];\n}\n\n/**\n * Serves dev-compatible responses at production asset paths so the Rails\n * backend can point `PORTAL_CDN_BASE` at `http://localhost:5173` and get\n * HMR + live source without any template changes.\n *\n * Handles:\n * - `/portal.js` → ESM shim that loads `@vite/client` + the real entry\n * - `/portal.css` → empty (Vite injects CSS via JS in dev)\n * - `/vendor.js`, `/query.js` → empty ES modules (no chunks in dev)\n */\nexport function backendDevPlugin(options?: BackendDevPluginOptions): Plugin {\n const entry = options?.entry ?? \"/src/main.tsx\";\n const chunks = options?.chunks ?? [\"vendor.js\", \"query.js\"];\n\n return {\n name: \"fluid-backend-dev\",\n apply: \"serve\",\n\n // Register BEFORE Vite's SPA fallback so these paths don't\n // get caught by the index.html catch-all.\n configureServer(server) {\n // Idempotency guard: the CLI injects this plugin and a vite.config may\n // also wire it — only register the middleware once.\n const flagged = server as unknown as { __fluidBackendDevWired?: boolean };\n if (flagged.__fluidBackendDevWired) return;\n flagged.__fluidBackendDevWired = true;\n\n server.middlewares.use((req, res, next) => {\n const raw = req.url ?? \"\";\n const qIndex = raw.indexOf(\"?\");\n const url = qIndex === -1 ? raw : raw.slice(0, qIndex);\n\n if (url === \"/portal.js\") {\n serve(\n res,\n \"application/javascript\",\n [\n `import RefreshRuntime from \"/@react-refresh\";`,\n `import \"/@vite/client\";`,\n `RefreshRuntime.injectIntoGlobalHook(window);`,\n `window.$RefreshReg$ = () => {};`,\n `window.$RefreshSig$ = () => (type) => type;`,\n `window.__vite_plugin_react_preamble_installed__ = true;`,\n `await import(\"${entry}\");`,\n ].join(\"\\n\"),\n );\n return;\n }\n\n if (url === \"/portal.css\") {\n serve(res, \"text/css\", \"/* dev: CSS injected via JS */\");\n return;\n }\n\n const chunkName = url.startsWith(\"/\") ? url.slice(1) : url;\n if (chunks.includes(chunkName)) {\n serve(res, \"application/javascript\", \"export {};\");\n return;\n }\n\n next();\n });\n },\n };\n}\n\nfunction serve(\n res: import(\"http\").ServerResponse,\n contentType: string,\n body: string,\n) {\n res.setHeader(\"Content-Type\", `${contentType}; charset=utf-8`);\n res.setHeader(\"Cache-Control\", \"no-store\");\n res.setHeader(\"Access-Control-Allow-Origin\", \"*\");\n res.statusCode = 200;\n res.end(body);\n}\n"],"mappings":";;;;;;;;;;;;;AAmBA,SAAgB,iBAAiB,SAA2C;CAC1E,MAAM,QAAQ,SAAS,SAAS;CAChC,MAAM,SAAS,SAAS,UAAU,CAAC,aAAa,WAAW;AAE3D,QAAO;EACL,MAAM;EACN,OAAO;EAIP,gBAAgB,QAAQ;GAGtB,MAAM,UAAU;AAChB,OAAI,QAAQ,uBAAwB;AACpC,WAAQ,yBAAyB;AAEjC,UAAO,YAAY,KAAK,KAAK,KAAK,SAAS;IACzC,MAAM,MAAM,IAAI,OAAO;IACvB,MAAM,SAAS,IAAI,QAAQ,IAAI;IAC/B,MAAM,MAAM,WAAW,KAAK,MAAM,IAAI,MAAM,GAAG,OAAO;AAEtD,QAAI,QAAQ,cAAc;AACxB,WACE,KACA,0BACA;MACE;MACA;MACA;MACA;MACA;MACA;MACA,iBAAiB,MAAM;MACxB,CAAC,KAAK,KAAK,CACb;AACD;;AAGF,QAAI,QAAQ,eAAe;AACzB,WAAM,KAAK,YAAY,iCAAiC;AACxD;;IAGF,MAAM,YAAY,IAAI,WAAW,IAAI,GAAG,IAAI,MAAM,EAAE,GAAG;AACvD,QAAI,OAAO,SAAS,UAAU,EAAE;AAC9B,WAAM,KAAK,0BAA0B,aAAa;AAClD;;AAGF,UAAM;KACN;;EAEL;;AAGH,SAAS,MACP,KACA,aACA,MACA;AACA,KAAI,UAAU,gBAAgB,GAAG,YAAY,iBAAiB;AAC9D,KAAI,UAAU,iBAAiB,WAAW;AAC1C,KAAI,UAAU,+BAA+B,IAAI;AACjD,KAAI,aAAa;AACjB,KAAI,IAAI,KAAK"}
|
package/dist/index.d.mts
CHANGED
|
@@ -1357,6 +1357,35 @@ interface AlertWidgetNode extends PortalWidgetNodeBase {
|
|
|
1357
1357
|
borderColor?: "background" | "foreground" | "primary" | "secondary" | "accent" | "muted" | "border" | "destructive" | "transparent";
|
|
1358
1358
|
};
|
|
1359
1359
|
}
|
|
1360
|
+
/** Portal node for the AnnouncementWidget built-in widget. */
|
|
1361
|
+
interface AnnouncementWidgetNode extends PortalWidgetNodeBase {
|
|
1362
|
+
/** Registered built-in widget type. */
|
|
1363
|
+
readonly type: "AnnouncementWidget";
|
|
1364
|
+
/** Properties accepted by this widget. */
|
|
1365
|
+
readonly props: {
|
|
1366
|
+
/** The announcement headline */title?: string; /** Font size for the title */
|
|
1367
|
+
titleFontSize?: "2xl" | "xl" | "lg" | "md" | "sm" | "xs"; /** The color of the title */
|
|
1368
|
+
titleColor?: "background" | "foreground" | "primary" | "secondary" | "accent" | "muted" | "border" | "destructive" | "transparent"; /** Optional supporting text */
|
|
1369
|
+
message?: string; /** The color of the message — kept readable on the background */
|
|
1370
|
+
messageColor?: "background" | "foreground" | "primary" | "secondary" | "accent" | "muted" | "border" | "destructive" | "transparent"; /** Optional call-to-action link label (leave blank to hide) */
|
|
1371
|
+
ctaText?: string; /** Where the call-to-action link goes */
|
|
1372
|
+
ctaHref?: string; /** Picks the leading icon that frames the message */
|
|
1373
|
+
tone?: "promo" | "info" | "success" | "warning" | "neutral"; /** Show the leading tone icon */
|
|
1374
|
+
showIcon?: boolean; /** Show the colored accent stripe (left-aligned only) */
|
|
1375
|
+
showAccentBar?: boolean; /** Icon, accent stripe and call-to-action color */
|
|
1376
|
+
accentColor?: "background" | "foreground" | "primary" | "secondary" | "accent" | "muted" | "border" | "destructive" | "transparent"; /** Text alignment */
|
|
1377
|
+
alignment?: "left" | "center" | "right"; /** Background for the announcement banner */
|
|
1378
|
+
background?: string | {
|
|
1379
|
+
type: "solid" | "image";
|
|
1380
|
+
color?: ColorOption;
|
|
1381
|
+
resource?: string | null | JsonObject;
|
|
1382
|
+
}; /** The padding of the banner */
|
|
1383
|
+
padding?: 0 | 2 | 4 | 6 | 8 | 10; /** The border radius of the banner */
|
|
1384
|
+
borderRadius?: "none" | "sm" | "md" | "lg" | "xl" | "full"; /** Width of the banner border */
|
|
1385
|
+
borderWidth?: "none" | "thin" | "medium" | "thick"; /** Color of the banner border */
|
|
1386
|
+
borderColor?: "background" | "foreground" | "primary" | "secondary" | "accent" | "muted" | "border" | "destructive" | "transparent";
|
|
1387
|
+
};
|
|
1388
|
+
}
|
|
1360
1389
|
/** Portal node for the BulletListWidget built-in widget. */
|
|
1361
1390
|
interface BulletListWidgetNode extends PortalWidgetNodeBase {
|
|
1362
1391
|
/** Registered built-in widget type. */
|
|
@@ -1775,6 +1804,37 @@ interface PointsWidgetNode extends PortalWidgetNodeBase {
|
|
|
1775
1804
|
borderColor?: "background" | "foreground" | "primary" | "secondary" | "accent" | "muted" | "border" | "destructive" | "transparent";
|
|
1776
1805
|
};
|
|
1777
1806
|
}
|
|
1807
|
+
/** Portal node for the QuoteWidget built-in widget. */
|
|
1808
|
+
interface QuoteWidgetNode extends PortalWidgetNodeBase {
|
|
1809
|
+
/** Registered built-in widget type. */
|
|
1810
|
+
readonly type: "QuoteWidget";
|
|
1811
|
+
/** Properties accepted by this widget. */
|
|
1812
|
+
readonly props: {
|
|
1813
|
+
/** One or many quotes. Add more to rotate between them. */quotes?: {
|
|
1814
|
+
quote: string;
|
|
1815
|
+
attribution?: string;
|
|
1816
|
+
role?: string;
|
|
1817
|
+
}[]; /** With multiple quotes: auto-scroll carousel, or one per day (quote of the day) */
|
|
1818
|
+
rotation?: "carousel" | "daily"; /** How long each quote shows before advancing */
|
|
1819
|
+
autoScrollInterval?: number; /** Show previous / next arrows */
|
|
1820
|
+
showArrows?: boolean; /** Show the position dots */
|
|
1821
|
+
showDots?: boolean; /** Font size for the quote */
|
|
1822
|
+
quoteFontSize?: "2xl" | "xl" | "lg" | "md" | "sm" | "xs"; /** The color of the quote text */
|
|
1823
|
+
quoteColor?: "background" | "foreground" | "primary" | "secondary" | "accent" | "muted" | "border" | "destructive" | "transparent"; /** The color of the name and role — keep it readable on the background */
|
|
1824
|
+
attributionColor?: "background" | "foreground" | "primary" | "secondary" | "accent" | "muted" | "border" | "destructive" | "transparent"; /** Quote mark, attribution rule, arrows and active dot */
|
|
1825
|
+
accentColor?: "background" | "foreground" | "primary" | "secondary" | "accent" | "muted" | "border" | "destructive" | "transparent"; /** Text alignment */
|
|
1826
|
+
alignment?: "left" | "center" | "right"; /** Background for the quote container */
|
|
1827
|
+
background?: string | {
|
|
1828
|
+
type: "solid" | "image";
|
|
1829
|
+
color?: ColorOption;
|
|
1830
|
+
resource?: string | null | JsonObject;
|
|
1831
|
+
}; /** The padding of the quote container */
|
|
1832
|
+
padding?: 0 | 2 | 4 | 6 | 8 | 10; /** The border radius of the quote container */
|
|
1833
|
+
borderRadius?: "none" | "sm" | "md" | "lg" | "xl" | "full"; /** Width of the container border */
|
|
1834
|
+
borderWidth?: "none" | "thin" | "medium" | "thick"; /** Color of the container border */
|
|
1835
|
+
borderColor?: "background" | "foreground" | "primary" | "secondary" | "accent" | "muted" | "border" | "destructive" | "transparent";
|
|
1836
|
+
};
|
|
1837
|
+
}
|
|
1778
1838
|
/** Portal node for the QuickLinksWidget built-in widget. */
|
|
1779
1839
|
interface QuickLinksWidgetNode extends PortalWidgetNodeBase {
|
|
1780
1840
|
/** Registered built-in widget type. */
|
|
@@ -2064,7 +2124,7 @@ interface VideoWidgetNode extends PortalWidgetNodeBase {
|
|
|
2064
2124
|
};
|
|
2065
2125
|
}
|
|
2066
2126
|
/** Any registered built-in portal widget node. */
|
|
2067
|
-
type PortalBuiltinWidgetNode = AlertWidgetNode | BulletListWidgetNode | CalendarWidgetNode | CardWidgetNode | CarouselWidgetNode | CatchUpWidgetNode | ChartWidgetNode | ContainerWidgetNode | EmbedWidgetNode | ImageWidgetNode | LayoutWidgetNode | LinkWidgetNode | ListWidgetNode | MySiteWidgetNode | NestedWidgetNode | PointsWidgetNode | QuickLinksWidgetNode | QuickShareWidgetNode | RecentActivityWidgetNode | SeparatorWidgetNode | ShopWidgetNode | SpacerWidgetNode | TableWidgetNode | TextWidgetNode | ToDoWidgetNode | VideoWidgetNode;
|
|
2127
|
+
type PortalBuiltinWidgetNode = AlertWidgetNode | AnnouncementWidgetNode | BulletListWidgetNode | CalendarWidgetNode | CardWidgetNode | CarouselWidgetNode | CatchUpWidgetNode | ChartWidgetNode | ContainerWidgetNode | EmbedWidgetNode | ImageWidgetNode | LayoutWidgetNode | LinkWidgetNode | ListWidgetNode | MySiteWidgetNode | NestedWidgetNode | PointsWidgetNode | QuoteWidgetNode | QuickLinksWidgetNode | QuickShareWidgetNode | RecentActivityWidgetNode | SeparatorWidgetNode | ShopWidgetNode | SpacerWidgetNode | TableWidgetNode | TextWidgetNode | ToDoWidgetNode | VideoWidgetNode;
|
|
2068
2128
|
/** Portal node supplied by a company or Droplet widget package. */
|
|
2069
2129
|
/** Exact consent grant for one third-party widget capability. */
|
|
2070
2130
|
interface PortalCapabilityGrant {
|
package/dist/index.d.mts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.mts","names":[],"sources":["../src/types.ts","../src/utils/package-manager.ts","../src/utils/file-system.ts","../src/utils/prompts.ts","../src/utils/scaffold-github.ts","../src/lib/git.ts","../src/api/git-credential.ts","../src/lib/git-sync.ts","../src/commands/clone.ts","../src/commands/create.ts","../src/commands/pull.ts","../../../api-clients/hey-api-fetch-runtime/src/generated/core/auth.gen.ts","../../../api-clients/hey-api-fetch-runtime/src/generated/core/pathSerializer.gen.ts","../../../api-clients/hey-api-fetch-runtime/src/generated/core/bodySerializer.gen.ts","../../../api-clients/hey-api-fetch-runtime/src/generated/core/types.gen.ts","../../../api-clients/hey-api-fetch-runtime/src/generated/core/serverSentEvents.gen.ts","../../../api-clients/hey-api-fetch-runtime/src/generated/client/utils.gen.ts","../../../api-clients/hey-api-fetch-runtime/src/generated/client/types.gen.ts","../../../api-clients/fluidos/src/hey-api-client.ts","../../../api-clients/fluidos/src/hey-api/types.gen.ts","../src/utils/mappings.ts","../src/utils/snapshot.ts","../src/utils/push-validation.ts","../src/commands/push.ts","../src/commands/widget-create.ts","../src/commands/widget-publish.ts","../src/commands/deploy.ts","../../widget-tooling/src/internal/widget-package-validation.ts","../../widget-tooling/src/internal/widget-package-builder.ts","../../widget-tooling/src/internal/widget-package-artifacts.ts","../../widget-tooling/src/internal/widget-package-upload.ts","../../widget-tooling/src/workflows.ts","../../widget-tooling/src/company-widget-package.ts","../src/commands/widget-package-publish.ts","../src/commands/version.ts","../src/commands/doctor.ts","../../../portal/definition-schema/src/generated/types.ts","../src/utils/transform.ts","../src/index.ts"],"mappings":"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ouCb,KAAA,WtBpuCsB;IsBsuCtB,aAAA,6CtBtuCwD;IsBwuCxD,UAAA,0HtB3tCE;IsBsuCF,UAAA,WtBttCiB;IsBwtCjB,QAAA,WtB7sCgB;IsB+sChB,SAAA,wPtBzsCoC;IsBiuCpC,UAAA,0HtBttCqC;IsBiuCrC,YAAA,YtBjuCqC;IsBmuCrC,UAAA,WtB5xCa;IsB8xCb,QAAA,WtB9xCsB;IsBgyCtB,SAAA,wPtBhyC2C;IsBwzC3C,UAAA,0HtBnzCF;IsB8zCE,YAAA,YtBvzCF;IsByzCE,UAAA,WtBvzCE;IsByzCF,QAAA,WtB1yCO;IsB4yCP,SAAA,wPtBjyCF;IsByzCE,UAAA,0HtBzzCkC;IsBo0ClC,YAAA,YtB9zCkB;IsBg0ClB,UAAA,WtB3zCF;IsB6zCE,QAAA,WtB7zCuC;IsB+zCvC,SAAA,wPtBzzCmB;IsBi1CnB,UAAA,0HtBj1CqC;IsB41CrC,YAAA;IAEA,UAAA;IAEA,QAAA,WrBl8CQ;IqBo8CR,SAAA,wPrBn8CF;IqB29CE,UAAA,0HrBx9CG;IqBm+CH,YAAA,YrB59Ce;IqB89Cf,UAAA,WrB19CwD;IqB49CxD,QAAA,WrB38CiC;IqB68CjC,SAAA,wPrB58CiB;IqBo+CjB,UAAA,0HrBx8C6B;IqBm9C7B,YAAA,YrBhhDgC;IqBkhDhC,UAAA,WrBjhDF;IqBmhDE,QAAA,WrBhhDG;IqBkhDH,SAAA,wPrB3gDe;IqBmiDf,UAAA,0HrB/hDa;IqB0iDb,YAAA,YrB1iD0B;IqB4iD1B,UAAA,WrB5iDwD;IqB8iDxD,QAAA,WrBtiDc;IqBwiDd,SAAA,wPrB/hDqB;IqBujDrB,UAAA,0HrBvjDc;IqBkkDd,MAAA,qBrBjkDiB;IqBmkDjB,UAAA,gDrBvjDA;IqByjDA,WAAA,YrBziDA;IqB2iDA,YAAA,YrB3iD6B;IqB6iD7B,UAAA;MAGM,IAAA;MACA,KAAA,GAAQ,WAAA;MACR,QAAA,mBAA2B,UAAA;IAAA,GrB9iDpB;IqBijDb,SAAA,0HrBjjDyB;IqB4jDzB,OAAA,2BrB3jDI;IqB6jDJ,YAAA,gDrB3jDF;IqB6jDE,WAAA,yCrB5jDF;IqB8jDE,WAAA;EAAA;AAAA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DjB,gBAAA,0HnB59D0B;ImBu+D1B,oBAAA,gCnBz9DK;ImB29DL,UAAA;MAGM,IAAA;MACA,KAAA,GAAQ,WAAA;MACR,QAAA,mBAA2B,UAAA;IAAA,GnB/+DjC;ImBk/DA,OAAA,2BnBl/DA;ImBo/DA,YAAA,gDnB7/DF;ImB+/DE,WAAA,yCnB9/DF;ImBggEE,WAAA;EAAA;AAAA;;UAca,cAAA,SAAuB,oBAAA;;WAE7B,IAAA;;WAEA,KAAA;InB5/DT,qDmB8/DE,YAAA,YnB7/DK;ImB+/DL,SAAA,WnB9/DM;ImBggEN,aAAA,6CnB5/DS;ImB8/DT,UAAA,0HnB7/DF;ImBwgEE,UAAA;MAGM,IAAA;MACA,KAAA,GAAQ,WAAA;MACR,QAAA,mBAA2B,UAAA;IAAA,GnB1gEpB;ImB6gEb,SAAA,0HnBzgE8B;ImBohE9B,WAAA,0HnBphE4D;ImB+hE5D,QAAA,WnB/hEM;ImBiiEN,OAAA,2BnBjiEM;ImBmiEN,YAAA,gDnBtiEqB;ImBwiErB,WAAA,yCnBtiEF;ImBwiEE,WAAA;EAAA;AAAA;;UAca,eAAA,SAAwB,oBAAA;;WAE9B,IAAA;;WAEA,KAAA;InBpjEX,gCmBsjEI,QAAA,mBAA2B,UAAA,EnBtjEnB;ImBwjER,YAAA,YnBnjEA;ImBqjEA,GAAA,WnBljEM;ImBojEN,MAAA,WnBnjEQ;ImBqjER,WAAA,sBnBpjEQ;ImBsjER,KAAA,WnBpjE4B;ImBsjE5B,OAAA,WnBrjEwB;ImBujExB,OAAA,WnBrjEiB;ImBujEjB,GAAA,WnBhkEA;ImBkkEA,QAAA,WnBljEW;ImBojEX,MAAA,WnBnjEc;ImBqjEd,IAAA,WnBpjEc;ImBsjEd,cAAA,YnBljEgC;ImBojEhC,UAAA,0HnBnjE4B;ImB8jE5B,kBAAA,YnBxjEmB;ImB0jEnB,cAAA,WnBzjEgB;ImB2jEhB,cAAA,WnB1jEgB;ImB4jEhB,gBAAA,WnBtjEmB;ImBwjEnB,gBAAA,WnBhlEA;ImBklEA,YAAA,gDnBpmEF;ImBsmEE,WAAA,yCnBpmEF;ImBsmEE,WAAA,0HnBrmEqB;ImBgnErB,cAAA,qBnB9mEA;ImBgnEA,WAAA,WnB9mEM;ImBgnEN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"}
|
|
1
|
+
{"version":3,"file":"index.d.mts","names":[],"sources":["../src/types.ts","../src/utils/package-manager.ts","../src/utils/file-system.ts","../src/utils/prompts.ts","../src/utils/scaffold-github.ts","../src/lib/git.ts","../src/api/git-credential.ts","../src/lib/git-sync.ts","../src/commands/clone.ts","../src/commands/create.ts","../src/commands/pull.ts","../../../api-clients/hey-api-fetch-runtime/src/generated/core/auth.gen.ts","../../../api-clients/hey-api-fetch-runtime/src/generated/core/pathSerializer.gen.ts","../../../api-clients/hey-api-fetch-runtime/src/generated/core/bodySerializer.gen.ts","../../../api-clients/hey-api-fetch-runtime/src/generated/core/types.gen.ts","../../../api-clients/hey-api-fetch-runtime/src/generated/core/serverSentEvents.gen.ts","../../../api-clients/hey-api-fetch-runtime/src/generated/client/utils.gen.ts","../../../api-clients/hey-api-fetch-runtime/src/generated/client/types.gen.ts","../../../api-clients/fluidos/src/hey-api-client.ts","../../../api-clients/fluidos/src/hey-api/types.gen.ts","../src/utils/mappings.ts","../src/utils/snapshot.ts","../src/utils/push-validation.ts","../src/commands/push.ts","../src/commands/widget-create.ts","../src/commands/widget-publish.ts","../src/commands/deploy.ts","../../widget-tooling/src/internal/widget-package-validation.ts","../../widget-tooling/src/internal/widget-package-builder.ts","../../widget-tooling/src/internal/widget-package-artifacts.ts","../../widget-tooling/src/internal/widget-package-upload.ts","../../widget-tooling/src/workflows.ts","../../widget-tooling/src/company-widget-package.ts","../src/commands/widget-package-publish.ts","../src/commands/version.ts","../src/commands/doctor.ts","../../../portal/definition-schema/src/generated/types.ts","../src/utils/transform.ts","../src/index.ts"],"mappings":";;;;;;;;cAOa,SAAA;EAAA,SACX,OAAA;AAAA;;;;KAMU,YAAA,WAAuB,SAAA,eAAwB,SAAA;AAA3D;;;AAAA,UASiB,oBAAA;EAAA,SACN,EAAA;EAAA,SACA,IAAA;EAAA,SACA,IAAA;AAAA;;;;UAMM,aAAA;;WAEN,IAAA;EAFX;EAAA,SAIW,WAAA;;WAEA,aAAA,WAAwB,oBAAA;;WAExB,WAAA;AAAA;;;;UAMM,aAAA;EAAjB;EAAA,SAEW,WAAA;;WAEA,SAAA;;WAEA,KAAA;;WAEA,cAAA;AAAA;;AAUX;;UAAiB,UAAA;EAAA,SACN,IAAA;EAAA,SACA,IAAA;AAAA;;;;UAMM,YAAA;EAAA,SACN,MAAA;AAAA;;;;UAMM,mBAAA;EAQA;EAAA,SANN,QAAA;AAAA;;;;UAMM,mBAAA;EAAA,SACN,WAAA;EAAA,SACA,MAAA;EAAA,SACA,MAAA;AAAA;;;;UAMM,oBAAA;EAAA,SACN,OAAA;EAAA,SACA,MAAA;EAAA,SACA,MAAA;AAAA;;;;UAUM,iBAAA;EAAA,SACN,WAAA;EAAA,SACA,UAAA;;WAEA,gBAAA;;WAEA,UAAA;;WAEA,gBAAA;EAMA;EAAA,SAJA,aAAA,WAAwB,oBAAA;;WAExB,gBAAA;ECpHX;EAAA,SDsHW,WAAA;AAAA;;;;;;iBCtHK,iBAAA,CAAA;;ADEhB;;iBCKgB,aAAA,CAAc,MAAA;;;ADE9B;iBCKsB,iBAAA,CACpB,IAAA,YACA,GAAA,WACC,OAAA;;;;iBAUmB,mBAAA,CAAoB,GAAA,WAAc,OAAA;;;;;ADzBxD;cE2Ca,kBAAA;EAAA,SACX,iBAAA;EAAA,SACA,YAAA;EAAA,SACA,SAAA;EAAA,SACA,UAAA;EAAA,SACA,aAAA;AAAA;;;AFhCF;KEsCY,mBAAA,WACF,kBAAA,eAAiC,kBAAA;;;;UAK1B,eAAA,SAAwB,QAAA;EAAA,SAC9B,IAAA,EAAM,mBAAA;EAAA,SACN,OAAA;EAAA,SACA,IAAA;EAAA,SACA,KAAA,GAAQ,KAAA;AAAA;;;;UAkBF,aAAA;;WAEN,IAAA;;WAEA,OAAA;AAAA;AF/CX;;;;;;AAAA,iBEwDgB,gBAAA,CAAiB,YAAA,WAAuB,aAAA;;;;AFtCxD;iBEwKsB,YAAA,CACpB,YAAA,UACA,UAAA,UACA,SAAA,EAAW,iBAAA,GACV,OAAA;;;;iBAuCmB,eAAA,CAAgB,IAAA,WAAe,OAAA;;;;iBAY/B,UAAA,CAAW,IAAA,WAAe,OAAA;AFhNhD;;;AAAA,iBE4NsB,UAAA,CAAW,IAAA,WAAe,OAAA;;AFpNhD;;iBEgOsB,eAAA,CAAgB,IAAA,WAAe,OAAA;;;;;iBAQ/B,aAAA,CAAA,GAAiB,OAAA;;;;iBA6HjB,YAAA,CACpB,IAAA,WACC,OAAA,CAAQ,MAAA,SAAe,eAAA;;;;iBAoBJ,aAAA,CACpB,IAAA,UACA,OAAA,WACC,OAAA,CAAQ,MAAA,OAAa,eAAA;;;;iBAoBF,mBAAA,CACpB,IAAA,WACC,OAAA,CAAQ,MAAA,OAAa,eAAA;;;;iBAoBF,gBAAA,CACpB,YAAA,UACA,UAAA,UACA,SAAA,EAAW,QAAA,CAAS,iBAAA,IACnB,OAAA,CAAQ,MAAA,OAAa,eAAA;;;;;iBAsDF,iBAAA,CAAA,GAAqB,OAAA,CACzC,MAAA,SAAe,eAAA;;;;;;;iBCzhBK,mBAAA,CACpB,WAAA,UACA,OAAA,EAAS,aAAA,GACR,OAAA,CAAQ,aAAA;;;;cCTE,iBAAA;;;;AJpBb;;;cI6Ba,sBAAA;;AJtBb;;;;iBIkFsB,kBAAA,CACpB,UAAA,UACA,OAAA,WACC,OAAA;AJ5EH;;AAAA,iBIiGsB,mBAAA,CACpB,UAAA,UACA,WAAA,WACC,OAAA;AAAA,UAUc,yBAAA;EAAA,SACN,UAAA;EAAA,SACA,OAAA;EAAA,SACA,WAAA;;WAEA,OAAA;AAAA;;;;;;;;;iBAWW,kBAAA,CACpB,OAAA,EAAS,yBAAA,GACR,OAAA;;;cCxHU,QAAA,SAAiB,KAAA;EAAA,SACnB,QAAA;EAET,WAAA,CAAY,OAAA,UAAiB,QAAA;AAAA;;AL3B/B;;;;;iBKwCgB,eAAA,CAAgB,GAAA,YAAe,QAAA;;;;;ALxB/C;iBK0CsB,cAAA,CAAA,GAAkB,OAAA;;iBAUlB,kBAAA,CAAA,GAAsB,OAAA;;;;AL3C5C;;;;;;iBKsJsB,QAAA,CACpB,SAAA,UACA,SAAA,UACA,IAAA;EAAQ,KAAA;AAAA,IACP,OAAA;;;AL5IH;iBKqKsB,OAAA,CAAQ,GAAA,WAAc,OAAA;;iBAUtB,SAAA,CAAU,GAAA,WAAc,OAAA;;iBAcxB,YAAA,CAAa,GAAA,WAAc,OAAA;;;;;AL3KjD;iBK2LsB,qBAAA,CAAsB,GAAA,WAAc,OAAA;;;;ALnL1D;;iBKiMsB,QAAA,CACpB,GAAA,UACA,SAAA,UACA,MAAA,YACC,OAAA;;;AL9LH;;iBK+MsB,yBAAA,CACpB,GAAA,WACC,OAAA;EAAU,KAAA;EAAe,MAAA;AAAA;;AJpR5B;iBIoasB,mBAAA,CAAoB,GAAA,WAAc,OAAA;AAAA,UAiRvC,oBAAA;EH3lBjB;;;;;AAkIA;;;;EAlIA,SGqmBW,cAAA;AAAA;;;;;;AHxbX;;;;;AAYA;;;;;AAYA;;;;;AAYA;;;;;AAQA;;;;;AA6HA;;;;;;;;;;;;;;AAsBA;;iBG0SsB,aAAA,CACpB,GAAA,UACA,OAAA,UACA,OAAA,GAAS,oBAAA,GACR,OAAA;;;;;;iBAyEmB,OAAA,CACpB,GAAA,UACA,SAAA,UACA,MAAA,YACC,OAAA;;;UCpzBc,mBAAA;EAAA,SACN,UAAA;EAAA,SACA,UAAA;AAAA;;ANpBX;;;;;AAOA;;;;;AASA;;;;;;;;KM0BY,oBAAA;EAAA,SACG,MAAA;EAAA,SAAuB,UAAA,EAAY,mBAAA;AAAA;EAAA,SAEnC,MAAA;EAAA,SACA,MAAA;EAAA,SACA,SAAA;EAAA,SACA,YAAA;EAAA,SACA,UAAA;AAAA;EAAA,SAEA,MAAA;EAAA,SAA0B,MAAA;AAAA;;;;;;;;iBASzB,uBAAA,CAAwB,YAAA;AAAA,UAIvB,gCAAA;EAAA,SACN,OAAA;EAAA,SACA,KAAA;EAAA,SACA,YAAA;ENVM;EAAA,SMYN,SAAA,UAAmB,KAAA;ENJ9B;EAAA,SMMW,gBAAA;AAAA;;;;;;;iBAkKW,yBAAA,CACpB,OAAA,EAAS,gCAAA,GACR,OAAA,CAAQ,oBAAA;;;KC3MC,mBAAA;EAAA,SACG,MAAA;EAAA,SAA4B,MAAA;AAAA;EAAA,SAC5B,MAAA;EAAA,SAA2B,MAAA;AAAA;EAAA,SAI3B,MAAA;EAAA,SAA2B,MAAA;AAAA;AAAA,UAEzB,oBAAA;EAAA,SACN,GAAA;EAAA,SACA,OAAA;EAAA,SACA,KAAA;EAAA,SACA,YAAA;EAAA,SACA,aAAA;EAAA,SACA,MAAA;;WAEA,SAAA,GAAY,gCAAA;AAAA;;;;;APTvB;iBOiBsB,gBAAA,CACpB,OAAA,EAAS,oBAAA,GACR,OAAA,CAAQ,mBAAA;;;cCqKE,YAAA,EAAc,OAAA;;;UChMV,+BAAA;EAAA,SACN,mBAAA,SAA4B,mBAAA;EAAA,SAC5B,cAAA,SAAuB,cAAA;EAAA,SACvB,kBAAA,SAA2B,kBAAA;AAAA;AAAA,cASzB,aAAA,EAAe,OAAA;AAAA,iBAqEN,mBAAA,CACpB,OAAA,UACA,OAAA,EAAS,aAAA,EACT,MAAA,EAAQ,aAAA,EACR,YAAA,GAAc,+BAAA,GACb,OAAA;;;cCoIU,WAAA,EAAa,OAAA;;;KC9Pd,SAAA;AAAA,UAEK,IAAA;;;;AXGjB;;EWGE,EAAA;;;AXIF;;;;EWGE,GAAA;EXMF;;;;;EWAE,IAAA;EACA,MAAA;EACA,IAAA;AAAA;;;UCfe,iBAAA;;;;EAIf,OAAA;EACA,KAAA,EAAO,CAAA;AAAA;AAAA,KAGG,UAAA;AAAA,KAGA,WAAA;;;KCbA,eAAA,IAAmB,KAAA,EAAO,MAAA;AAAA,KAE1B,cAAA,IAAkB,IAAA;AAAA,KAEzB,4BAAA;EACH,aAAA;EACA,KAAA,GAAQ,OAAA,CAAQ,iBAAA,CAAkB,UAAA;EAClC,MAAA,GAAS,OAAA,CAAQ,iBAAA,CAAkB,WAAA;AAAA;AAAA,KAGzB,sBAAA,GAAyB,4BAAA;EbVnC;AAMF;;;EaSE,UAAA,GAAa,MAAA,SAAe,4BAAA;AAAA;;;KCdlB,UAAA;AAAA,KAWA,QAAA;EdNZ;;;EcgBE,QAAA,EAAU,UAAA;EACV,SAAA,QAAiB,MAAA;EACjB,OAAA,EAAS,SAAA;EACT,SAAA,GAAY,MAAA,EAAQ,MAAA,KAAW,MAAA;AAAA,YAEzB,UAAA,GAAa,QAAA,OACf,KAAA;EACE,GAAA;AAAA;EACA,GAAA,UAAa,UAAA,GAAa,KAAA;AAAA;AAAA,UAEjB,QAAA;EddN;AAMX;;;EcaE,IAAA,KAAS,IAAA,EAAM,IAAA,KAAS,OAAA,CAAQ,SAAA,IAAa,SAAA,IAAa,SAAA;;;;;EAK1D,cAAA,GAAiB,cAAA;;;AdJnB;;;;EcWE,OAAA,GACI,WAAA,cACA,MAAA;;;;;;EAeJ,MAAA,GAAS,SAAA,CAAU,UAAA;EdVJ;;;;AAQjB;;;;;AAOA;EcME,eAAA,GAAkB,eAAA,GAAkB,sBAAA;;;;AdEtC;;EcIE,gBAAA,IAAoB,IAAA,cAAkB,OAAA;EdJvB;;;;EcSf,mBAAA,IAAuB,IAAA,cAAkB,OAAA;EdNhC;AAMX;;;;EcME,iBAAA,IAAqB,IAAA,cAAkB,OAAA;AAAA;;;KClG7B,uBAAA,oBAA2C,IAAA,CACrD,WAAA,cAGA,IAAA,CAAK,QAAA;;;;AfDP;;;EeQI,KAAA,UAAe,KAAA;EfPjB;AAMF;;EeKI,SAAA,IAAa,GAAA,UAAa,IAAA,EAAM,WAAA,KAAgB,OAAA,CAAQ,OAAA;EfLD;;AAS3D;;;;;EeII,UAAA,IAAc,KAAA;;;;AfKlB;;;;;EeII,UAAA,IAAc,KAAA,EAAO,WAAA,CAAY,KAAA;EACjC,cAAA,GAAiB,WAAA;;;;;AfSrB;;;EeDI,oBAAA;;;;EAIA,mBAAA;;;AfeJ;;;;;AAQA;;EebI,gBAAA;Efaa;;AAOjB;;;EedI,UAAA,IAAc,EAAA,aAAe,OAAA;EAC7B,GAAA;AAAA;AAAA,UAGa,WAAA;EACf,IAAA,EAAM,KAAA;EACN,KAAA;EACA,EAAA;EACA,KAAA;AAAA;AAAA,KAGU,sBAAA;EAKV,MAAA,EAAQ,cAAA,CACN,KAAA,SAAc,MAAA,oBAA0B,KAAA,OAAY,KAAA,IAAS,KAAA,EAC7D,OAAA,EACA,KAAA;AAAA;;;KCmJC,cAAA,4BACH,KAAA,EAAO,GAAA,EAEP,QAAA,EAAU,GAAA,cAEV,OAAA,EAAS,GAAA,cACT,OAAA,EAAS,OAAA,KACN,GAAA,GAAM,OAAA,CAAQ,GAAA;AAAA,KAEd,cAAA,kBACH,OAAA,EAAS,GAAA,EACT,OAAA,EAAS,OAAA,KACN,GAAA,GAAM,OAAA,CAAQ,GAAA;AAAA,KAEd,cAAA,uBACH,QAAA,EAAU,GAAA,EACV,OAAA,EAAS,GAAA,EACT,OAAA,EAAS,OAAA,KACN,GAAA,GAAM,OAAA,CAAQ,GAAA;AAAA,cAEb,YAAA;EACJ,GAAA,EAAK,KAAA,CAAM,WAAA;EAEX,KAAA,CAAA;EAIA,KAAA,CAAM,EAAA,WAAa,WAAA;EAOnB,MAAA,CAAO,EAAA,WAAa,WAAA;EAKpB,mBAAA,CAAoB,EAAA,WAAa,WAAA;EAOjC,MAAA,CACE,EAAA,WAAa,WAAA,EACb,EAAA,EAAI,WAAA,YACM,WAAA;EASZ,GAAA,CAAI,EAAA,EAAI,WAAA;AAAA;AAAA,UAMO,UAAA;EACf,KAAA,EAAO,YAAA,CAAa,cAAA,CAAe,GAAA,EAAK,GAAA,EAAK,GAAA,EAAK,OAAA;EAClD,OAAA,EAAS,YAAA,CAAa,cAAA,CAAe,GAAA,EAAK,OAAA;EAC1C,QAAA,EAAU,YAAA,CAAa,cAAA,CAAe,GAAA,EAAK,GAAA,EAAK,OAAA;AAAA;;;KC7RtC,aAAA;AAAA,UAEK,MAAA,WAAiB,aAAA,GAAgB,aAAA,UACxC,IAAA,CAAK,WAAA,kCAA6C,QAAA;;;;EAI1D,OAAA,GAAU,CAAA;EjBNZ;;;;;AASA;EiBIE,KAAA,UAAe,KAAA;;;;;;;EAOf,IAAA;EjBFF;;;;;;;;EiBWE,OAAA;;;AjBGF;;;EiBUE,aAAA,GAAgB,aAAA;;;;;;EAMhB,YAAA,GAAe,CAAA;AAAA;AAAA,UAGA,cAAA,yCAEQ,aAAA,0FAKrB,MAAA;EACE,aAAA,EAAe,cAAA;EACf,YAAA,EAAc,YAAA;AAAA,IAEhB,IAAA,CACE,uBAAA,CAAwB,KAAA;EjBE9B;;;;;EiBWE,IAAA;EACA,IAAA,GAAO,MAAA;EACP,KAAA,GAAQ,MAAA;EjBLO;;;EiBSf,QAAA,GAAW,aAAA,CAAc,IAAA;EACzB,GAAA,EAAK,GAAA;AAAA;AAAA,UAGU,sBAAA,wBACQ,aAAA,0FAGf,cAAA,UAAwB,cAAA,EAAgB,YAAA,EAAc,GAAA;EAC9D,OAAA,EAAS,OAAA;EACT,cAAA;AAAA;AAAA,KAGU,aAAA,mGAIa,aAAA,eACrB,YAAA,gBACA,OAAA,CACE,cAAA,kBACI,KAAA,SAAc,MAAA,oBACZ,KAAA,OAAY,KAAA,IACZ,KAAA;EAEA,IAAA,EAAM,KAAA,SAAc,MAAA,oBAChB,KAAA,OAAY,KAAA,IACZ,KAAA;EACJ,OAAA,EAAS,OAAA;EACT,QAAA,EAAU,QAAA;AAAA,KAGlB,OAAA,CACE,cAAA,mBAES,KAAA,SAAc,MAAA,oBACX,KAAA,OAAY,KAAA,IACZ,KAAA;EAIF,IAAA,EAAM,KAAA,SAAc,MAAA,oBAChB,KAAA,OAAY,KAAA,IACZ,KAAA;EACJ,KAAA;AAAA;EAGA,IAAA;EACA,KAAA,EAAO,MAAA,SAAe,MAAA,oBAClB,MAAA,OAAa,MAAA,IACb,MAAA;AAAA;+FAIR,OAAA,GAAU,OAAA;EAEV,QAAA,GAAW,QAAA;AAAA;AAAA,UAIN,aAAA;EACf,OAAA;EACA,aAAA,GAAgB,aAAA;EAChB,YAAA;AAAA;AAAA,KAGG,QAAA,oGAIoB,aAAA,aAEvB,OAAA,EAAS,IAAA,CAAK,cAAA,CAAe,KAAA,EAAO,cAAA,EAAgB,YAAA,iBACjD,aAAA,CAAc,KAAA,EAAO,MAAA,EAAQ,YAAA,EAAc,cAAA;AAAA,KAE3C,KAAA,qGAKoB,aAAA,aAEvB,OAAA,EAAS,IAAA,CAAK,cAAA,QAAsB,cAAA,EAAgB,YAAA,iBACjD,OAAA,CAAQ,sBAAA,CAAuB,KAAA;AAAA,KAE/B,SAAA,oGAIoB,aAAA,aAEvB,OAAA,EAAS,IAAA,CAAK,cAAA,CAAe,KAAA,EAAO,cAAA,EAAgB,YAAA,eAClD,IAAA,CACE,QAAA,CAAS,cAAA,CAAe,KAAA,EAAO,cAAA,EAAgB,YAAA,kBAGhD,aAAA,CAAc,KAAA,EAAO,MAAA,EAAQ,YAAA,EAAc,cAAA;AAAA,KAE3C,UAAA;EAED,IAAA;EACA,IAAA,GAAO,MAAA;EACP,KAAA,GAAQ,MAAA;EACR,GAAA;AAAA,GAGF,OAAA,EAAS,KAAA,GAAQ,OAAA,CAAQ,KAAA;AAAA,KAGf,MAAA,GAAS,QAAA,CACnB,SAAA,EACA,MAAA,EACA,QAAA,EACA,UAAA,EACA,KAAA;EAEA,YAAA,EAAc,UAAA,CAAW,OAAA,EAAS,QAAA,WAAmB,sBAAA;AAAA;AAAA,UAetC,UAAA;EACf,IAAA;EACA,OAAA;EACA,IAAA;EACA,KAAA;EACA,GAAA;AAAA;AAAA,KAGG,QAAA,SAAiB,IAAA,CAAK,CAAA,EAAG,OAAA,OAAc,CAAA,EAAG,CAAA;AAAA,KAEnC,OAAA,eACI,UAAA,GAAa,UAAA,sFAGJ,aAAA,eACrB,QAAA,CACF,cAAA,CAAe,SAAA,EAAW,cAAA,EAAgB,YAAA,0CAGxC,KAAA,8BAAmC,IAAA,CAAK,KAAA;;;KCnPhC,mBAAA,GAAsB,MAAA;;;;;AlB6BlC;KmBGY,WAAA,sCAKR,KAAA,CAAM,WAAA;EAAA,eAEW,WAAA;AAAA;;AjBqPrB;;KiBrDY,qBAAA;EACV,EAAA;EACA,IAAA;EACA,KAAA;EACA,SAAA;EACA,QAAA;EACA,SAAA;EACA,IAAA;EACA,MAAA;EACA,QAAA,GAAW,KAAA,CAAM,qBAAA;AAAA;;;;KAgBP,aAAA;EACV,EAAA;EACA,IAAA;EACA,IAAA;EACA,aAAA;EACA,cAAA,GAAiB,qBAAA;AAAA;;;AjB0MnB;KiBpMY,YAAA;EACV,EAAA;EACA,MAAA,GAAS,qBAAA;EACT,MAAA;EACA,IAAA;EACA,aAAA;AAAA;;;;KAMU,sBAAA;EACV,EAAA;EACA,IAAA;EACA,aAAA;EACA,QAAA;AAAA;;;AjBkOF;KiBjNY,0BAAA;EACV,EAAA;EACA,IAAA;EACA,aAAA;EACA,QAAA;EACA,gBAAA,GAAmB,KAAA,CAAM,qBAAA;AAAA;;;;KAMf,cAAA;EACV,EAAA;EACA,IAAA;EACA,OAAA;EACA,WAAA,GAAc,qBAAA;EACd,aAAA;EACA,UAAA,GAAa,0BAAA;EACb,iBAAA,GAAoB,0BAAA;EACpB,MAAA,GAAS,KAAA,CAAM,YAAA;AAAA;;;;KA2SL,qBAAA;EAAA,CACK,GAAA,WAAA,WAAA;AAAA;;;;UCzlBA,iBAAA;EAAA,SACN,IAAA;EAAA,SACA,EAAA;AAAA;ApBfX;;;;AAAA,KoBsBY,kBAAA;ApBfZ;AAAA,UoBwBiB,cAAA;EAAA,SACN,UAAA,EAAY,iBAAA;EAAA,SACZ,OAAA,EAAS,MAAA;EAAA,SACT,MAAA,EAAQ,MAAA;EAAA,SACR,WAAA,EAAa,MAAA;EAAA,SACb,QAAA,EAAU,MAAA;EAAA,SACV,SAAA,EAAW,MAAA;EAAA,SACX,KAAA,EAAO,MAAA;AAAA;;;;;iBA2CI,YAAA,CACpB,aAAA,WACC,OAAA,CAAQ,cAAA;;;;;iBAqBW,aAAA,CACpB,aAAA,UACA,QAAA,EAAU,cAAA,GACT,OAAA;;;;;;ApBpEH;;;;;;iBoByFgB,UAAA,CACd,IAAA,UACA,aAAA,GAAe,WAAA;;;;ApBzEjB;iBoBsGgB,eAAA,CACd,QAAA,EAAU,cAAA,EACV,YAAA,EAAc,kBAAA,EACd,IAAA;;;;ApBjGF;iBoB0GgB,eAAA,CACd,QAAA,EAAU,cAAA,EACV,YAAA,EAAc,kBAAA,EACd,EAAA;;;;ApBtGF;iBoByHgB,aAAA,CACd,QAAA,EAAU,cAAA,EACV,YAAA,EAAc,kBAAA,EACd,IAAA,UACA,EAAA,WACC,cAAA;;;;ApBtHH;;iBoBqIgB,aAAA,CACd,QAAA,EAAU,cAAA,EACV,YAAA,EAAc,kBAAA,EACd,IAAA,WACC,cAAA;;;;KCzMS,QAAA;;KAGA,WAAA,GAAc,MAAA,SAAe,QAAA;AAAA,UAExB,0BAAA;EAAA,SACN,QAAA;EAAA,SACA,UAAA;EAAA,SACA,SAAA;EAAA,SACA,cAAA;EAAA,SACA,iBAAA;AAAA;AAAA,UAGM,6BAAA,SAAsC,0BAAA;EAAA,SAC5C,UAAA;AAAA;AAAA,KAGC,6BAAA,GAAgC,QAAA,CAC1C,MAAA,kBAAwB,0BAAA;AAAA,KAGd,gCAAA,GAAmC,QAAA,CAC7C,MAAA,kBAAwB,6BAAA;;UAIT,QAAA;ErB1BA;EAAA,SqB4BN,UAAA;;WAEA,aAAA;;WAEA,SAAA;ErBvBX;EAAA,SqByBW,KAAA,EAAO,WAAA;;WAEP,qBAAA,GAAwB,6BAAA;;WAExB,wBAAA,GAA2B,gCAAA;AAAA;;UAIrB,YAAA;;WAEN,GAAA;ErBrBX;EAAA,SqBuBW,OAAA;;WAEA,OAAA;AAAA;;;;;iBAqDW,eAAA,CAAgB,QAAA,WAAmB,OAAA,CAAQ,QAAA;ArB5DjE;;;;AAAA,iBqB2EsB,YAAA,CACpB,aAAA,WACC,OAAA,CAAQ,QAAA;ArBrEX;;;;AAAA,iBqBmGsB,aAAA,CACpB,aAAA,UACA,QAAA,EAAU,QAAA,GACT,OAAA;ArB/FH;;;;;AAAA,iBqBiJsB,mBAAA,CACpB,SAAA,UACA,QAAA,EAAU,QAAA,GACT,OAAA,CAAQ,YAAA;;;;;;;iBA0CW,aAAA,CACpB,SAAA,UACA,cAAA,UACA,YAAA,WACC,OAAA,CAAQ,QAAA;;;;UC/OM,kBAAA;EAAA,SACN,OAAA;IAAW,GAAA;IAAe,OAAA;IAAmB,OAAA;EAAA;EAAA,SAC7C,MAAA;IAAU,GAAA;IAAe,OAAA;IAAmB,OAAA;EAAA;EAAA,SAC5C,WAAA;IAAe,GAAA;IAAe,OAAA;IAAmB,OAAA;EAAA;EAAA,SACjD,QAAA;IAAY,GAAA;IAAe,OAAA;IAAmB,OAAA;EAAA;AAAA;;UAIxC,eAAA;EAAA,SACN,IAAA;EAAA,SACA,OAAA;AAAA;;;;iBA2BK,YAAA,CAAa,QAAA;;iBAsDP,qBAAA,CACpB,SAAA,WACC,OAAA,CAAQ,eAAA;AtB/DX;;;AAAA,iBsBmHgB,iBAAA,CAAkB,IAAA,EAAM,YAAA,GAAe,kBAAA;;AtB3GvD;;;;;AAOA;;;iBsB0LsB,uBAAA,CACpB,SAAA,UACA,QAAA,EAAU,cAAA,EACV,OAAA,EAAS,kBAAA,GACR,OAAA,CAAQ,eAAA;;;cCwhCE,WAAA,EAAa,OAAA;;;cC94Bb,aAAA,EAAe,OAAA;;;cCtUf,qBAAA,EAAuB,OAAA;;;cC3DvB,aAAA,EAAe,OAAA;;;KCEhB,sBAAA;;;UCsCK,8BAAA;EAAA,SACN,UAAA;EAAA,SACA,SAAA;EAAA,SACA,OAAA;EAAA,SACA,YAAA;EAAA,SACA,mBAAA;EAAA,SACA,gBAAA;AAAA;;;UC7DM,gBAAA;EAAA,SACN,IAAA;EAAA,SACA,MAAA;EAAA,SACA,KAAA;EAAA,SACA,WAAA;AAAA;;;KCUC,wBAAA;EAAA,SACG,IAAA;EAAA,SAA0B,IAAA;AAAA;EAAA,SAC1B,IAAA;AAAA;AAAA,KAEH,6BAAA,GAAgC,gBAAA;AAAA,UAE3B,2BAAA,SAAoC,6BAAA;EAAA,SAC1C,IAAA,EAAM,QAAA;AAAA;AAAA,UAGA,2BAAA;EAAA,SACN,OAAA;EAAA,SACA,UAAA;EAAA,SACA,cAAA;EAAA,SACA,UAAA;EAAA,SACA,cAAA;EAAA,SACA,YAAA;EAAA,SACA,QAAA,EAAU,MAAA;EAAA,SACV,SAAA,WAAoB,6BAAA;AAAA;AAAA,UAGd,2BAAA,SAAoC,IAAA,CACnD,2BAAA;EAAA,SAGS,SAAA,WAAoB,2BAAA;AAAA;AAAA,KAGnB,4BAAA,GAA+B,gBAAA;AAAA,UAE1B,iCAAA;EAAA,SACN,OAAA;EAAA,SACA,WAAA;EAAA,SACA,eAAA;EAAA,SACA,WAAA;EAAA,SACA,eAAA;EAAA,SACA,aAAA;EAAA,SACA,QAAA,EAAU,MAAA;EAAA,SACV,SAAA,WAAoB,4BAAA;AAAA;AAAA,UAQd,yBAAA;EAAA,SACN,IAAA;EAAA,SACA,GAAA;EAAA,SACA,WAAA;EAAA,SACA,OAAA,EAAS,QAAA,CAAS,MAAA;AAAA;AAAA,UAGZ,0BAAA;EAAA,SACN,OAAA;EAAA,SACA,OAAA,WAAkB,yBAAA;EAAA,SAClB,GAAA;AAAA;AAAA,UAGM,iCAAA;EAAA,SACN,IAAA;EAAA,SACA,MAAA;EAAA,SACA,WAAA;AAAA;AAAA,UAGM,2BAAA;EAAA,SACN,OAAA;EAAA,SACA,MAAA;EAAA,SACA,UAAA;EAAA,SACA,GAAA;AAAA;AAAA,UAGM,0BAAA;EAAA,SACN,MAAA;EAAA,SACA,cAAA,EAAgB,iCAAA;EAAA,SAChB,OAAA,GAAU,0BAAA;EAAA,SACV,iBAAA,YAA6B,iCAAA;EAAA,SAC7B,QAAA,GAAW,2BAAA;AAAA;;;KC3DV,kBAAA,GAAqB,wBAAA;AAAA,KACrB,wBAAA,GAA2B,8BAAA;AAAA,UAgHtB,sBAAA;EAAA,SACN,KAAA,EAAO,wBAAA;EAAA,SACP,OAAA,EAAS,2BAAA;EAAA,SACT,OAAA,EAAS,0BAAA;AAAA;;;UC1HH,oBAAA;;WAEN,GAAA;EAAA,SACA,OAAA;;;;;;WAMA,WAAA;AAAA;;;;;;;A9BmBX;;iB8BoNsB,wBAAA,CACpB,MAAA,EAAQ,mBAAA,GACP,OAAA,CAAQ,oBAAA;;;A9BhNX;;;;iB8B0NgB,wBAAA,CAAyB,OAAA;EAAA,SAC9B,aAAA;EAAA,SACA,UAAA;EAAA,SACA,cAAA;AAAA;;UAmBM,uBAAA;EAAA,SACN,SAAA;EAAA,SACA,OAAA;AAAA;AAAA,UAGM,uBAAA;;WAEN,QAAA;E9BjOX;EAAA,S8BmOW,eAAA;;WAEA,iBAAA;AAAA;A9BxNX;;;;;AAkIA;;;;;;;;;AAlIA,iB8ByOsB,uBAAA,CAAwB,OAAA;EAAA,SACnC,UAAA;EAAA,SACA,MAAA,EAAQ,mBAAA,E9B9DG;EAAA,S8BgEX,qBAAA,GACP,UAAA,aACG,OAAA,CAAQ,uBAAA;AAAA,IACX,OAAA,CAAQ,uBAAA;;A9BvDZ;;;;;AAYA;;;;;AAYA;;;;;AAQA;;;;;iB8B0FgB,qBAAA,CAAsB,OAAA;EAAA,SAC3B,iBAAA;EAAA,SACA,gBAAA;AAAA;;;UC7YM,oCAAA;EAAA,SACN,UAAA;EAAA,SACA,MAAA;EAAA,SACA,UAAA,EAAY,sBAAA;EAAA,SACZ,WAAA,EAAa,kBAAA;EAAA,SACb,MAAA;EAAA,SACA,MAAA,GAAS,mBAAA;EjCZlB;EAAA,SiCcS,OAAA;AAAA;AAAA,KAGC,mCAAA,GAAsC,sBAAA;AAAA,iBAE5B,6BAAA,CACpB,OAAA,EAAS,oCAAA,GACR,OAAA,CAAQ,mCAAA;;;cC2ME,cAAA,EAAgB,OAAA;;;cCxDhB,aAAA,EAAe,OAAA;;;;KC7KhB,aAAA;;KAEA,SAAA,GACR,aAAA,GACA,SAAA,KACA,UAAA,GACA,gBAAA;;UAEa,UAAA;;YAES,GAAA,WAAA,SAAA;AAAA;;KAId,WAAA;;UAYK,sBAAA;EpCf0C;EAAA,SoCiBhD,OAAA,EAAS,UAAA;EpCRpB;EAAA,SoCUW,OAAA;IAAA,SAAqB,YAAA;EAAA;;WAErB,KAAA;IAAA,SACE,QAAA,GAAW,UAAA;IAAA,SACX,UAAA;IAAA,SACA,UAAA;EAAA;AAAA;;UAKI,oBAAA;;WAEN,EAAA;;WAEA,IAAA;;WAEA,KAAA,EAAO,UAAA;EpCTP;EAAA,SoCWA,UAAA,GAAa,sBAAA;EpCLP;EAAA,SoCON,WAAA;AAAA;;UAIM,eAAA,SAAwB,oBAAA;;WAE9B,IAAA;;WAEA,KAAA;IpCGX,gDoCDI,YAAA;IAEA,KAAA,WpCCO;IoCCP,aAAA,6CpCKa;IoCHb,eAAA,8CpCIO;IoCFP,UAAA,0HpCQJ;IoCGI,cAAA;IAEA,WAAA,WpCHO;IoCKP,mBAAA,6CpCCa;IoCCb,qBAAA,8CpCDa;IoCGb,gBAAA,0HpCDO;IoCYP,oBAAA,gCpCXO;IoCaP,UAAA;MAGM,IAAA;MACA,KAAA,GAAQ,WAAA;MACR,QAAA,mBAA2B,UAAA;IAAA,GpCX1B;IoCcP,OAAA,2BpCZO;IoCcP,YAAA,gDpCdO;IoCgBP,WAAA,yCpCNa;IoCQb,WAAA;EAAA;AAAA;;UAca,sBAAA,SAA+B,oBAAA;;WAErC,IAAA;;WAEA,KAAA;IpCdA,gCoCgBP,KAAA,WpCdO;IoCgBP,aAAA;IAEA,UAAA;IAWA,OAAA,WnCnJY;ImCqJZ,YAAA,0HnCrJY;ImCgKZ,OAAA,WnCzJJ;ImC2JI,OAAA;IAEA,IAAA,yDnC7J0B;ImC+J1B,QAAA,YnCxJkB;ImC0JlB,aAAA,YnCvJD;ImCyJC,WAAA,0HnC1JF;ImCqKE,SAAA,gCnCpKD;ImCsKC,UAAA;MAGM,IAAA;MACA,KAAA,GAAQ,WAAA;MACR,QAAA,mBAA2B,UAAA;IAAA,GnCjKmB;ImCoKpD,OAAA;IAEA,YAAA,gDlCpJJ;IkCsJI,WAAA;IAEA,WAAA;EAAA;AAAA;;UAca,oBAAA,SAA6B,oBAAA;;WAEnC,IAAA;ElCnKT;EAAA,SkCqKS,KAAA;IlC/JC,gDkCiKR,YAAA,YlChKM;IkCkKN,KAAA,WlC7JJ;IkC+JI,aAAA;IAEA,UAAA,0HlC7Je;IkCwKf,QAAA,4BlC5KqC;IkC8KrC,KAAA,alC9KqC;IkCgLrC,YAAA,6ClC/Ka;IkCiLb,SAAA,0HlC/KO;IkC0LP,UAAA;MAGM,IAAA;MACA,KAAA,GAAQ,WAAA;MACR,QAAA,mBAA2B,UAAA;IAAA,GlC5KpB;IkC+Kb,OAAA,2BlC7KO;IkC+KP,YAAA,gDlCpKJ;IkCsKI,WAAA;IAEA,WAAA,0HlCxKoD;IkCmLpD,OAAA;EAAA;AAAA;;UAKa,kBAAA,SAA2B,oBAAA;;WAEjC,IAAA;;WAEA,KAAA;IlCtDR,oDkCwDC,YAAA,YlCjBJ;IkCmBI,SAAA;IAEA,aAAA,6ClCrBiD;IkCuBjD,UAAA,0HlCXkB;IkCsBlB,UAAA;MAGM,IAAA;MACA,KAAA,GAAQ,WAAA;MACR,QAAA,mBAA2B,UAAA;IAAA;IAGjC,SAAA,0HlClB4C;IkC6B5C,WAAA,0HlCjBkB;IkC4BlB,OAAA,2BlC5BkC;IkC8BlC,YAAA,gDlCtBJ;IkCwBI,WAAA;IAEA,WAAA,0HlC1BmC;IkCqCnC,eAAA,YlCwFkB;IkCtFlB,eAAA,YlCwFsB;IkCtFtB,gBAAA,YlCsFD;IkCpFC,UAAA;EAAA;AAAA;;UAKa,cAAA,SAAuB,oBAAA;;WAE7B,IAAA;ElC6Ee;EAAA,SkC3Ef,KAAA;IlC+FW,+BkC7FlB,aAAA,YlCgGoB;IkC9FpB,KAAA,WlC8FD;IkC5FC,aAAA,6ClC4FD;IkC1FC,UAAA,0HlCyFF;IkC9EE,gBAAA,0HlC+EO;IkCpEP,aAAA,YlCoEoB;IkClEpB,aAAA,WlCsFJ;IkCpFI,WAAA;IAWA,gBAAA,0HlC2EO;IkChEP,UAAA;MAGM,IAAA;MACA,KAAA,GAAQ,WAAA;MACR,QAAA,mBAA2B,UAAA;IAAA,GlC2D1B;IkCxDP,OAAA,2BlCwDoB;IkCtDpB,YAAA,gDlC0EJ;IkCxEI,WAAA;IAEA,WAAA,0HlCyES;IkC9DT,OAAA,8ClC+DO;IkC7DP,QAAA,GAAW,KAAA,CAAM,gBAAA;EAAA;AAAA;;UAKJ,kBAAA,SAA2B,oBAAA;;WAEjC,IAAA;;WAEA,KAAA;IlCoDA,+GkClDP,cAAA,YlCkDoB;IkChDpB,UAAA,0HlCsGJ;IkC3FI,UAAA;IAEA,WAAA,0HlC0FF;IkC/EE,QAAA,6ClC8EuC;IkC5EvC,SAAA,0HlC4EuC;IkCjEvC,KAAA;MACE,QAAA;MACA,UAAA;IAAA;IAGF,SAAA;IAEA,cAAA,WjC9dkB;IiCgelB,YAAA,gDjC9dO;IiCgeP,WAAA,yCjC/dD;IiCieC,WAAA,0HjCjeD;IiC4eC,OAAA,2BjC7eO;IiC+eP,cAAA,YjC9eD;IiCgfC,WAAA,yBjChfO;IiCkfP,gBAAA;IAEA,UAAA;IAEA,WAAA,0HhC/fS;IgC0gBT,UAAA,mChC1gBS;IgC4gBT,gBAAA,YhCngBJ;IgCqgBI,kBAAA;IAEA,MAAA,GAAS,SAAA;EAAA;AAAA;;UAKI,iBAAA,SAA0B,oBAAA;EhC7cxC;EAAA,SgC+cQ,IAAA;;WAEA,KAAA;IhCjdR,qDgCmdC,YAAA,YhC9bJ;IgCgcI,SAAA;IAEA,aAAA,6ChCjcF;IgCmcE,UAAA,0HhCjcD;IgC4cC,UAAA;MAGM,IAAA;MACA,KAAA,GAAQ,WAAA;MACR,QAAA,mBAA2B,UAAA;IAAA,GhCvcpB;IgC0cb,SAAA,0HhCxcO;IgCmdP,WAAA,0HhChdO;IgC2dP,QAAA,WhC3dO;IgC6dP,OAAA,2BhCldkB;IgCodlB,YAAA,gDhCldD;IgCodC,WAAA,yChCrdF;IgCudE,WAAA;EAAA;AAAA;;UAca,eAAA,SAAwB,oBAAA;;WAE9B,IAAA;E/B9lBE;EAAA,S+BgmBF,KAAA;I/BhmBmB,iD+BkmB1B,YAAA,Y/BjmBO;I+BmmBP,KAAA,W/BjmBU;I+BmmBV,aAAA,6C/BnmB2B;I+BqmB3B,UAAA,0H/BxlBJ;I+BmmBI,WAAA;IAEA,mBAAA,6C/BrmB2C;I+BumB3C,gBAAA,0H/BrlBkB;I+BgmBlB,SAAA,oC/BhmBoC;I+BkmBpC,UAAA,Y/BxlBJ;I+B0lBI,WAAA;IAEA,QAAA,Y/B5lBwC;I+B8lBxC,KAAA,W/BnfkB;I+BqflB,MAAA,W/BjfD;I+BmfC,UAAA;MAGM,IAAA;MACA,KAAA,GAAQ,WAAA;MACR,QAAA,mBAA2B,UAAA;IAAA,G/BxflC;I+B2fC,OAAA,2B/BleJ;I+BoeI,YAAA;IAEA,WAAA,yC/BtewC;I+BwexC,WAAA,0H/B9dkB;I+ByelB,OAAA,Y/Bze4B;I+B2e5B,QAAA,W/B7dJ;I+B+dI,IAAA,GAAO,SAAA;IAEP,WAAA,GAAc,SAAA;EAAA;AAAA;;UAKD,mBAAA,SAA4B,oBAAA;E/Btda;EAAA,S+Bwd/C,IAAA;E/B1cX;EAAA,S+B4cW,KAAA;8BAEP,OAAA,8C/B7cF;I+B+cE,OAAA,2B/B7cF;I+B+cE,UAAA;MAGM,IAAA;MACA,KAAA,GAAQ,WAAA;MACR,QAAA,mBAA2B,UAAA;IAAA;IAGjC,QAAA,GAAW,KAAA,CAAM,gBAAA;EAAA;AAAA;;UAKJ,eAAA,SAAwB,oBAAA;;WAE9B,IAAA;E/B1TX;EAAA,S+B4TW,KAAA;gDAEP,GAAA,W/B9ToD;I+BgUpD,KAAA,W/B/Ca;I+BiDb,WAAA,uB/BvCO;I+ByCP,aAAA,mBAAgC,UAAA,E/BQpC;I+BNI,iBAAA;IAEA,aAAA,W/BKF;I+BHE,WAAA,W/BKO;I+BHP,eAAA,Y/BID;I+BFC,eAAA,6K/BED;I+BeC,oBAAA,0H/B0DkB;I+B/ClB,UAAA,W/BmDD;I+BjDC,SAAA,W/B+CF;I+B7CE,YAAA,gD/B+CD;I+B7CC,WAAA,yC/B6CD;I+B3CC,WAAA;IAWA,UAAA,Y9BpxBJ;I8BsxBI,MAAA;IAEA,eAAA,Y9BtxBO;I8BwxBP,OAAA;EAAA;AAAA;;UAKa,eAAA,SAAwB,oBAAA;;WAE9B,IAAA;;WAEA,KAAA;I9BtwBI,iC8BwwBX,QAAA,mBAA2B,UAAA,E9BtwBhB;I8BwwBX,YAAA,Y9BtwBqC;I8BwwBrC,GAAA,W9BxwBqC;I8B0wBrC,GAAA,W9BjwBY;I8BmwBZ,YAAA,gD9BnwBoC;I8BqwBpC,WAAA,yC9BjwBJ;I8BmwBI,WAAA;IAWA,cAAA,qB9B7wBO;I8B+wBP,WAAA,W9B7wBO;I8B+wBP,UAAA,wB9B7wB0B;I8B+wB1B,UAAA,W9B7wBO;I8B+wBP,QAAA,+B9B7mBJ;I8B+mBI,IAAA;IAEA,YAAA,Y9B/mBO;I8BinBP,UAAA,W9BjnBD;I8BmnBC,WAAA,uB9BpnBO;I8BsnBP,aAAA,mBAAgC,UAAA,E9BrnBjC;I8BunBC,QAAA;EAAA;AAAA;;UAKa,gBAAA,SAAyB,oBAAA;;WAE/B,IAAA;E7Bz0BC;EAAA,S6B20BD,KAAA;I7B30BC,kC6B60BR,aAAA,8I7B50BuC;I6Bs1BvC,OAAA,8C7Br1BsC;I6Bu1BtC,UAAA;MAGM,IAAA;MACA,KAAA,GAAQ,WAAA;MACR,QAAA,mBAA2B,UAAA;IAAA,G7Bt1BpB;I6By1Bb,OAAA,2B7Bj1BmB;I6Bm1BnB,YAAA,gD7Bz1BO;I6B21BP,WAAA,yC7Bz1BO;I6B21BP,WAAA,0H7Bz1BO;I6Bo2BP,QAAA,GAAW,KAAA,CAAM,gBAAA;EAAA;AAAA;;UAKJ,cAAA,SAAuB,oBAAA;E7B/1BlB;EAAA,S6Bi2BX,IAAA;;WAEA,KAAA;I7Bj2BR,sE6Bm2BC,QAAA,+B7Bn2BD;I6Bq2BC,IAAA,W7Bt2BF;I6Bw2BE,IAAA,W7Bv2BO;I6By2BP,YAAA,Y7Bz2BO;I6B22BP,UAAA;IAEA,WAAA,uB5BxsBJ;I4B0sBI,aAAA,mBAAgC,UAAA;IAEhC,QAAA,W5B5sBuB;I4B8sBvB,OAAA;IAEA,IAAA,mC3Bh5BJ;I2Bk5BI,QAAA;IAEA,SAAA,Y3Bl5B8B;I2Bo5B9B,SAAA,gC3Bn5BkC;I2Bq5BlC,SAAA,Y3Bv5BO;I2By5BP,OAAA,2B3Bx5BO;I2B05BP,cAAA,gD3Bz5BO;I2B25BP,cAAA,gD3B35BkC;I2B65BlC,cAAA,gD3Bp5BJ;I2Bs5BI,cAAA;IAEA,WAAA,yC3Bx5BwB;I2B05BxB,WAAA;EAAA;AAAA;;UAca,cAAA,SAAuB,oBAAA;;WAE7B,IAAA;;WAEA,KAAA;I3Bt2BT,gD2Bw2BE,YAAA,Y3Bv2BF;I2By2BE,KAAA,W3Bx2BF;I2B02BE,SAAA,6C3Bz2BF;I2B22BE,UAAA,0H3B12BD;I2Bq3BC,OAAA;IAEA,YAAA;IAEA,WAAA,yC1BrvBsB;I0BuvBtB,WAAA,0H1BvvBsB;I0BkwBtB,GAAA;IAEA,UAAA;MAGM,IAAA;MACA,KAAA,GAAQ,WAAA;MACR,QAAA,mBAA2B,UAAA;IAAA,GzBvgCzB;IyB0gCR,QAAA,4BzBxgCJ;IyB0gCI,QAAA;IAEA,gBAAA,wCzBtgCF;IyBwgCE,SAAA,YzB3/BF;IyB6/BE,YAAA,YzB3/BF;IyB6/BE,OAAA,WzB7/BF;IyB+/BE,UAAA;IAEA,WAAA,0HxBhhCJ;IwB2hCI,UAAA,6CxB3hCa;IwB6hCb,cAAA,0HxB7hC+B;IwBwiC/B,aAAA,6CxBniCF;IwBqiCE,gBAAA,0HxBriCK;IwBgjCL,eAAA,6CxB7iCJ;IwB+iCI,UAAA;IAWA,SAAA,6CxB1jCQ;IwB4jCR,kBAAA,0HxBzjCQ;IwBokCR,aAAA,0HxBpkCQ;IwB+kCR,YAAA;IAEA,mBAAA;IAEA,aAAA,mBAAgC,UAAA,EvBhmCxB;IuBkmCR,aAAA,WvBlmCkC;IuBomClC,gBAAA,WvBlmCJ;IuBomCI,kBAAA;IAEA,iBAAA,WvBtmC0B;IuBwmC1B,qBAAA,0HvBtmCC;IuBinCD,oBAAA,6CvB/mCgC;IuBinChC,KAAA,GAAQ,SAAA;EAAA;AAAA;;UAKK,gBAAA,SAAyB,oBAAA;;WAE/B,IAAA;;WAEA,KAAA;IvB1nCD,qDuB4nCN,WAAA,YvB5nCgC;IuB8nChC,aAAA,YvB7nCO;IuB+nCP,aAAA,YvB/nCiC;IuBioCjC,MAAA,YvBjoCiC;IuBmoCjC,UAAA;MAGM,IAAA;MACA,KAAA,GAAQ,WAAA;MACR,QAAA,mBAA2B,UAAA;IAAA,GvBhoCtB;IuBmoCX,SAAA,0HvBnoCW;IuB8oCX,WAAA,0HvB9oCF;IuBypCE,YAAA;EAAA;AAAA;;UAKa,gBAAA,SAAyB,oBAAA;;WAE/B,IAAA;EtB9qCX;EAAA,SsBgrCW,KAAA;gEAEP,QAAA,mBAA2B,UAAA,EtBlrCnB;IsBorCR,YAAA,YtBzqCQ;IsB2qCR,SAAA,WtBjqCQ;IsBmqCR,aAAA,6CtBjqCO;IsBmqCP,UAAA,0HtBlqC6B;IsB6qC7B,kBAAA,WtB3qCiB;IsB6qCjB,cAAA;MACE,QAAA;MACA,UAAA;IAAA,GtB5qC4B;IsB+qC9B,OAAA,2BtB/rCF;IsBisCE,YAAA,gDtB/rCF;IsBisCE,WAAA,yCtB3rCF;IsB6rCE,WAAA,0HtB5rCF;IsBusCE,cAAA,YtBtsCF;IsBwsCE,WAAA,yBtBvsCF;IsBysCE,gBAAA,WtBzsCU;IsB2sCV,GAAA,8CtBzsCD;IsB2sCC,eAAA,0HtB3sCiB;IsBstCjB,UAAA;MAGM,IAAA;MACA,KAAA,GAAQ,WAAA;MACR,QAAA,mBAA2B,UAAA;IAAA,GtBxtCH;IsB2tC9B,UAAA,GAAa,SAAA;EAAA;AAAA;;UAKA,gBAAA,SAAyB,oBAAA;;WAE/B,IAAA;;WAEA,KAAA;ItB7tCiD,8BsB+tCxD,YAAA,YtBltCE;IsBotCF,KAAA,WtBpsCiB;IsBssCjB,aAAA,6CtB3rCgB;IsB6rChB,UAAA,0HtBvrCoC;IsBksCpC,YAAA,0HtBvrCqC;IsBksCrC,cAAA,YtBlsCqC;IsBosCrC,YAAA,WtB7vCa;IsB+vCb,UAAA;MAGM,IAAA;MACA,KAAA,GAAQ,WAAA;MACR,QAAA,mBAA2B,UAAA;IAAA,GtB/vCnC;IsBkwCE,SAAA,0HtB3vCF;IsBswCE,WAAA,0HtBpwCE;IsB+wCF,OAAA,2BtBhwCO;IsBkwCP,YAAA,gDtBvvCF;IsByvCE,WAAA,yCtBzvCkC;IsB2vClC,WAAA;EAAA;AAAA;;UAca,eAAA,SAAwB,oBAAA;;WAE9B,IAAA;;WAEA,KAAA;ItB5vC8B,2DsB8vCrC,MAAA;MAAW,KAAA;MAAe,WAAA;MAAsB,IAAA;IAAA,KrBh2CxC;IqBk2CR,QAAA,yBrBj2CF;IqBm2CE,kBAAA,WrBh2CG;IqBk2CH,UAAA,YrB31Ce;IqB61Cf,QAAA,YrBz1CwD;IqB21CxD,aAAA,6CrB10CiC;IqB40CjC,UAAA,0HrB30CiB;IqBs1CjB,gBAAA,0HrB1zC6B;IqBq0C7B,WAAA,0HrBl4CgC;IqB64ChC,SAAA,gCrB54CF;IqB84CE,UAAA;MAGM,IAAA;MACA,KAAA,GAAQ,WAAA;MACR,QAAA,mBAA2B,UAAA;IAAA,GrBr4CpB;IqBw4Cb,OAAA,2BrBx4C0B;IqB04C1B,YAAA,gDrB14CwD;IqB44CxD,WAAA,yCrBp4Cc;IqBs4Cd,WAAA;EAAA;AAAA;;UAca,oBAAA,SAA6B,oBAAA;;WAEnC,IAAA;;WAEA,KAAA;IrBl3CP,8CqBo3CA,YAAA,YrBp3C6B;IqBs3C7B,KAAA,WrBr3CA;IqBu3CA,aAAA,6CrBp3CJ;IqBs3CI,UAAA,0HrBt3Ca;IqBi4Cb,UAAA,WrBj4CyB;IqBm4CzB,QAAA,WrBl4CI;IqBo4CJ,SAAA,wPrBl4CF;IqB05CE,UAAA,0HrBz5CF;IqBo6CE,YAAA,YrBj6CJ;IqBm6CI,UAAA,WrBn6CQ;IqBq6CR,QAAA,WrB/5Cc;IqBi6Cd,SAAA,wPrBj6CoD;IqBy7CpD,UAAA,0HrBx7CA;IqBm8CA,YAAA,YrBr8CM;IqBu8CN,UAAA,WrBv8CM;IqBy8CN,QAAA,WrB58CF;IqB88CE,SAAA,wPrB38CF;IqBm+CE,UAAA,0HrBl+CA;IqB6+CA,YAAA,YrB7+CwC;IqB++CxC,UAAA,WrB/+C6D;IqBi/C7D,QAAA,WrB/+CA;IqBi/CA,SAAA,wPrBj/CA;IqBygDA,UAAA;IAWA,YAAA,YpBj6CD;IoBm6CC,UAAA,WpBn4CC;IoBq4CD,QAAA,WpBl4CQ;IoBo4CR,SAAA,wPpBj4CO;IoBy5CP,UAAA,0HpBx5Ce;IoBm6Cf,YAAA,YpBn6CO;IoBq6CP,UAAA,WpB56CgB;IoB86ChB,QAAA,WpB96C0B;IoBg7C1B,SAAA,wPpB/6CK;IoBu8CL,UAAA,0HpBr8CQ;IoBg9CR,YAAA,YpB98CO;IoBg9CP,UAAA,WpB/8CO;IoBi9CP,QAAA,WpBh9CC;IoBk9CD,SAAA,wPpBl9Ce;IoB0+Cf,UAAA,0HpB1+Ce;IoBq/Cf,YAAA,YpBn/CC;IoBq/CD,UAAA,WpBp/CO;IoBs/CP,QAAA,WpBp/CC;IoBs/CD,SAAA,wPpBt/CO;IoB8gDP,UAAA,0HpB9gDO;IoByhDP,MAAA,qBpB5hDqB;IoB8hDrB,UAAA,gDpB7hDF;IoB+hDE,WAAA,YpB9hDF;IoBgiDE,YAAA,YpB/hDO;IoBiiDP,UAAA;MAGM,IAAA;MACA,KAAA,GAAQ,WAAA;MACR,QAAA,mBAA2B,UAAA;IAAA,GpBpiDhC;IoBuiDD,SAAA,0HpBriDO;IoBgjDP,OAAA,2BpB9iDC;IoBgjDD,YAAA,gDpBhjDO;IoBkjDP,WAAA,yCpBljDO;IoBojDP,WAAA;EAAA;AAAA;;UAca,oBAAA,SAA6B,oBAAA;;WAEnC,IAAA;;WAEA,KAAA;IpBtkDN,sDoBwkDD,iBAAA,mBAAoC,UAAA,EpBxkDrB;IoB0kDf,YAAA,YpB1kDe;IoB4kDf,SAAA,WpB1kDE;IoB4kDF,aAAA,6CpB3kDS;IoB6kDT,UAAA,0HpBvkDiB;IoBklDjB,gBAAA,YpBtkD+B;IoBwkD/B,gBAAA,YpB/jDI;IoBikDJ,gBAAA,YpBvjDM;IoByjDN,aAAA,YpBzjDM;IoB2jDN,SAAA,0HpBhmDF;IoB2mDE,WAAA,0HpB3mDS;IoBsnDT,cAAA,YpBhnDF;IoBknDE,WAAA,yBpBlnDI;IoBonDJ,gBAAA,WpB7mDkB;IoB+mDlB,OA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"}
|
package/dist/index.mjs
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { A as fluidOsApi, C as removeMapping, D as writeMappings, E as updateMapping, M as createFluidOsHeyApiClient, N as ApiError, O as atomicWriteFile, S as readMappings, T as resolveSlugToId, _ as diffAgainstSnapshot, a as buildNavigationIdToSlugMap, b as writeSnapshot, c as transformNavigation, d as transformScreen, f as transformTheme, g as computeFileHash, h as collectWidgetCapabilityGrants, i as buildIdToSlugMap, j as toFluidOsDynamicObject, k as createFluidOsClient, l as transformNavigationItems, m as collectSnapshotWidgetCapabilityGrants, o as buildThemeIdToSlugMap, p as buildSnapshot, r as validatePortalResource, s as deriveScreenSlug, t as pullCommand, u as transformProfile, v as readSnapshot, w as resolveIdToSlug, x as deriveSlug, y as selectLegacyNetworkWidgetGrants } from "./pull-
|
|
1
|
+
import { A as fluidOsApi, C as removeMapping, D as writeMappings, E as updateMapping, M as createFluidOsHeyApiClient, N as ApiError, O as atomicWriteFile, S as readMappings, T as resolveSlugToId, _ as diffAgainstSnapshot, a as buildNavigationIdToSlugMap, b as writeSnapshot, c as transformNavigation, d as transformScreen, f as transformTheme, g as computeFileHash, h as collectWidgetCapabilityGrants, i as buildIdToSlugMap, j as toFluidOsDynamicObject, k as createFluidOsClient, l as transformNavigationItems, m as collectSnapshotWidgetCapabilityGrants, o as buildThemeIdToSlugMap, p as buildSnapshot, r as validatePortalResource, s as deriveScreenSlug, t as pullCommand, u as transformProfile, v as readSnapshot, w as resolveIdToSlug, x as deriveSlug, y as selectLegacyNetworkWidgetGrants } from "./pull-DhGfFqnU.mjs";
|
|
2
2
|
import { l as fluidOsV0DefinitionGitCredentialCreate } from "./sdk.gen-VRGYiLVJ.mjs";
|
|
3
|
-
import { a as resolvePublishVersion, d as isRemoteDomWidgetPackageDescriptor, i as readCompanyWidgetPackages, n as preflightCompanyPackage, o as loadAndValidateWidgetPackage, r as readCompanyWidgetPackage, s as publishWidgetPackage, t as formatPackageKeyMismatch } from "./src-
|
|
3
|
+
import { a as resolvePublishVersion, d as isRemoteDomWidgetPackageDescriptor, i as readCompanyWidgetPackages, n as preflightCompanyPackage, o as loadAndValidateWidgetPackage, r as readCompanyWidgetPackage, s as publishWidgetPackage, t as formatPackageKeyMismatch } from "./src-BuSYN4Co.mjs";
|
|
4
4
|
import { Command } from "commander";
|
|
5
5
|
import chalk from "chalk";
|
|
6
6
|
import ora from "ora";
|
|
@@ -96,9 +96,9 @@ async function promptProjectConfig(projectName, options) {
|
|
|
96
96
|
//#endregion
|
|
97
97
|
//#region src/utils/file-system.ts
|
|
98
98
|
const _currentDir$1 = dirname(fileURLToPath(import.meta.url));
|
|
99
|
-
const EMBEDDED_PORTAL_SDK_VERSION = "0.1.
|
|
100
|
-
const EMBEDDED_CLI_CORE_VERSION = "0.1.
|
|
101
|
-
const EMBEDDED_CLI_PORTAL_VERSION = "0.1.
|
|
99
|
+
const EMBEDDED_PORTAL_SDK_VERSION = "0.1.488";
|
|
100
|
+
const EMBEDDED_CLI_CORE_VERSION = "0.1.20";
|
|
101
|
+
const EMBEDDED_CLI_PORTAL_VERSION = "0.1.82";
|
|
102
102
|
/**
|
|
103
103
|
* Find the package root by walking up from the current directory to the nearest package.json.
|
|
104
104
|
* Works whether running from dist/ (bundled) or src/utils/ (tsx dev mode).
|
|
@@ -1640,7 +1640,7 @@ async function autoPull(cwd) {
|
|
|
1640
1640
|
console.log(chalk.yellow("No portal/ directory found.") + " Attempting to pull content...");
|
|
1641
1641
|
console.log();
|
|
1642
1642
|
try {
|
|
1643
|
-
const { pullCommand } = await import("./pull-
|
|
1643
|
+
const { pullCommand } = await import("./pull-DhGfFqnU.mjs").then((n) => n.n);
|
|
1644
1644
|
await pullCommand.parseAsync([], { from: "user" });
|
|
1645
1645
|
return hasPortalContent(cwd);
|
|
1646
1646
|
} catch (err) {
|
|
@@ -1693,9 +1693,9 @@ const devCommand = new Command("dev").description("Start the development server
|
|
|
1693
1693
|
const port = Number.isFinite(parsedPort) ? parsedPort : 5173;
|
|
1694
1694
|
try {
|
|
1695
1695
|
const { createServer } = await import("vite");
|
|
1696
|
-
const { portalDevPlugin } = await import("./portal-dev-plugin-
|
|
1697
|
-
const { backendDevPlugin } = await import("./backend-dev-plugin-
|
|
1698
|
-
const { portalWidgetDevPlugin } = await import("./portal-widget-dev-plugin-
|
|
1696
|
+
const { portalDevPlugin } = await import("./portal-dev-plugin-C6TJcQmL.mjs").then((n) => n.n);
|
|
1697
|
+
const { backendDevPlugin } = await import("./backend-dev-plugin-C3gcb6LF.mjs").then((n) => n.n);
|
|
1698
|
+
const { portalWidgetDevPlugin } = await import("./portal-widget-dev-plugin-BFyun5DF.mjs").then((n) => n.n);
|
|
1699
1699
|
const server = await createServer({
|
|
1700
1700
|
configFile: viteConfigPath,
|
|
1701
1701
|
envPrefix: ["VITE_", "NEXT_PUBLIC_"],
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { P as __exportAll } from "./pull-
|
|
1
|
+
import { P as __exportAll } from "./pull-DhGfFqnU.mjs";
|
|
2
2
|
import { buildManifestFromLocalFiles } from "./build-manifest.mjs";
|
|
3
3
|
import { join, resolve, sep } from "node:path";
|
|
4
4
|
import { existsSync, readFileSync } from "node:fs";
|
|
@@ -228,4 +228,4 @@ function portalDevPlugin(options) {
|
|
|
228
228
|
//#endregion
|
|
229
229
|
export { portal_dev_plugin_exports as n, portalDevPlugin as t };
|
|
230
230
|
|
|
231
|
-
//# sourceMappingURL=portal-dev-plugin-
|
|
231
|
+
//# sourceMappingURL=portal-dev-plugin-C6TJcQmL.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"portal-dev-plugin-8U7Q5jlH.mjs","names":[],"sources":["../src/vite-plugin/portal-dev-plugin.ts"],"sourcesContent":["/**\n * Vite plugin for local portal content development.\n *\n * Intercepts the manifest API request and serves content assembled from the\n * local `portal/` directory. Watches portal files for changes and triggers a\n * full page reload.\n *\n * The manifest is intercepted on BOTH paths the SDK has used across versions\n * (`/api/app/manifest` since portal-sdk 0.1.4xx, `/api/fluid_os/definitions/\n * active` before that) so a newer SDK against an older-generation app — or\n * vice versa — still gets the local draft.\n */\n\nimport { join, resolve, sep } from \"node:path\";\nimport { existsSync, readFileSync } from \"node:fs\";\nimport { getAuthToken, getFluidApiBase } from \"@fluid-app/fluid-cli\";\nimport { buildManifestFromLocalFiles } from \"./build-manifest.js\";\n\n/** Options for the portal dev plugin. */\nexport interface PortalDevPluginOptions {\n portalDir?: string;\n /**\n * When true (default), dev-server requests are forced same-origin: the\n * plugin blanks `import.meta.env.VITE_API_URL` in serve mode and proxies\n * `/api` to the configured Fluid host instead. Without this, a `.env`\n * pointing VITE_API_URL at a remote API makes the SPA fetch its manifest\n * cross-origin — silently bypassing this plugin and rendering the remote\n * app instead of the local `portal/` draft. Set false to opt out and let\n * the SPA call the remote API directly.\n */\n sameOriginDev?: boolean;\n /**\n * Override the `/api` dev-proxy target. Defaults to VITE_API_URL from the\n * process env / .env files, then the authenticated company's\n * `<subdomain>.portal.fluid.app` tenant BFF, then https://api.fluid.app.\n */\n apiProxyTarget?: string;\n /**\n * Override tenant-target discovery. Primarily useful to keep embedded plugin\n * integrations and tests deterministic.\n */\n resolveTenantApiTarget?: () => Promise<string | undefined>;\n}\n\nconst DEBOUNCE_MS = 100;\n\n/** Manifest endpoints across SDK generations — all serve the local draft. */\nconst MANIFEST_PATHS = [\n \"/api/app/manifest\",\n \"/api/fluid_os/definitions/active\",\n];\n\nconst DEFAULT_API_URL = \"https://api.fluid.app\";\nconst TENANT_LOOKUP_TIMEOUT_MS = 3_000;\nconst tenantTargetPromises = new WeakMap<\n () => Promise<string | undefined>,\n Promise<string | undefined>\n>();\n\ninterface CompanyMeResponse {\n data?: {\n company?: {\n subdomain?: unknown;\n };\n };\n}\n\nexport interface TenantApiTargetDependencies {\n token?: string | null;\n apiBase?: string;\n fetchImpl?: typeof fetch;\n timeoutMs?: number;\n}\n\n/**\n * Resolve the portal tenant BFF for the CLI's project-aware Fluid profile.\n *\n * Portal member APIs do not live on api.fluid.app or `<tenant>.fluid.app`.\n * Their OpenAPI server is `<tenant>.portal.fluid.app`, and using either of\n * the former hosts produces a wall of unrelated 404s in otherwise-valid\n * local portals.\n */\nexport async function resolvePortalTenantApiTarget(\n dependencies: TenantApiTargetDependencies = {},\n): Promise<string | undefined> {\n const token =\n dependencies.token !== undefined ? dependencies.token : getAuthToken();\n if (!token) return undefined;\n\n const controller = new AbortController();\n const timer = setTimeout(\n () => controller.abort(),\n dependencies.timeoutMs ?? TENANT_LOOKUP_TIMEOUT_MS,\n );\n\n try {\n const response = await (dependencies.fetchImpl ?? fetch)(\n `${(dependencies.apiBase ?? getFluidApiBase()).replace(/\\/+$/, \"\")}/api/company/v1/companies/me`,\n {\n headers: {\n Authorization: `Bearer ${token}`,\n Accept: \"application/json\",\n },\n signal: controller.signal,\n },\n );\n if (!response.ok) return undefined;\n\n const body = (await response.json()) as CompanyMeResponse;\n const subdomain = body.data?.company?.subdomain;\n if (\n typeof subdomain !== \"string\" ||\n !/^[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?$/.test(subdomain)\n ) {\n return undefined;\n }\n\n return `https://${subdomain}.portal.fluid.app`;\n } catch {\n return undefined;\n } finally {\n clearTimeout(timer);\n }\n}\n\n/**\n * Fallback .env reader for VITE_API_URL, used only when vite's `loadEnv`\n * can't be imported (it's a declared dependency, so this is defensive — but\n * a broken install must degrade to \"wrong host\" rather than \"dev server\n * won't boot\"). Mirrors the basic lookup order: live env > .env.local >\n * .env. Unlike loadEnv it ignores .env.[mode] files and variable expansion.\n */\nfunction readViteApiUrlFallback(root: string): string | undefined {\n if (process.env.VITE_API_URL) return process.env.VITE_API_URL;\n if (process.env.NEXT_PUBLIC_API_BASE_URL) {\n return process.env.NEXT_PUBLIC_API_BASE_URL;\n }\n for (const file of [\".env.local\", \".env\"]) {\n const path = join(root, file);\n if (!existsSync(path)) continue;\n for (const line of readFileSync(path, \"utf8\").split(\"\\n\")) {\n // Quoted values stop at the closing `\"`; unquoted values stop before\n // an inline ` # comment` tail (dotenv semantics — a trailing comment\n // must not leak into the proxy target URL).\n const match =\n /^\\s*VITE_API_URL\\s*=\\s*(?:\"([^\"]*)\"|(.*?))\\s*(?:#.*)?$/.exec(line);\n const value = match?.[1] ?? match?.[2];\n if (value) return value;\n }\n }\n return undefined;\n}\n\nfunction storefrontSubdomainFromTarget(target: string): string | undefined {\n try {\n const hostname = new URL(target).hostname;\n const match = /^([a-z0-9](?:[a-z0-9-]*[a-z0-9])?)\\.fluid\\.app$/.exec(\n hostname,\n );\n const subdomain = match?.[1];\n if (\n !subdomain ||\n [\"admin\", \"api\", \"app\", \"docs\", \"portal\", \"upload\"].includes(subdomain)\n ) {\n return undefined;\n }\n return subdomain;\n } catch {\n return undefined;\n }\n}\n\n/**\n * Resolve VITE_API_URL the way vite itself would — `loadEnv` honors\n * .env.[mode], .env.[mode].local, envDir, and variable expansion, which the\n * fallback parser does not (a mode-specific staging API must not silently\n * fall back to production).\n */\nasync function resolveViteApiUrl(\n root: string,\n mode: string,\n envDir: string | undefined,\n): Promise<string | undefined> {\n try {\n const { loadEnv } = await import(\"vite\");\n const env = loadEnv(mode, envDir ?? root, [\"VITE_\", \"NEXT_PUBLIC_\"]);\n return (\n env.VITE_API_URL ||\n process.env.VITE_API_URL ||\n // Portals migrated from Next.js conventions configure the API host as\n // NEXT_PUBLIC_API_BASE_URL — honored by `fluid portal dev` since it\n // was introduced, so it stays a recognized source here.\n env.NEXT_PUBLIC_API_BASE_URL ||\n process.env.NEXT_PUBLIC_API_BASE_URL ||\n undefined\n );\n } catch {\n return readViteApiUrlFallback(root);\n }\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function portalDevPlugin(options?: PortalDevPluginOptions): any {\n let portalDir: string;\n let cachedManifest: string | null = null;\n let buildInFlight: Promise<string> | null = null;\n /** Bumped on every watched file change. A build carries the value it\n * started under; if it no longer matches when the build resolves, the\n * build read pre-edit state and must not be cached. */\n let manifestGeneration = 0;\n const resolveTenantTarget =\n options?.resolveTenantApiTarget ?? resolvePortalTenantApiTarget;\n\n return {\n name: \"fluid-portal-dev\",\n enforce: \"pre\" as const,\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n async config(config: any, env: any) {\n if (env?.command !== \"serve\" || options?.sameOriginDev === false) {\n return {};\n }\n\n const root: string = config.root ?? process.cwd();\n const appDefinesProxy = config.server?.proxy?.[\"/api\"] !== undefined;\n const configuredTarget =\n options?.apiProxyTarget || appDefinesProxy\n ? undefined\n : await resolveViteApiUrl(\n root,\n env?.mode ?? \"development\",\n config.envDir,\n );\n const tenantTarget =\n options?.apiProxyTarget || appDefinesProxy || configuredTarget\n ? undefined\n : await (() => {\n const existing = tenantTargetPromises.get(resolveTenantTarget);\n if (existing) return existing;\n\n const pending = resolveTenantTarget();\n tenantTargetPromises.set(resolveTenantTarget, pending);\n return pending;\n })();\n const target =\n options?.apiProxyTarget ??\n configuredTarget ??\n tenantTarget ??\n DEFAULT_API_URL;\n const storefrontSubdomain = storefrontSubdomainFromTarget(target);\n\n if (tenantTarget) {\n console.log(`[fluid-portal-dev] Tenant API proxy: ${tenantTarget}`);\n console.log(\n \"[fluid-portal-dev] Member data still requires a portal handoff session; localhost requests may return 401.\",\n );\n } else if (\n !options?.apiProxyTarget &&\n !appDefinesProxy &&\n !configuredTarget\n ) {\n console.warn(\n `[fluid-portal-dev] Could not resolve the company tenant API; falling back to ${DEFAULT_API_URL}. ` +\n \"Built-in member screens may not load. Set VITE_API_URL explicitly or sign in with the project's Fluid profile.\",\n );\n } else if (storefrontSubdomain) {\n console.warn(\n `[fluid-portal-dev] ${target} is the storefront host, not the Portal tenant BFF. ` +\n `Built-in member APIs live at https://${storefrontSubdomain}.portal.fluid.app; remove the override to let the CLI resolve it.`,\n );\n }\n\n // Vite merges a plugin's returned config OVER the user config, so an\n // app's own explicit define / /api proxy is only preserved by checking\n // for it and yielding here. BOTH API-host env vars must be blanked:\n // dev.ts's envPrefix exposes NEXT_PUBLIC_API_BASE_URL to the SPA too,\n // so leaving it defined would recreate the exact cross-origin bypass\n // this hook exists to prevent, just for Next.js-migrated portals.\n const defines: Record<string, string> = {};\n for (const key of [\n \"import.meta.env.VITE_API_URL\",\n \"import.meta.env.NEXT_PUBLIC_API_BASE_URL\",\n ]) {\n if (config.define?.[key] === undefined) {\n defines[key] = JSON.stringify(\"\");\n }\n }\n const proxy = !appDefinesProxy\n ? { \"/api\": { target, changeOrigin: true } }\n : {};\n\n return {\n define: defines,\n server: { proxy },\n };\n },\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n configResolved(config: any) {\n const root: string = config.root ?? process.cwd();\n portalDir = options?.portalDir\n ? resolve(root, options.portalDir)\n : join(root, \"portal\");\n },\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n configureServer(server: any) {\n // Idempotency: `fluid portal dev` injects this plugin, and a portal's\n // own vite.config may also wire it. Only the first instance registers\n // the watcher + middleware so we don't double-reload or double-serve.\n if (server.__fluidPortalDevWired) return;\n server.__fluidPortalDevWired = true;\n\n const watchDir = portalDir;\n\n // Registered unconditionally: `portal/` need not exist when the server\n // boots. `fluid portal dev --skip-pull` is exactly that case, and the\n // manifest middleware below re-checks existence per request, so it\n // starts serving local content the moment the directory appears.\n // Gating the watcher on startup existence left that flow serving the\n // very first build forever — no invalidation, no reload, no error.\n server.watcher.add(watchDir);\n\n let reloadTimer: ReturnType<typeof setTimeout> | null = null;\n\n const watchDirPrefix = watchDir.endsWith(sep) ? watchDir : watchDir + sep;\n\n const onFileChange = (filePath: string) => {\n // A separator boundary is required. A bare prefix test also matches\n // siblings that merely start with the same characters, so editing\n // `<root>/portal-backup/x.json` or `<root>/portal.config.ts` used to\n // drop the manifest cache and force a full page reload.\n if (filePath !== watchDir && !filePath.startsWith(watchDirPrefix)) {\n return;\n }\n\n cachedManifest = null;\n buildInFlight = null;\n manifestGeneration += 1;\n\n console.log(\n `[fluid-portal-dev] File changed: ${filePath.replace(watchDirPrefix, \"\")}`,\n );\n\n if (reloadTimer) clearTimeout(reloadTimer);\n reloadTimer = setTimeout(() => {\n reloadTimer = null;\n server.ws.send({ type: \"full-reload\", path: \"*\" });\n }, DEBOUNCE_MS);\n };\n\n server.watcher.on(\"change\", onFileChange);\n server.watcher.on(\"add\", onFileChange);\n server.watcher.on(\"unlink\", onFileChange);\n\n // ── Middleware to intercept manifest requests ───────────────────\n // Every MANIFEST_PATHS route returns the SAME `{ manifest }` payload:\n // the portal-tenant BFF route the current SDK runtime fetches\n // (useFluidApp → app_manifest_show) and the legacy FluidOS route, so\n // the local portal/ draft feeds the running app regardless of which\n // runtime generation it uses (the SDK adapter reads\n // `response.manifest`, matching buildManifestFromLocalFiles' output).\n server.middlewares.use(\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (req: any, res: any, next: () => void) => {\n const url: string | undefined = req.url;\n\n if (!url || !MANIFEST_PATHS.some((path) => url.includes(path))) {\n next();\n return;\n }\n\n (async () => {\n try {\n if (!existsSync(portalDir)) {\n // Fall through to the Vite proxy so requests reach the real\n // API when local portal content is unavailable (e.g. --skip-pull).\n next();\n return;\n }\n\n let manifestJson = cachedManifest;\n if (manifestJson == null) {\n if (!buildInFlight) {\n // Stamp the build with the generation it was started\n // under. onFileChange bumps that counter, so a build\n // whose inputs changed underneath it can be recognized\n // when it finally resolves.\n const generation = manifestGeneration;\n buildInFlight = buildManifestFromLocalFiles(portalDir)\n .then((m) => {\n const json = JSON.stringify(m);\n // Only a build still current may populate the\n // cache. Caching a superseded one pinned the\n // pre-edit snapshot permanently: a non-null cache\n // means no later request ever rebuilds, so the\n // edit stayed invisible until some unrelated file\n // happened to change outside a build window.\n if (generation === manifestGeneration) {\n cachedManifest = json;\n buildInFlight = null;\n }\n return json;\n })\n .catch((err) => {\n // Same guard: a superseded build must not clear a\n // newer one's handle.\n if (generation === manifestGeneration) {\n buildInFlight = null; // allow retry on next request\n }\n throw err;\n });\n }\n // This response serves what was built for it, which is\n // correct even when superseded — the request predates\n // the edit. The point is that the NEXT one rebuilds.\n manifestJson = await buildInFlight;\n }\n\n res.writeHead(200, {\n \"Content-Type\": \"application/json\",\n \"X-Portal-Dev-Mode\": \"true\",\n \"Cache-Control\": \"no-store\",\n });\n res.end(manifestJson);\n } catch (err) {\n console.error(\"[fluid-portal-dev] Error building manifest:\", err);\n res.writeHead(500, { \"Content-Type\": \"application/json\" });\n res.end(\n JSON.stringify({\n error:\n err instanceof Error\n ? err.message\n : \"Failed to build manifest from local files\",\n }),\n );\n }\n })();\n },\n );\n },\n };\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"portal-dev-plugin-C6TJcQmL.mjs","names":[],"sources":["../src/vite-plugin/portal-dev-plugin.ts"],"sourcesContent":["/**\n * Vite plugin for local portal content development.\n *\n * Intercepts the manifest API request and serves content assembled from the\n * local `portal/` directory. Watches portal files for changes and triggers a\n * full page reload.\n *\n * The manifest is intercepted on BOTH paths the SDK has used across versions\n * (`/api/app/manifest` since portal-sdk 0.1.4xx, `/api/fluid_os/definitions/\n * active` before that) so a newer SDK against an older-generation app — or\n * vice versa — still gets the local draft.\n */\n\nimport { join, resolve, sep } from \"node:path\";\nimport { existsSync, readFileSync } from \"node:fs\";\nimport { getAuthToken, getFluidApiBase } from \"@fluid-app/fluid-cli\";\nimport { buildManifestFromLocalFiles } from \"./build-manifest.js\";\n\n/** Options for the portal dev plugin. */\nexport interface PortalDevPluginOptions {\n portalDir?: string;\n /**\n * When true (default), dev-server requests are forced same-origin: the\n * plugin blanks `import.meta.env.VITE_API_URL` in serve mode and proxies\n * `/api` to the configured Fluid host instead. Without this, a `.env`\n * pointing VITE_API_URL at a remote API makes the SPA fetch its manifest\n * cross-origin — silently bypassing this plugin and rendering the remote\n * app instead of the local `portal/` draft. Set false to opt out and let\n * the SPA call the remote API directly.\n */\n sameOriginDev?: boolean;\n /**\n * Override the `/api` dev-proxy target. Defaults to VITE_API_URL from the\n * process env / .env files, then the authenticated company's\n * `<subdomain>.portal.fluid.app` tenant BFF, then https://api.fluid.app.\n */\n apiProxyTarget?: string;\n /**\n * Override tenant-target discovery. Primarily useful to keep embedded plugin\n * integrations and tests deterministic.\n */\n resolveTenantApiTarget?: () => Promise<string | undefined>;\n}\n\nconst DEBOUNCE_MS = 100;\n\n/** Manifest endpoints across SDK generations — all serve the local draft. */\nconst MANIFEST_PATHS = [\n \"/api/app/manifest\",\n \"/api/fluid_os/definitions/active\",\n];\n\nconst DEFAULT_API_URL = \"https://api.fluid.app\";\nconst TENANT_LOOKUP_TIMEOUT_MS = 3_000;\nconst tenantTargetPromises = new WeakMap<\n () => Promise<string | undefined>,\n Promise<string | undefined>\n>();\n\ninterface CompanyMeResponse {\n data?: {\n company?: {\n subdomain?: unknown;\n };\n };\n}\n\nexport interface TenantApiTargetDependencies {\n token?: string | null;\n apiBase?: string;\n fetchImpl?: typeof fetch;\n timeoutMs?: number;\n}\n\n/**\n * Resolve the portal tenant BFF for the CLI's project-aware Fluid profile.\n *\n * Portal member APIs do not live on api.fluid.app or `<tenant>.fluid.app`.\n * Their OpenAPI server is `<tenant>.portal.fluid.app`, and using either of\n * the former hosts produces a wall of unrelated 404s in otherwise-valid\n * local portals.\n */\nexport async function resolvePortalTenantApiTarget(\n dependencies: TenantApiTargetDependencies = {},\n): Promise<string | undefined> {\n const token =\n dependencies.token !== undefined ? dependencies.token : getAuthToken();\n if (!token) return undefined;\n\n const controller = new AbortController();\n const timer = setTimeout(\n () => controller.abort(),\n dependencies.timeoutMs ?? TENANT_LOOKUP_TIMEOUT_MS,\n );\n\n try {\n const response = await (dependencies.fetchImpl ?? fetch)(\n `${(dependencies.apiBase ?? getFluidApiBase()).replace(/\\/+$/, \"\")}/api/company/v1/companies/me`,\n {\n headers: {\n Authorization: `Bearer ${token}`,\n Accept: \"application/json\",\n },\n signal: controller.signal,\n },\n );\n if (!response.ok) return undefined;\n\n const body = (await response.json()) as CompanyMeResponse;\n const subdomain = body.data?.company?.subdomain;\n if (\n typeof subdomain !== \"string\" ||\n !/^[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?$/.test(subdomain)\n ) {\n return undefined;\n }\n\n return `https://${subdomain}.portal.fluid.app`;\n } catch {\n return undefined;\n } finally {\n clearTimeout(timer);\n }\n}\n\n/**\n * Fallback .env reader for VITE_API_URL, used only when vite's `loadEnv`\n * can't be imported (it's a declared dependency, so this is defensive — but\n * a broken install must degrade to \"wrong host\" rather than \"dev server\n * won't boot\"). Mirrors the basic lookup order: live env > .env.local >\n * .env. Unlike loadEnv it ignores .env.[mode] files and variable expansion.\n */\nfunction readViteApiUrlFallback(root: string): string | undefined {\n if (process.env.VITE_API_URL) return process.env.VITE_API_URL;\n if (process.env.NEXT_PUBLIC_API_BASE_URL) {\n return process.env.NEXT_PUBLIC_API_BASE_URL;\n }\n for (const file of [\".env.local\", \".env\"]) {\n const path = join(root, file);\n if (!existsSync(path)) continue;\n for (const line of readFileSync(path, \"utf8\").split(\"\\n\")) {\n // Quoted values stop at the closing `\"`; unquoted values stop before\n // an inline ` # comment` tail (dotenv semantics — a trailing comment\n // must not leak into the proxy target URL).\n const match =\n /^\\s*VITE_API_URL\\s*=\\s*(?:\"([^\"]*)\"|(.*?))\\s*(?:#.*)?$/.exec(line);\n const value = match?.[1] ?? match?.[2];\n if (value) return value;\n }\n }\n return undefined;\n}\n\nfunction storefrontSubdomainFromTarget(target: string): string | undefined {\n try {\n const hostname = new URL(target).hostname;\n const match = /^([a-z0-9](?:[a-z0-9-]*[a-z0-9])?)\\.fluid\\.app$/.exec(\n hostname,\n );\n const subdomain = match?.[1];\n if (\n !subdomain ||\n [\"admin\", \"api\", \"app\", \"docs\", \"portal\", \"upload\"].includes(subdomain)\n ) {\n return undefined;\n }\n return subdomain;\n } catch {\n return undefined;\n }\n}\n\n/**\n * Resolve VITE_API_URL the way vite itself would — `loadEnv` honors\n * .env.[mode], .env.[mode].local, envDir, and variable expansion, which the\n * fallback parser does not (a mode-specific staging API must not silently\n * fall back to production).\n */\nasync function resolveViteApiUrl(\n root: string,\n mode: string,\n envDir: string | undefined,\n): Promise<string | undefined> {\n try {\n const { loadEnv } = await import(\"vite\");\n const env = loadEnv(mode, envDir ?? root, [\"VITE_\", \"NEXT_PUBLIC_\"]);\n return (\n env.VITE_API_URL ||\n process.env.VITE_API_URL ||\n // Portals migrated from Next.js conventions configure the API host as\n // NEXT_PUBLIC_API_BASE_URL — honored by `fluid portal dev` since it\n // was introduced, so it stays a recognized source here.\n env.NEXT_PUBLIC_API_BASE_URL ||\n process.env.NEXT_PUBLIC_API_BASE_URL ||\n undefined\n );\n } catch {\n return readViteApiUrlFallback(root);\n }\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function portalDevPlugin(options?: PortalDevPluginOptions): any {\n let portalDir: string;\n let cachedManifest: string | null = null;\n let buildInFlight: Promise<string> | null = null;\n /** Bumped on every watched file change. A build carries the value it\n * started under; if it no longer matches when the build resolves, the\n * build read pre-edit state and must not be cached. */\n let manifestGeneration = 0;\n const resolveTenantTarget =\n options?.resolveTenantApiTarget ?? resolvePortalTenantApiTarget;\n\n return {\n name: \"fluid-portal-dev\",\n enforce: \"pre\" as const,\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n async config(config: any, env: any) {\n if (env?.command !== \"serve\" || options?.sameOriginDev === false) {\n return {};\n }\n\n const root: string = config.root ?? process.cwd();\n const appDefinesProxy = config.server?.proxy?.[\"/api\"] !== undefined;\n const configuredTarget =\n options?.apiProxyTarget || appDefinesProxy\n ? undefined\n : await resolveViteApiUrl(\n root,\n env?.mode ?? \"development\",\n config.envDir,\n );\n const tenantTarget =\n options?.apiProxyTarget || appDefinesProxy || configuredTarget\n ? undefined\n : await (() => {\n const existing = tenantTargetPromises.get(resolveTenantTarget);\n if (existing) return existing;\n\n const pending = resolveTenantTarget();\n tenantTargetPromises.set(resolveTenantTarget, pending);\n return pending;\n })();\n const target =\n options?.apiProxyTarget ??\n configuredTarget ??\n tenantTarget ??\n DEFAULT_API_URL;\n const storefrontSubdomain = storefrontSubdomainFromTarget(target);\n\n if (tenantTarget) {\n console.log(`[fluid-portal-dev] Tenant API proxy: ${tenantTarget}`);\n console.log(\n \"[fluid-portal-dev] Member data still requires a portal handoff session; localhost requests may return 401.\",\n );\n } else if (\n !options?.apiProxyTarget &&\n !appDefinesProxy &&\n !configuredTarget\n ) {\n console.warn(\n `[fluid-portal-dev] Could not resolve the company tenant API; falling back to ${DEFAULT_API_URL}. ` +\n \"Built-in member screens may not load. Set VITE_API_URL explicitly or sign in with the project's Fluid profile.\",\n );\n } else if (storefrontSubdomain) {\n console.warn(\n `[fluid-portal-dev] ${target} is the storefront host, not the Portal tenant BFF. ` +\n `Built-in member APIs live at https://${storefrontSubdomain}.portal.fluid.app; remove the override to let the CLI resolve it.`,\n );\n }\n\n // Vite merges a plugin's returned config OVER the user config, so an\n // app's own explicit define / /api proxy is only preserved by checking\n // for it and yielding here. BOTH API-host env vars must be blanked:\n // dev.ts's envPrefix exposes NEXT_PUBLIC_API_BASE_URL to the SPA too,\n // so leaving it defined would recreate the exact cross-origin bypass\n // this hook exists to prevent, just for Next.js-migrated portals.\n const defines: Record<string, string> = {};\n for (const key of [\n \"import.meta.env.VITE_API_URL\",\n \"import.meta.env.NEXT_PUBLIC_API_BASE_URL\",\n ]) {\n if (config.define?.[key] === undefined) {\n defines[key] = JSON.stringify(\"\");\n }\n }\n const proxy = !appDefinesProxy\n ? { \"/api\": { target, changeOrigin: true } }\n : {};\n\n return {\n define: defines,\n server: { proxy },\n };\n },\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n configResolved(config: any) {\n const root: string = config.root ?? process.cwd();\n portalDir = options?.portalDir\n ? resolve(root, options.portalDir)\n : join(root, \"portal\");\n },\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n configureServer(server: any) {\n // Idempotency: `fluid portal dev` injects this plugin, and a portal's\n // own vite.config may also wire it. Only the first instance registers\n // the watcher + middleware so we don't double-reload or double-serve.\n if (server.__fluidPortalDevWired) return;\n server.__fluidPortalDevWired = true;\n\n const watchDir = portalDir;\n\n // Registered unconditionally: `portal/` need not exist when the server\n // boots. `fluid portal dev --skip-pull` is exactly that case, and the\n // manifest middleware below re-checks existence per request, so it\n // starts serving local content the moment the directory appears.\n // Gating the watcher on startup existence left that flow serving the\n // very first build forever — no invalidation, no reload, no error.\n server.watcher.add(watchDir);\n\n let reloadTimer: ReturnType<typeof setTimeout> | null = null;\n\n const watchDirPrefix = watchDir.endsWith(sep) ? watchDir : watchDir + sep;\n\n const onFileChange = (filePath: string) => {\n // A separator boundary is required. A bare prefix test also matches\n // siblings that merely start with the same characters, so editing\n // `<root>/portal-backup/x.json` or `<root>/portal.config.ts` used to\n // drop the manifest cache and force a full page reload.\n if (filePath !== watchDir && !filePath.startsWith(watchDirPrefix)) {\n return;\n }\n\n cachedManifest = null;\n buildInFlight = null;\n manifestGeneration += 1;\n\n console.log(\n `[fluid-portal-dev] File changed: ${filePath.replace(watchDirPrefix, \"\")}`,\n );\n\n if (reloadTimer) clearTimeout(reloadTimer);\n reloadTimer = setTimeout(() => {\n reloadTimer = null;\n server.ws.send({ type: \"full-reload\", path: \"*\" });\n }, DEBOUNCE_MS);\n };\n\n server.watcher.on(\"change\", onFileChange);\n server.watcher.on(\"add\", onFileChange);\n server.watcher.on(\"unlink\", onFileChange);\n\n // ── Middleware to intercept manifest requests ───────────────────\n // Every MANIFEST_PATHS route returns the SAME `{ manifest }` payload:\n // the portal-tenant BFF route the current SDK runtime fetches\n // (useFluidApp → app_manifest_show) and the legacy FluidOS route, so\n // the local portal/ draft feeds the running app regardless of which\n // runtime generation it uses (the SDK adapter reads\n // `response.manifest`, matching buildManifestFromLocalFiles' output).\n server.middlewares.use(\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (req: any, res: any, next: () => void) => {\n const url: string | undefined = req.url;\n\n if (!url || !MANIFEST_PATHS.some((path) => url.includes(path))) {\n next();\n return;\n }\n\n (async () => {\n try {\n if (!existsSync(portalDir)) {\n // Fall through to the Vite proxy so requests reach the real\n // API when local portal content is unavailable (e.g. --skip-pull).\n next();\n return;\n }\n\n let manifestJson = cachedManifest;\n if (manifestJson == null) {\n if (!buildInFlight) {\n // Stamp the build with the generation it was started\n // under. onFileChange bumps that counter, so a build\n // whose inputs changed underneath it can be recognized\n // when it finally resolves.\n const generation = manifestGeneration;\n buildInFlight = buildManifestFromLocalFiles(portalDir)\n .then((m) => {\n const json = JSON.stringify(m);\n // Only a build still current may populate the\n // cache. Caching a superseded one pinned the\n // pre-edit snapshot permanently: a non-null cache\n // means no later request ever rebuilds, so the\n // edit stayed invisible until some unrelated file\n // happened to change outside a build window.\n if (generation === manifestGeneration) {\n cachedManifest = json;\n buildInFlight = null;\n }\n return json;\n })\n .catch((err) => {\n // Same guard: a superseded build must not clear a\n // newer one's handle.\n if (generation === manifestGeneration) {\n buildInFlight = null; // allow retry on next request\n }\n throw err;\n });\n }\n // This response serves what was built for it, which is\n // correct even when superseded — the request predates\n // the edit. The point is that the NEXT one rebuilds.\n manifestJson = await buildInFlight;\n }\n\n res.writeHead(200, {\n \"Content-Type\": \"application/json\",\n \"X-Portal-Dev-Mode\": \"true\",\n \"Cache-Control\": \"no-store\",\n });\n res.end(manifestJson);\n } catch (err) {\n console.error(\"[fluid-portal-dev] Error building manifest:\", err);\n res.writeHead(500, { \"Content-Type\": \"application/json\" });\n res.end(\n JSON.stringify({\n error:\n err instanceof Error\n ? err.message\n : \"Failed to build manifest from local files\",\n }),\n );\n }\n })();\n },\n );\n },\n };\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AA4CA,MAAM,cAAc;;AAGpB,MAAM,iBAAiB,CACrB,qBACA,mCACD;AAED,MAAM,kBAAkB;AACxB,MAAM,2BAA2B;AACjC,MAAM,uCAAuB,IAAI,SAG9B;;;;;;;;;AAyBH,eAAsB,6BACpB,eAA4C,EAAE,EACjB;CAC7B,MAAM,QACJ,aAAa,UAAU,KAAA,IAAY,aAAa,QAAQ,cAAc;AACxE,KAAI,CAAC,MAAO,QAAO,KAAA;CAEnB,MAAM,aAAa,IAAI,iBAAiB;CACxC,MAAM,QAAQ,iBACN,WAAW,OAAO,EACxB,aAAa,aAAa,yBAC3B;AAED,KAAI;EACF,MAAM,WAAW,OAAO,aAAa,aAAa,OAChD,IAAI,aAAa,WAAW,iBAAiB,EAAE,QAAQ,QAAQ,GAAG,CAAC,+BACnE;GACE,SAAS;IACP,eAAe,UAAU;IACzB,QAAQ;IACT;GACD,QAAQ,WAAW;GACpB,CACF;AACD,MAAI,CAAC,SAAS,GAAI,QAAO,KAAA;EAGzB,MAAM,aADQ,MAAM,SAAS,MAAM,EACZ,MAAM,SAAS;AACtC,MACE,OAAO,cAAc,YACrB,CAAC,yCAAyC,KAAK,UAAU,CAEzD;AAGF,SAAO,WAAW,UAAU;SACtB;AACN;WACQ;AACR,eAAa,MAAM;;;;;;;;;;AAWvB,SAAS,uBAAuB,MAAkC;AAChE,KAAI,QAAQ,IAAI,aAAc,QAAO,QAAQ,IAAI;AACjD,KAAI,QAAQ,IAAI,yBACd,QAAO,QAAQ,IAAI;AAErB,MAAK,MAAM,QAAQ,CAAC,cAAc,OAAO,EAAE;EACzC,MAAM,OAAO,KAAK,MAAM,KAAK;AAC7B,MAAI,CAAC,WAAW,KAAK,CAAE;AACvB,OAAK,MAAM,QAAQ,aAAa,MAAM,OAAO,CAAC,MAAM,KAAK,EAAE;GAIzD,MAAM,QACJ,yDAAyD,KAAK,KAAK;GACrE,MAAM,QAAQ,QAAQ,MAAM,QAAQ;AACpC,OAAI,MAAO,QAAO;;;;AAMxB,SAAS,8BAA8B,QAAoC;AACzE,KAAI;EACF,MAAM,WAAW,IAAI,IAAI,OAAO,CAAC;EAIjC,MAAM,YAHQ,kDAAkD,KAC9D,SACD,GACyB;AAC1B,MACE,CAAC,aACD;GAAC;GAAS;GAAO;GAAO;GAAQ;GAAU;GAAS,CAAC,SAAS,UAAU,CAEvE;AAEF,SAAO;SACD;AACN;;;;;;;;;AAUJ,eAAe,kBACb,MACA,MACA,QAC6B;AAC7B,KAAI;EACF,MAAM,EAAE,YAAY,MAAM,OAAO;EACjC,MAAM,MAAM,QAAQ,MAAM,UAAU,MAAM,CAAC,SAAS,eAAe,CAAC;AACpE,SACE,IAAI,gBACJ,QAAQ,IAAI,gBAIZ,IAAI,4BACJ,QAAQ,IAAI,4BACZ,KAAA;SAEI;AACN,SAAO,uBAAuB,KAAK;;;AAKvC,SAAgB,gBAAgB,SAAuC;CACrE,IAAI;CACJ,IAAI,iBAAgC;CACpC,IAAI,gBAAwC;;;;CAI5C,IAAI,qBAAqB;CACzB,MAAM,sBACJ,SAAS,0BAA0B;AAErC,QAAO;EACL,MAAM;EACN,SAAS;EAGT,MAAM,OAAO,QAAa,KAAU;AAClC,OAAI,KAAK,YAAY,WAAW,SAAS,kBAAkB,MACzD,QAAO,EAAE;GAGX,MAAM,OAAe,OAAO,QAAQ,QAAQ,KAAK;GACjD,MAAM,kBAAkB,OAAO,QAAQ,QAAQ,YAAY,KAAA;GAC3D,MAAM,mBACJ,SAAS,kBAAkB,kBACvB,KAAA,IACA,MAAM,kBACJ,MACA,KAAK,QAAQ,eACb,OAAO,OACR;GACP,MAAM,eACJ,SAAS,kBAAkB,mBAAmB,mBAC1C,KAAA,IACA,aAAa;IACX,MAAM,WAAW,qBAAqB,IAAI,oBAAoB;AAC9D,QAAI,SAAU,QAAO;IAErB,MAAM,UAAU,qBAAqB;AACrC,yBAAqB,IAAI,qBAAqB,QAAQ;AACtD,WAAO;OACL;GACV,MAAM,SACJ,SAAS,kBACT,oBACA,gBACA;GACF,MAAM,sBAAsB,8BAA8B,OAAO;AAEjE,OAAI,cAAc;AAChB,YAAQ,IAAI,wCAAwC,eAAe;AACnE,YAAQ,IACN,6GACD;cAED,CAAC,SAAS,kBACV,CAAC,mBACD,CAAC,iBAED,SAAQ,KACN,gFAAgF,gBAAgB,kHAEjG;YACQ,oBACT,SAAQ,KACN,sBAAsB,OAAO,2FACa,oBAAoB,mEAC/D;GASH,MAAM,UAAkC,EAAE;AAC1C,QAAK,MAAM,OAAO,CAChB,gCACA,2CACD,CACC,KAAI,OAAO,SAAS,SAAS,KAAA,EAC3B,SAAQ,OAAO,KAAK,UAAU,GAAG;AAOrC,UAAO;IACL,QAAQ;IACR,QAAQ,EAAE,OANE,CAAC,kBACX,EAAE,QAAQ;KAAE;KAAQ,cAAc;KAAM,EAAE,GAC1C,EAAE,EAIa;IAClB;;EAIH,eAAe,QAAa;GAC1B,MAAM,OAAe,OAAO,QAAQ,QAAQ,KAAK;AACjD,eAAY,SAAS,YACjB,QAAQ,MAAM,QAAQ,UAAU,GAChC,KAAK,MAAM,SAAS;;EAI1B,gBAAgB,QAAa;AAI3B,OAAI,OAAO,sBAAuB;AAClC,UAAO,wBAAwB;GAE/B,MAAM,WAAW;AAQjB,UAAO,QAAQ,IAAI,SAAS;GAE5B,IAAI,cAAoD;GAExD,MAAM,iBAAiB,SAAS,SAAS,IAAI,GAAG,WAAW,WAAW;GAEtE,MAAM,gBAAgB,aAAqB;AAKzC,QAAI,aAAa,YAAY,CAAC,SAAS,WAAW,eAAe,CAC/D;AAGF,qBAAiB;AACjB,oBAAgB;AAChB,0BAAsB;AAEtB,YAAQ,IACN,oCAAoC,SAAS,QAAQ,gBAAgB,GAAG,GACzE;AAED,QAAI,YAAa,cAAa,YAAY;AAC1C,kBAAc,iBAAiB;AAC7B,mBAAc;AACd,YAAO,GAAG,KAAK;MAAE,MAAM;MAAe,MAAM;MAAK,CAAC;OACjD,YAAY;;AAGjB,UAAO,QAAQ,GAAG,UAAU,aAAa;AACzC,UAAO,QAAQ,GAAG,OAAO,aAAa;AACtC,UAAO,QAAQ,GAAG,UAAU,aAAa;AASzC,UAAO,YAAY,KAEhB,KAAU,KAAU,SAAqB;IACxC,MAAM,MAA0B,IAAI;AAEpC,QAAI,CAAC,OAAO,CAAC,eAAe,MAAM,SAAS,IAAI,SAAS,KAAK,CAAC,EAAE;AAC9D,WAAM;AACN;;AAGF,KAAC,YAAY;AACX,SAAI;AACF,UAAI,CAAC,WAAW,UAAU,EAAE;AAG1B,aAAM;AACN;;MAGF,IAAI,eAAe;AACnB,UAAI,gBAAgB,MAAM;AACxB,WAAI,CAAC,eAAe;QAKlB,MAAM,aAAa;AACnB,wBAAgB,4BAA4B,UAAU,CACnD,MAAM,MAAM;SACX,MAAM,OAAO,KAAK,UAAU,EAAE;AAO9B,aAAI,eAAe,oBAAoB;AACrC,2BAAiB;AACjB,0BAAgB;;AAElB,gBAAO;UACP,CACD,OAAO,QAAQ;AAGd,aAAI,eAAe,mBACjB,iBAAgB;AAElB,eAAM;UACN;;AAKN,sBAAe,MAAM;;AAGvB,UAAI,UAAU,KAAK;OACjB,gBAAgB;OAChB,qBAAqB;OACrB,iBAAiB;OAClB,CAAC;AACF,UAAI,IAAI,aAAa;cACd,KAAK;AACZ,cAAQ,MAAM,+CAA+C,IAAI;AACjE,UAAI,UAAU,KAAK,EAAE,gBAAgB,oBAAoB,CAAC;AAC1D,UAAI,IACF,KAAK,UAAU,EACb,OACE,eAAe,QACX,IAAI,UACJ,6CACP,CAAC,CACH;;QAED;KAEP;;EAEJ"}
|
package/dist/{portal-widget-dev-plugin-D8k8emMl.mjs → portal-widget-dev-plugin-BFyun5DF.mjs}
RENAMED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { P as __exportAll } from "./pull-
|
|
2
|
-
import { c as fluidWidgetDevPlugin, l as handleOptions, u as setCorsHeaders } from "./src-
|
|
1
|
+
import { P as __exportAll } from "./pull-DhGfFqnU.mjs";
|
|
2
|
+
import { c as fluidWidgetDevPlugin, l as handleOptions, u as setCorsHeaders } from "./src-BuSYN4Co.mjs";
|
|
3
3
|
import path from "node:path";
|
|
4
4
|
import { existsSync } from "node:fs";
|
|
5
5
|
//#region src/vite-plugin/portal-widget-dev-plugin.ts
|
|
@@ -143,4 +143,4 @@ if (widgetPackage) {
|
|
|
143
143
|
//#endregion
|
|
144
144
|
export { portal_widget_dev_plugin_exports as n, portalWidgetDevPlugin as t };
|
|
145
145
|
|
|
146
|
-
//# sourceMappingURL=portal-widget-dev-plugin-
|
|
146
|
+
//# sourceMappingURL=portal-widget-dev-plugin-BFyun5DF.mjs.map
|
package/dist/{portal-widget-dev-plugin-D8k8emMl.mjs.map → portal-widget-dev-plugin-BFyun5DF.mjs.map}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"portal-widget-dev-plugin-
|
|
1
|
+
{"version":3,"file":"portal-widget-dev-plugin-BFyun5DF.mjs","names":[],"sources":["../src/vite-plugin/portal-widget-dev-plugin.ts"],"sourcesContent":["/**\n * Dev routes that let a portal preview render the project's own widgets before\n * they are published.\n *\n * A portal keeps company-owned widget sources in `src/widgets.config.ts` and\n * publishes them with `fluid portal deploy`. Until that deploy runs, the widget\n * exists only on disk — the catalog has never heard of it, so a preview could\n * not show it and the only way to see your work was to publish it. Publishing\n * is not a safe iteration loop: a deploy is live immediately, there is no\n * rollback, and a duplicate `packageId@version` is ignored so every attempt\n * needs a version bump.\n *\n * These routes close that gap by serving the same two endpoints a standalone\n * widget project serves — `/__widget-packages__` (a canonical package\n * descriptor) and `/__runtime-entry__` (the worker bootstrap). A host that can\n * already render published packages needs no new code to render a local one:\n * the descriptor shape is identical, so it merges straight into the catalog\n * array.\n *\n * The route implementations are reused wholesale from\n * `@fluid-app/fluid-cli-widget-tooling`. Its bootstrap script in particular is\n * load-bearing — it exists to fix a message-buffer race that silently strands\n * worker mounts — and must not be reimplemented here.\n *\n * Imported from widget-tooling rather than from the widget CLI deliberately:\n * this package lists widget-tooling in its tsdown `alwaysBundle`, so the routes\n * compile into the portal dist. An import across published CLIs stays external\n * and resolves to un-built TypeScript at runtime.\n *\n * Two things differ from a standalone project, and both are passed as options:\n * the package source lives at `src/widgets.config.ts` rather than\n * `fluid.widget.config.ts`, and it is owned by `company` rather than `droplet`.\n * A portal also has no `startWidgetPackage()` module of its own, so this plugin\n * generates one.\n */\n\nimport { existsSync } from \"node:fs\";\nimport path from \"node:path\";\nimport {\n fluidWidgetDevPlugin,\n handleOptions,\n setCorsHeaders,\n} from \"@fluid-app/fluid-cli-widget-tooling\";\nimport type { Plugin } from \"vite\";\n\n/** Package source, relative to the Vite root. */\nconst WIDGET_CONFIG_MODULE_PATH = \"/src/widgets.config.ts\";\n\n/**\n * Generated worker entry. Requestable (no `\\0` prefix) because the bootstrap\n * script imports it by URL from the dev server rather than through Vite's\n * module graph.\n */\nconst VIRTUAL_ENTRY_PATH = \"/@fluid-portal-widget-entry.js\";\n\nconst WIDGET_PACKAGES_ROUTES = new Set([\n \"/__widget-packages__\",\n \"/__widget-packages__/\",\n]);\nconst RUNTIME_ENTRY_ROUTES = new Set([\n \"/__runtime-entry__\",\n \"/__runtime-entry__/\",\n]);\n\nexport function portalWidgetDevPlugin(): Plugin[] {\n return [\n missingConfigGuardPlugin(),\n virtualWorkerEntryPlugin(),\n fluidWidgetDevPlugin({\n entryModulePath: VIRTUAL_ENTRY_PATH,\n configModulePath: WIDGET_CONFIG_MODULE_PATH,\n owner: \"company\",\n // A portal with no custom widget yet is the normal case, not a fault.\n allowNoPackages: true,\n }),\n ];\n}\n\n/**\n * Short-circuits both routes when the project has no `src/widgets.config.ts`.\n *\n * Most portals never gain one. Without this the delegated routes would try to\n * load a module that does not exist and log a resolution failure on every poll\n * — the preview polls continuously — so the expected case would be the noisiest\n * thing in the log. Registered before the delegated plugin so its middleware\n * runs first.\n */\nfunction missingConfigGuardPlugin(): Plugin {\n let configFilePath = \"\";\n\n return {\n name: \"fluid-portal-widget-dev-missing-config-guard\",\n apply: \"serve\",\n configResolved(config) {\n configFilePath = path.join(\n config.root,\n WIDGET_CONFIG_MODULE_PATH.replace(/^\\//, \"\"),\n );\n },\n configureServer(server) {\n server.middlewares.use((request, response, next): void => {\n const pathname = (request.url ?? \"\").split(\"?\")[0] ?? \"\";\n const isWidgetRoute =\n WIDGET_PACKAGES_ROUTES.has(pathname) ||\n RUNTIME_ENTRY_ROUTES.has(pathname);\n if (!isWidgetRoute) {\n next();\n return;\n }\n // Checked per request, not at startup: `fluid portal widget create`\n // can add the file while the dev server is already running.\n if (existsSync(configFilePath)) {\n next();\n return;\n }\n\n // Answer a preflight exactly as the delegated routes do. Two\n // implementations of the same route disagreeing is bad enough; the\n // guard is the one that runs in the common case, since most portals\n // never gain a widget config, so the divergence would have been the\n // DEFAULT path rather than the edge.\n if (handleOptions(request, response)) return;\n setCorsHeaders(response);\n if (WIDGET_PACKAGES_ROUTES.has(pathname)) {\n response.setHeader(\"Content-Type\", \"application/json\");\n response.statusCode = 200;\n response.end(\"[]\");\n return;\n }\n response.setHeader(\"Content-Type\", \"text/javascript\");\n response.statusCode = 200;\n response.end(\"// No portal widget package in this project.\\n\");\n });\n },\n };\n}\n\n/**\n * Serves the worker entry a portal project does not have.\n *\n * A standalone widget project ships `src/index.ts` calling\n * `startWidgetPackage()`. A portal's `src/widgets.config.ts` only declares the\n * package, so this module supplies the missing call. Export precedence matches\n * the shared descriptor builder's, so the worker starts the same package the\n * descriptor advertises.\n */\nfunction virtualWorkerEntryPlugin(): Plugin {\n return {\n name: \"fluid-portal-widget-dev-entry\",\n apply: \"serve\",\n resolveId(id) {\n return id === VIRTUAL_ENTRY_PATH ? id : null;\n },\n load(id) {\n if (id !== VIRTUAL_ENTRY_PATH) return null;\n return `import { prepareRemoteDomWidgetWorker, startWidgetPackage } from \"@fluid-app/portal-sdk/widgets/worker\";\n\nprepareRemoteDomWidgetWorker();\nconst source = await import(\"${WIDGET_CONFIG_MODULE_PATH}\");\n\nconst packages = source.widgetPackages;\nconst widgetPackage =\n (Array.isArray(packages) && packages.length > 0 ? packages[0] : undefined) ??\n source.widgetPackage ??\n source.default;\n\nif (widgetPackage) {\n startWidgetPackage(widgetPackage);\n}\n`;\n },\n };\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA8CA,MAAM,4BAA4B;;;;;;AAOlC,MAAM,qBAAqB;AAE3B,MAAM,yBAAyB,IAAI,IAAI,CACrC,wBACA,wBACD,CAAC;AACF,MAAM,uBAAuB,IAAI,IAAI,CACnC,sBACA,sBACD,CAAC;AAEF,SAAgB,wBAAkC;AAChD,QAAO;EACL,0BAA0B;EAC1B,0BAA0B;EAC1B,qBAAqB;GACnB,iBAAiB;GACjB,kBAAkB;GAClB,OAAO;GAEP,iBAAiB;GAClB,CAAC;EACH;;;;;;;;;;;AAYH,SAAS,2BAAmC;CAC1C,IAAI,iBAAiB;AAErB,QAAO;EACL,MAAM;EACN,OAAO;EACP,eAAe,QAAQ;AACrB,oBAAiB,KAAK,KACpB,OAAO,MACP,0BAA0B,QAAQ,OAAO,GAAG,CAC7C;;EAEH,gBAAgB,QAAQ;AACtB,UAAO,YAAY,KAAK,SAAS,UAAU,SAAe;IACxD,MAAM,YAAY,QAAQ,OAAO,IAAI,MAAM,IAAI,CAAC,MAAM;AAItD,QAAI,EAFF,uBAAuB,IAAI,SAAS,IACpC,qBAAqB,IAAI,SAAS,GAChB;AAClB,WAAM;AACN;;AAIF,QAAI,WAAW,eAAe,EAAE;AAC9B,WAAM;AACN;;AAQF,QAAI,cAAc,SAAS,SAAS,CAAE;AACtC,mBAAe,SAAS;AACxB,QAAI,uBAAuB,IAAI,SAAS,EAAE;AACxC,cAAS,UAAU,gBAAgB,mBAAmB;AACtD,cAAS,aAAa;AACtB,cAAS,IAAI,KAAK;AAClB;;AAEF,aAAS,UAAU,gBAAgB,kBAAkB;AACrD,aAAS,aAAa;AACtB,aAAS,IAAI,iDAAiD;KAC9D;;EAEL;;;;;;;;;;;AAYH,SAAS,2BAAmC;AAC1C,QAAO;EACL,MAAM;EACN,OAAO;EACP,UAAU,IAAI;AACZ,UAAO,OAAO,qBAAqB,KAAK;;EAE1C,KAAK,IAAI;AACP,OAAI,OAAO,mBAAoB,QAAO;AACtC,UAAO;;;+BAGkB,0BAA0B;;;;;;;;;;;;;EAatD"}
|