@mercurjs/admin 2.3.2-canary.1 → 2.3.2-canary.3
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/{add-campaign-promotions-NZ62V2LH.js → add-campaign-promotions-DAJLAYTG.js} +3 -3
- package/dist/{api-key-management-list-AHXOCLBO.js → api-key-management-list-P4FQQKIV.js} +1 -1
- package/dist/{attribute-list-6ELFWDHO.js → attribute-list-PVC4KUYQ.js} +1 -1
- package/dist/{campaign-detail-KZWQLIS5.js → campaign-detail-V6RISO2Y.js} +4 -4
- package/dist/{campaign-list-7L2DGBHW.js → campaign-list-WFFH3VPJ.js} +1 -1
- package/dist/{category-list-3IL2MERS.js → category-list-RBFOTJFJ.js} +1 -1
- package/dist/{chunk-CR7TRBEB.js → chunk-2YEBREEY.js} +2 -1
- package/dist/chunk-4F6SHS7A.js +83 -0
- package/dist/{chunk-EAZ6YM6D.js → chunk-5SDHNLEC.js} +2 -1
- package/dist/{chunk-ADI5XIXM.js → chunk-6DBL7KIL.js} +1 -1
- package/dist/{chunk-ZBRRK3Y6.js → chunk-AB34V74P.js} +3 -2
- package/dist/{chunk-AV6HBMRX.js → chunk-AMKTWSOZ.js} +1 -1
- package/dist/{chunk-3W4T2KGY.js → chunk-BNYVXSFC.js} +1 -1
- package/dist/{chunk-MIVPIACG.js → chunk-CGT2IRFI.js} +1 -1
- package/dist/{chunk-N3ZYLAGA.js → chunk-GQ45JPQR.js} +3 -2
- package/dist/{chunk-4KULFU3V.js → chunk-GVKW5SUK.js} +3 -2
- package/dist/{chunk-UGDC6FPU.js → chunk-JIVTFB67.js} +2 -1
- package/dist/{chunk-23KZGNNG.js → chunk-KHMHTJZG.js} +2 -1
- package/dist/{chunk-OQLWF43Y.js → chunk-MUSHUJHY.js} +51 -0
- package/dist/{chunk-LAIT7Y53.js → chunk-NO64DRH4.js} +25 -7
- package/dist/{chunk-AJNXQUOR.js → chunk-O56RWFFI.js} +3 -2
- package/dist/{chunk-OJQSOFYG.js → chunk-PC5GU4HP.js} +2 -1
- package/dist/{chunk-PNLDVYCP.js → chunk-R3E7BMQB.js} +1 -1
- package/dist/{chunk-IP5YNQ5R.js → chunk-RQCYGC2H.js} +3 -2
- package/dist/{chunk-EF23N7II.js → chunk-S4W3RVQV.js} +3 -2
- package/dist/{chunk-HBNQ3R3P.js → chunk-T36KFL5R.js} +2 -1
- package/dist/{chunk-CMBHUF6P.js → chunk-T3KB4DCM.js} +4 -1
- package/dist/{chunk-LIMG2EY2.js → chunk-VB4A2G7A.js} +3 -2
- package/dist/{chunk-PB24YMA4.js → chunk-VYD6M7TF.js} +2 -1
- package/dist/{chunk-73N66XQD.js → chunk-WCA5Z4MT.js} +2 -1
- package/dist/{chunk-43SWJ765.js → chunk-XBEI6JKV.js} +2 -1
- package/dist/{chunk-GYHF5XBU.js → chunk-XVBLVV7Y.js} +1 -1
- package/dist/{chunk-HFMAEJN2.js → chunk-Y5T5NATQ.js} +2 -1
- package/dist/{chunk-WYRUCSGW.js → chunk-YS6DRI7V.js} +2 -1
- package/dist/{collection-list-GMAYML6Z.js → collection-list-C2EQXJTN.js} +1 -1
- package/dist/{commissions-list-X54FEOEZ.js → commissions-list-VBQOQF2D.js} +1 -1
- package/dist/{customer-group-list-KBZBSGTQ.js → customer-group-list-NZ3D2ZAR.js} +1 -1
- package/dist/{customer-list-IJJEZDOZ.js → customer-list-DFONJE23.js} +1 -1
- package/dist/index.css +3 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.js +1501 -1296
- package/dist/{order-edit-billing-address-QCVPGEL6.js → order-edit-billing-address-ZT7HAEXB.js} +1 -1
- package/dist/pages/index.d.ts +22 -22
- package/dist/pages/index.js +27 -27
- package/dist/{price-list-list-JC5EDBH6.js → price-list-list-UEEYIP5R.js} +1 -1
- package/dist/{product-create-QS5KIHET.js → product-create-LBKJTFOY.js} +3 -3
- package/dist/{product-list-2FOZLWYH.js → product-list-YHJ7DW6D.js} +1 -1
- package/dist/{product-media-UHDJ6RSG.js → product-media-NEAAG6IC.js} +2 -2
- package/dist/{product-organization-IX5XCZW4.js → product-organization-SVOLE5TG.js} +1 -1
- package/dist/{product-tag-list-3HOXFHMN.js → product-tag-list-GDIVZYEB.js} +1 -1
- package/dist/{product-type-list-NNNFCCWS.js → product-type-list-VSCQHI3D.js} +1 -1
- package/dist/{promotion-detail-ADTUSGD4.js → promotion-detail-HVQKXMJL.js} +3 -3
- package/dist/{promotion-list-MRNS47TP.js → promotion-list-KB2E4AEZ.js} +4 -4
- package/dist/{reservation-list-CRPRHIMT.js → reservation-list-APKRLKOF.js} +1 -1
- package/dist/{reset-password-N4LXTU3G.js → reset-password-BIAORJOF.js} +1 -1
- package/dist/{return-reason-list-AVCC44CH.js → return-reason-list-IQ2JGNEN.js} +1 -1
- package/dist/{shipping-option-type-list-R4JPQOAA.js → shipping-option-type-list-VQ5UVOUU.js} +1 -1
- package/dist/{shipping-profiles-list-UKD47NUF.js → shipping-profiles-list-AK6KXUGF.js} +1 -1
- package/dist/{store-edit-B54LFFLE.js → store-edit-LXGZTR3G.js} +2 -2
- package/dist/{store-list-3KZCD7UB.js → store-list-XXRF6JAZ.js} +1 -1
- package/dist/{tax-region-create-DVBIX7IX.js → tax-region-create-SFRD4AJB.js} +1 -1
- package/dist/{tax-region-list-JC4QYF5B.js → tax-region-list-TM23Q4HH.js} +1 -1
- package/dist/{user-invite-WHBNPT4I.js → user-invite-A7TBRKWI.js} +2 -2
- package/dist/{user-list-P7JCBIOR.js → user-list-ECF647TZ.js} +1 -1
- package/package.json +9 -8
- package/dist/chunk-PVEB24HU.js +0 -208
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mercurjs/admin",
|
|
3
|
-
"version": "2.3.2-canary.
|
|
3
|
+
"version": "2.3.2-canary.3",
|
|
4
4
|
"repository": {
|
|
5
5
|
"type": "git",
|
|
6
6
|
"url": "https://github.com/mercurjs/mercur",
|
|
@@ -34,8 +34,8 @@
|
|
|
34
34
|
"lint": "oxlint --max-warnings 0"
|
|
35
35
|
},
|
|
36
36
|
"dependencies": {
|
|
37
|
-
"@mercurjs/dashboard-shared": "2.3.2-canary.
|
|
38
|
-
"@mercurjs/client": "2.3.2-canary.
|
|
37
|
+
"@mercurjs/dashboard-shared": "2.3.2-canary.3",
|
|
38
|
+
"@mercurjs/client": "2.3.2-canary.3",
|
|
39
39
|
"@ariakit/react": "^0.4.15",
|
|
40
40
|
"@babel/runtime": "^8.0.0",
|
|
41
41
|
"@dnd-kit/core": "^6.1.0",
|
|
@@ -71,12 +71,12 @@
|
|
|
71
71
|
"react-hook-form": "7.49.1",
|
|
72
72
|
"react-i18next": "17.0.8",
|
|
73
73
|
"react-jwt": "^2.1.1",
|
|
74
|
-
"react-router-dom": "7.18.1",
|
|
75
74
|
"zod": "4.4.3"
|
|
76
75
|
},
|
|
77
76
|
"peerDependencies": {
|
|
78
77
|
"react": "^18.0.0",
|
|
79
|
-
"react-dom": "^18.0.0"
|
|
78
|
+
"react-dom": "^18.0.0",
|
|
79
|
+
"react-router-dom": "^7.18.1"
|
|
80
80
|
},
|
|
81
81
|
"devDependencies": {
|
|
82
82
|
"@medusajs/ui-preset": "2.18.0",
|
|
@@ -88,8 +88,9 @@
|
|
|
88
88
|
"tsup": "^8.0.2",
|
|
89
89
|
"typescript": "5.9.3",
|
|
90
90
|
"@medusajs/types": "2.18.0",
|
|
91
|
-
"@mercurjs/core": "2.3.2-canary.
|
|
92
|
-
"@mercurjs/dashboard-sdk": "2.3.2-canary.
|
|
93
|
-
"@mercurjs/types": "2.3.2-canary.
|
|
91
|
+
"@mercurjs/core": "2.3.2-canary.3",
|
|
92
|
+
"@mercurjs/dashboard-sdk": "2.3.2-canary.3",
|
|
93
|
+
"@mercurjs/types": "2.3.2-canary.3",
|
|
94
|
+
"react-router-dom": "7.18.1"
|
|
94
95
|
}
|
|
95
96
|
}
|
package/dist/chunk-PVEB24HU.js
DELETED
|
@@ -1,208 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
fetchQuery,
|
|
3
|
-
sdk
|
|
4
|
-
} from "./chunk-DTGEFKK4.js";
|
|
5
|
-
|
|
6
|
-
// src/providers/feature-flag-provider/index.tsx
|
|
7
|
-
import { createContext, useCallback, useContext, useMemo } from "react";
|
|
8
|
-
|
|
9
|
-
// src/hooks/api/feature-flags.tsx
|
|
10
|
-
import { useQuery } from "@tanstack/react-query";
|
|
11
|
-
var useFeatureFlags = () => {
|
|
12
|
-
return useQuery({
|
|
13
|
-
queryKey: ["admin", "feature-flags"],
|
|
14
|
-
queryFn: async () => {
|
|
15
|
-
const response = await fetchQuery("/admin/feature-flags", {
|
|
16
|
-
method: "GET"
|
|
17
|
-
});
|
|
18
|
-
return response.feature_flags;
|
|
19
|
-
},
|
|
20
|
-
staleTime: 5 * 60 * 1e3,
|
|
21
|
-
gcTime: 10 * 60 * 1e3
|
|
22
|
-
});
|
|
23
|
-
};
|
|
24
|
-
|
|
25
|
-
// src/providers/feature-flag-provider/index.tsx
|
|
26
|
-
import { jsx } from "react/jsx-runtime";
|
|
27
|
-
var FeatureFlagContext = createContext(null);
|
|
28
|
-
var useFeatureFlag = (flag) => {
|
|
29
|
-
const context = useContext(FeatureFlagContext);
|
|
30
|
-
if (!context) {
|
|
31
|
-
return false;
|
|
32
|
-
}
|
|
33
|
-
return context.isFeatureEnabled(flag);
|
|
34
|
-
};
|
|
35
|
-
var FeatureFlagProvider = ({
|
|
36
|
-
children
|
|
37
|
-
}) => {
|
|
38
|
-
const { data: flags = {}, isLoading } = useFeatureFlags();
|
|
39
|
-
const isFeatureEnabled = useCallback(
|
|
40
|
-
(flag) => {
|
|
41
|
-
return flags[flag] === true;
|
|
42
|
-
},
|
|
43
|
-
[flags]
|
|
44
|
-
);
|
|
45
|
-
const value = useMemo(
|
|
46
|
-
() => ({ flags, isLoading, isFeatureEnabled }),
|
|
47
|
-
[flags, isLoading, isFeatureEnabled]
|
|
48
|
-
);
|
|
49
|
-
return /* @__PURE__ */ jsx(FeatureFlagContext.Provider, { value, children });
|
|
50
|
-
};
|
|
51
|
-
|
|
52
|
-
// src/providers/permissions-provider/permissions-context.tsx
|
|
53
|
-
import { createContext as createContext2 } from "react";
|
|
54
|
-
var PermissionsContext = createContext2(null);
|
|
55
|
-
|
|
56
|
-
// src/providers/permissions-provider/permissions-provider.tsx
|
|
57
|
-
import { useCallback as useCallback2, useMemo as useMemo2 } from "react";
|
|
58
|
-
|
|
59
|
-
// src/lib/permissions/constants.ts
|
|
60
|
-
var OPERATION_IMPLICATIONS = {
|
|
61
|
-
read: ["read"],
|
|
62
|
-
create: ["create"],
|
|
63
|
-
update: ["update"],
|
|
64
|
-
delete: ["delete"],
|
|
65
|
-
"*": ["read", "create", "update", "delete", "*"]
|
|
66
|
-
};
|
|
67
|
-
|
|
68
|
-
// src/lib/permissions/utils.ts
|
|
69
|
-
function parsePermission(permission) {
|
|
70
|
-
const parts = permission.split(":");
|
|
71
|
-
if (parts.length !== 2) {
|
|
72
|
-
return null;
|
|
73
|
-
}
|
|
74
|
-
const [resource, operation] = parts;
|
|
75
|
-
return {
|
|
76
|
-
resource,
|
|
77
|
-
operation
|
|
78
|
-
};
|
|
79
|
-
}
|
|
80
|
-
function buildPermission(resource, operation) {
|
|
81
|
-
return `${resource}:${operation}`;
|
|
82
|
-
}
|
|
83
|
-
|
|
84
|
-
// src/providers/permissions-provider/permissions-provider.tsx
|
|
85
|
-
import { jsx as jsx2 } from "react/jsx-runtime";
|
|
86
|
-
var PermissionsProvider = ({
|
|
87
|
-
policy,
|
|
88
|
-
isLoading = false,
|
|
89
|
-
isRbacEnabled = true,
|
|
90
|
-
children
|
|
91
|
-
}) => {
|
|
92
|
-
const permissionsMap = useMemo2(() => {
|
|
93
|
-
const index = /* @__PURE__ */ Object.create(null);
|
|
94
|
-
for (const granted of policy?.permissions ?? []) {
|
|
95
|
-
const parsed = parsePermission(granted);
|
|
96
|
-
if (!parsed) {
|
|
97
|
-
continue;
|
|
98
|
-
}
|
|
99
|
-
const { resource, operation } = parsed;
|
|
100
|
-
const impliedOperations = OPERATION_IMPLICATIONS[operation] || [operation];
|
|
101
|
-
for (const impliedOperation of impliedOperations) {
|
|
102
|
-
index[buildPermission(resource, impliedOperation)] = true;
|
|
103
|
-
}
|
|
104
|
-
}
|
|
105
|
-
return index;
|
|
106
|
-
}, [policy]);
|
|
107
|
-
const hasPermission = useCallback2(
|
|
108
|
-
(permission) => {
|
|
109
|
-
if (!isRbacEnabled) {
|
|
110
|
-
return true;
|
|
111
|
-
}
|
|
112
|
-
return !!permissionsMap[permission];
|
|
113
|
-
},
|
|
114
|
-
[isRbacEnabled, permissionsMap]
|
|
115
|
-
);
|
|
116
|
-
const hasAnyPermission = useCallback2(
|
|
117
|
-
(permissions) => {
|
|
118
|
-
if (!isRbacEnabled) {
|
|
119
|
-
return true;
|
|
120
|
-
}
|
|
121
|
-
if (!permissions?.length) {
|
|
122
|
-
return false;
|
|
123
|
-
}
|
|
124
|
-
return permissions.some(hasPermission);
|
|
125
|
-
},
|
|
126
|
-
[isRbacEnabled, hasPermission]
|
|
127
|
-
);
|
|
128
|
-
const hasAllPermissions = useCallback2(
|
|
129
|
-
(permissions) => {
|
|
130
|
-
if (!isRbacEnabled) {
|
|
131
|
-
return true;
|
|
132
|
-
}
|
|
133
|
-
if (!permissions?.length) {
|
|
134
|
-
return false;
|
|
135
|
-
}
|
|
136
|
-
return permissions.every(hasPermission);
|
|
137
|
-
},
|
|
138
|
-
[isRbacEnabled, hasPermission]
|
|
139
|
-
);
|
|
140
|
-
const can = useCallback2(
|
|
141
|
-
(resource, operation) => {
|
|
142
|
-
if (!isRbacEnabled) {
|
|
143
|
-
return true;
|
|
144
|
-
}
|
|
145
|
-
return !!permissionsMap[buildPermission(resource, operation)];
|
|
146
|
-
},
|
|
147
|
-
[isRbacEnabled, permissionsMap]
|
|
148
|
-
);
|
|
149
|
-
const value = useMemo2(
|
|
150
|
-
() => ({
|
|
151
|
-
policy,
|
|
152
|
-
isLoading,
|
|
153
|
-
hasPermission,
|
|
154
|
-
hasAnyPermission,
|
|
155
|
-
hasAllPermissions,
|
|
156
|
-
can
|
|
157
|
-
}),
|
|
158
|
-
[policy, isLoading, hasPermission, hasAnyPermission, hasAllPermissions, can]
|
|
159
|
-
);
|
|
160
|
-
return /* @__PURE__ */ jsx2(PermissionsContext.Provider, { value, children });
|
|
161
|
-
};
|
|
162
|
-
|
|
163
|
-
// src/providers/permissions-provider/use-permissions.tsx
|
|
164
|
-
import { useContext as useContext2 } from "react";
|
|
165
|
-
var usePermissions = () => {
|
|
166
|
-
const context = useContext2(PermissionsContext);
|
|
167
|
-
if (!context) {
|
|
168
|
-
throw new Error(
|
|
169
|
-
"usePermissions must be used within a PermissionsProvider"
|
|
170
|
-
);
|
|
171
|
-
}
|
|
172
|
-
return context;
|
|
173
|
-
};
|
|
174
|
-
|
|
175
|
-
// src/hooks/api/rbac-roles.tsx
|
|
176
|
-
import { useQuery as useQuery2 } from "@tanstack/react-query";
|
|
177
|
-
var ME_PERMISSIONS_QUERY_KEY = ["rbac_me_permissions"];
|
|
178
|
-
var mePermissionsQueryKey = ME_PERMISSIONS_QUERY_KEY;
|
|
179
|
-
var useMePermissions = (options) => {
|
|
180
|
-
return useQuery2({
|
|
181
|
-
queryFn: () => sdk.admin.rbac.me.permissions.query(
|
|
182
|
-
{}
|
|
183
|
-
),
|
|
184
|
-
queryKey: mePermissionsQueryKey,
|
|
185
|
-
staleTime: 5 * 60 * 1e3,
|
|
186
|
-
...options
|
|
187
|
-
});
|
|
188
|
-
};
|
|
189
|
-
var ASSIGNABLE_ROLES_QUERY_KEY = ["rbac_assignable_roles"];
|
|
190
|
-
var useRbacAssignableRoles = (query, options) => {
|
|
191
|
-
return useQuery2({
|
|
192
|
-
queryFn: () => sdk.admin.rbac.roles.assignable.query({
|
|
193
|
-
...query
|
|
194
|
-
}),
|
|
195
|
-
queryKey: [...ASSIGNABLE_ROLES_QUERY_KEY, query],
|
|
196
|
-
staleTime: 5 * 60 * 1e3,
|
|
197
|
-
...options
|
|
198
|
-
});
|
|
199
|
-
};
|
|
200
|
-
|
|
201
|
-
export {
|
|
202
|
-
useFeatureFlag,
|
|
203
|
-
FeatureFlagProvider,
|
|
204
|
-
PermissionsProvider,
|
|
205
|
-
usePermissions,
|
|
206
|
-
useMePermissions,
|
|
207
|
-
useRbacAssignableRoles
|
|
208
|
-
};
|