@feedmepos/mf-miniprogram-v2 0.2.8-dev.1 → 0.2.8-dev.10

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 (36) hide show
  1. package/dist/{App-B7Mai_6F.js → App-Ck_p8Anr.js} +261 -268
  2. package/dist/{BrandFontPicker-JHyoGusq.js → BrandFontPicker-VX2LAN2w.js} +1 -1
  3. package/dist/{BrandKitView-Dlt_ifI0.js → BrandKitView-CB7kcVy2.js} +2 -2
  4. package/dist/ControlPlaneView-CqTLqklv.js +27000 -0
  5. package/dist/{EcosystemView-Cy0N2qNK.js → EcosystemView-Bt-UdWfQ.js} +6 -6
  6. package/dist/MobileProjectDialog-DAYQdrCY.js +452 -0
  7. package/dist/MobileProjectsView-z7GucfWB.js +235 -0
  8. package/dist/ModuleCenterView-t8rhd419.js +283 -0
  9. package/dist/ModuleDetailView-C2TJToR7.js +296 -0
  10. package/dist/{PagesView-DQCIwpnL.js → PagesView-bXfOrylf.js} +2 -2
  11. package/dist/{PlatformUnavailableView-DY2ntpNw.js → PlatformUnavailableView-CkKpF-bi.js} +1 -1
  12. package/dist/{PortalSettingsView-Cz566Ccd.js → PortalSettingsView-D_2Gd3-Y.js} +9 -9
  13. package/dist/StatusBadge.vue_vue_type_script_setup_true_lang-DMm_s9ua.js +41 -0
  14. package/dist/TemplateCenterView-DEN51nfK.js +515 -0
  15. package/dist/{WorkspaceEntryView-B28ASSit.js → WorkspaceEntryView-SLqO3Mi4.js} +2 -2
  16. package/dist/app.js +15 -15
  17. package/dist/{controlPlane-sXaC6pAh.js → controlPlane-DR5ykj4d.js} +8 -8
  18. package/dist/localPreference-Do4VKtxT.js +61 -0
  19. package/dist/package.json +1 -1
  20. package/dist/{portalContext-DV-6uUwp.js → portalContext-BeKN8Bcx.js} +2 -2
  21. package/dist/portalNavigation-DDMi3QTt.js +43 -0
  22. package/dist/{routes-CeuodIgg.js → routes-B9oMJsaM.js} +45 -27
  23. package/dist/style.css +1 -1
  24. package/dist/{useBrandKit-CXLIXo5j.js → useBrandKit-CKn1fm2o.js} +1 -1
  25. package/dist/useModuleCatalog-Daw8KA--.js +147 -0
  26. package/package.json +1 -1
  27. package/dist/AppTemplatePicker.vue_vue_type_script_setup_true_lang-LE_aKvfg.js +0 -198
  28. package/dist/ControlPlaneView-CBGNMsPT.js +0 -25317
  29. package/dist/MobileProjectsView-CvMvePvm.js +0 -333
  30. package/dist/ModuleCenterView-C6mCPATr.js +0 -147
  31. package/dist/ModuleDetailView-CSfMF0Uo.js +0 -189
  32. package/dist/StatusBadge.vue_vue_type_script_setup_true_lang-CMgQ0bd_.js +0 -30
  33. package/dist/TemplateCenterView-DqZLthqh.js +0 -426
  34. package/dist/adminAccess-oXC0xjvK.js +0 -48
  35. package/dist/portalNavigation-BBORm5cp.js +0 -34
  36. package/dist/useModuleCatalog-Cep-pzWO.js +0 -124
@@ -0,0 +1,61 @@
1
+ import { a as u } from "./routes-B9oMJsaM.js";
2
+ import { ref as o } from "vue";
3
+ import { c as a } from "./controlPlane-DR5ykj4d.js";
4
+ let r = null;
5
+ function i() {
6
+ return r || (r = a(u.adminWhoami()).catch(() => ({
7
+ isAdmin: !1,
8
+ isFeedMeStaff: !1
9
+ }))), r;
10
+ }
11
+ function f() {
12
+ return i().then((e) => e.isAdmin);
13
+ }
14
+ function l() {
15
+ const e = o(!1);
16
+ return f().then((t) => {
17
+ e.value = t;
18
+ }), e;
19
+ }
20
+ function w() {
21
+ const e = o(!1);
22
+ return i().then((t) => {
23
+ e.value = t.isFeedMeStaff === !0;
24
+ }), e;
25
+ }
26
+ function h(e, t) {
27
+ if (typeof window > "u") return t;
28
+ try {
29
+ const n = window.localStorage.getItem(e);
30
+ return n === null ? t : n === "1";
31
+ } catch {
32
+ return t;
33
+ }
34
+ }
35
+ function S(e, t) {
36
+ if (typeof window > "u") return t;
37
+ try {
38
+ const n = Number(window.localStorage.getItem(e));
39
+ return Number.isFinite(n) ? n : t;
40
+ } catch {
41
+ return t;
42
+ }
43
+ }
44
+ function d(e, t) {
45
+ if (!(typeof window > "u"))
46
+ try {
47
+ window.localStorage.setItem(e, t);
48
+ } catch {
49
+ }
50
+ }
51
+ function p(e, t) {
52
+ d(e, t ? "1" : "0");
53
+ }
54
+ export {
55
+ w as a,
56
+ S as b,
57
+ d as c,
58
+ h as r,
59
+ l as u,
60
+ p as w
61
+ };
package/dist/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@feedmepos/mf-miniprogram-v2",
3
- "version": "0.2.8-dev.1",
3
+ "version": "0.2.8-dev.10",
4
4
  "type": "module",
5
5
  "publishConfig": {
6
6
  "access": "public",
@@ -1,6 +1,6 @@
1
- import { a as b } from "./routes-CeuodIgg.js";
1
+ import { a as b } from "./routes-B9oMJsaM.js";
2
2
  import { useCoreStore as d } from "@feedmepos/mf-common";
3
- import { c as g, e as h } from "./controlPlane-sXaC6pAh.js";
3
+ import { c as g, e as h } from "./controlPlane-DR5ykj4d.js";
4
4
  import { provide as y, computed as f, ref as c, watch as C, onScopeDispose as w, inject as x } from "vue";
5
5
  function P() {
6
6
  const e = d(), r = f(() => {
@@ -0,0 +1,43 @@
1
+ function i(r) {
2
+ return r === "releases" || r === "sessions" ? r : "workspace";
3
+ }
4
+ function o(r) {
5
+ const { view: t, tpl: n, setup: e, library: a, returnProjectId: p, ...s } = r;
6
+ return s;
7
+ }
8
+ function c(r, t, n, e = {}) {
9
+ return {
10
+ name: "miniprogram-v2-project",
11
+ params: { projectId: r, view: t === "workspace" ? void 0 : t },
12
+ query: {
13
+ ...o(n),
14
+ ...e.templateEditing ? { tpl: "1" } : {},
15
+ ...e.setup ? { setup: "1" } : {},
16
+ ...e.library ? { library: e.library } : {}
17
+ }
18
+ };
19
+ }
20
+ function u(r, t, n) {
21
+ if (!t || !n || t === n || r.name !== "miniprogram-v2-project" || r.query.tpl === "1") return null;
22
+ const e = o(r.query);
23
+ return typeof e.businessId == "string" && (e.businessId = n), { name: "miniprogram-v2-mobile-projects", query: e };
24
+ }
25
+ function l(r, t) {
26
+ return t ? c(String(r.params.projectId), i(r.params.view), r.query) : { name: "miniprogram-v2-mobile-projects", query: o(r.query) };
27
+ }
28
+ function m(r, t = "settings") {
29
+ const n = new URLSearchParams();
30
+ for (const e of ["businessId", "country", "restaurantId"]) {
31
+ const a = r[e];
32
+ typeof a == "string" && n.set(e, a);
33
+ }
34
+ return `/brand/${t}${n.size ? `?${n}` : ""}`;
35
+ }
36
+ export {
37
+ i as a,
38
+ m as b,
39
+ u as e,
40
+ l,
41
+ o as p,
42
+ c as w
43
+ };
@@ -1,4 +1,4 @@
1
- const t = (e, s) => `/api/businesses/${e}/projects/${s}`, p = {
1
+ const t = (e, s) => `/api/businesses/${e}/projects/${s}`, i = {
2
2
  projects: (e) => `/api/businesses/${e}/projects`,
3
3
  portalContext: (e) => `/api/businesses/${e}/portal-context`,
4
4
  project: (e, s) => t(e, s),
@@ -6,35 +6,47 @@ const t = (e, s) => `/api/businesses/${e}/projects/${s}`, p = {
6
6
  refreshSlug: (e, s) => `${t(e, s)}/refresh-slug`,
7
7
  sessions: (e, s) => `${t(e, s)}/sessions`,
8
8
  session: (e, s, a) => `${t(e, s)}/sessions/${a}`,
9
- messages: (e, s, a) => `${p.session(e, s, a)}/messages`,
10
- startStatus: (e, s, a) => `${p.session(e, s, a)}/start-status`,
11
- changes: (e, s, a, i = !1) => `${p.session(e, s, a)}/changes${i ? "?refresh=1" : ""}`,
12
- checkpoints: (e, s, a) => `${p.session(e, s, a)}/checkpoints`,
13
- aiBillingPreflight: (e, s, a) => `${p.session(e, s, a)}/ai-billing/preflight`,
14
- restoreCheckpoint: (e, s, a, i) => `${p.checkpoints(e, s, a)}/${i}/restore`,
15
- previewBridgeTicket: (e, s, a) => `${p.session(e, s, a)}/preview-bridge/ticket`,
16
- previewBridgeSocket: (e, s, a) => `${p.session(e, s, a)}/preview-bridge/socket`,
17
- uploads: (e, s, a, i = "") => `${p.session(e, s, a)}/uploads${i ? `?${i}` : ""}`,
18
- archive: (e, s, a) => `${p.session(e, s, a)}/archive`,
19
- commit: (e, s, a) => `${p.session(e, s, a)}/commit`,
20
- resume: (e, s, a) => `${p.session(e, s, a)}/resume`,
21
- restartPreview: (e, s, a) => `${p.session(e, s, a)}/restart-preview`,
22
- fork: (e, s, a) => `${p.session(e, s, a)}/fork`,
23
- flushEvents: (e, s, a) => `${p.session(e, s, a)}/events/flush`,
24
- revertTurn: (e, s, a) => `${p.session(e, s, a)}/turns/revert`,
25
- unrevertTurn: (e, s, a) => `${p.session(e, s, a)}/turns/unrevert`,
9
+ messages: (e, s, a) => `${i.session(e, s, a)}/messages`,
10
+ startStatus: (e, s, a) => `${i.session(e, s, a)}/start-status`,
11
+ /** Server-side render of one library module, proxied to the session's own
12
+ * sandbox — what the swap panel's candidate cards fetch instead of the
13
+ * browser reaching the public preview host directly (see
14
+ * BlockLibraryPanel.vue's `ModuleLibraryCard`). */
15
+ libraryRender: (e, s, a) => `${i.session(e, s, a)}/library-render`,
16
+ changes: (e, s, a, p = !1) => `${i.session(e, s, a)}/changes${p ? "?refresh=1" : ""}`,
17
+ checkpoints: (e, s, a) => `${i.session(e, s, a)}/checkpoints`,
18
+ aiBillingPreflight: (e, s, a) => `${i.session(e, s, a)}/ai-billing/preflight`,
19
+ aiTokenBalance: (e, s) => `${t(e, s)}/ai-billing/balance`,
20
+ restoreCheckpoint: (e, s, a, p) => `${i.checkpoints(e, s, a)}/${p}/restore`,
21
+ previewBridgeTicket: (e, s, a) => `${i.session(e, s, a)}/preview-bridge/ticket`,
22
+ previewBridgeSocket: (e, s, a) => `${i.session(e, s, a)}/preview-bridge/socket`,
23
+ uploads: (e, s, a, p = "") => `${i.session(e, s, a)}/uploads${p ? `?${p}` : ""}`,
24
+ archive: (e, s, a) => `${i.session(e, s, a)}/archive`,
25
+ commit: (e, s, a) => `${i.session(e, s, a)}/commit`,
26
+ resume: (e, s, a) => `${i.session(e, s, a)}/resume`,
27
+ restartPreview: (e, s, a) => `${i.session(e, s, a)}/restart-preview`,
28
+ fork: (e, s, a) => `${i.session(e, s, a)}/fork`,
29
+ flushEvents: (e, s, a) => `${i.session(e, s, a)}/events/flush`,
30
+ revertTurn: (e, s, a) => `${i.session(e, s, a)}/turns/revert`,
31
+ unrevertTurn: (e, s, a) => `${i.session(e, s, a)}/turns/unrevert`,
26
32
  releases: (e, s) => `${t(e, s)}/releases`,
27
33
  /** Internal-admin only. Extracts a new restaurant style out of a session's
28
34
  * verified checkpoint and, once confirmed, opens a PR against this repo. */
29
35
  publishAsTemplate: (e, s) => `${t(e, s)}/publish-as-template`,
30
- publishRelease: (e, s, a) => `${p.releases(e, s)}/${a}/publish`,
31
- releasePreviewUrl: (e, s, a) => `${p.releases(e, s)}/${a}/preview-url`,
36
+ publishRelease: (e, s, a) => `${i.releases(e, s)}/${a}/publish`,
37
+ /** Delivers a release to the project's native apps over the air; the web is untouched. */
38
+ publishReleaseToApp: (e, s, a) => `${i.releases(e, s)}/${a}/publish-app`,
39
+ releasePreviewUrl: (e, s, a) => `${i.releases(e, s)}/${a}/preview-url`,
40
+ /** Turns "set this release live once its build succeeds" on or off. */
41
+ releaseAutoPublish: (e, s, a) => `${i.releases(e, s)}/${a}/auto-publish`,
42
+ /** The merchant-readable "what changed since the last publish" for a release. */
43
+ releaseChanges: (e, s, a) => `${i.releases(e, s)}/${a}/changes`,
32
44
  rollbackToRelease: (e, s, a) => `${t(e, s)}/rollback-to-release/${a}`,
33
45
  rollbackToV1: (e, s) => `${t(e, s)}/rollback-to-v1`,
34
46
  start: (e, s, a) => {
35
- const i = new URLSearchParams();
36
- e && i.set("businessId", e), s && i.set("projectId", s), a && i.set("sessionId", a);
37
- const r = i.toString();
47
+ const p = new URLSearchParams();
48
+ e && p.set("businessId", e), s && p.set("projectId", s), a && p.set("sessionId", a);
49
+ const r = p.toString();
38
50
  return `/api/start${r ? `?${r}` : ""}`;
39
51
  },
40
52
  opencode: (e = "") => `/api/opencode${e ? `/${e.replace(/^\/+/, "")}` : ""}`,
@@ -60,9 +72,10 @@ const t = (e, s) => `/api/businesses/${e}/projects/${s}`, p = {
60
72
  * project-scoped — a physical template belongs to no business. */
61
73
  forkAppTemplate: () => "/api/admin/app-templates/fork",
62
74
  /** Template Center: delete an existing physical template directory, as a PR
63
- * against this repo. Refused for the default template or one any project
64
- * still references — see the endpoint's own doc comment. */
65
- deleteAppTemplate: (e) => `/api/admin/app-templates/${e}/delete`,
75
+ * against this repo. Refused for the default template (never bypassable)
76
+ * or, absent `force`, for one any project still references — see the
77
+ * endpoint's own doc comment for what `force` skips and what it does not. */
78
+ deleteAppTemplate: (e, s) => `/api/admin/app-templates/${e}/delete${s ? "?force=1" : ""}`,
66
79
  /** Template Center admin list: every physical template's live registry
67
80
  * row, drafts included — unlike `appTemplates()` (merchant-facing,
68
81
  * published + environment-filtered only). */
@@ -84,6 +97,11 @@ const t = (e, s) => `/api/businesses/${e}/projects/${s}`, p = {
84
97
  /** Template Center: close a pending template change's PR without merging
85
98
  * and delete its branch — the "In review" list's reject action. */
86
99
  rejectPendingTemplateChange: (e) => `/api/admin/app-templates/pending-changes/${e}/reject`,
100
+ /** Template Center: edit an existing physical template's `industries`
101
+ * classification. Opens a PR against the catalog entry AND updates the
102
+ * registry row immediately (unlike fork/delete, there is no directory
103
+ * change to wait on merge for) — see the endpoint's own doc comment. */
104
+ updateAppTemplateIndustries: (e) => `/api/admin/app-templates/${e}/industries`,
87
105
  /** Template Center: find-or-create the template-editing project a
88
106
  * physical template edits through — the same chat/preview/checkpoint
89
107
  * workspace a merchant project gets, pointed at `templates/<id>/` in this
@@ -91,5 +109,5 @@ const t = (e, s) => `/api/businesses/${e}/projects/${s}`, p = {
91
109
  appTemplateEditingProject: (e) => `/api/admin/app-templates/${e}/editing-project`
92
110
  };
93
111
  export {
94
- p as a
112
+ i as a
95
113
  };