@peanut-admin/vue 5.0.0 → 5.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,3 +1,5 @@
1
+ /** Checks one exact key; `*` is a grant marker, not a permission to query. */
1
2
  export declare const hasPermission: (permissions: ReadonlySet<string>, permission: string) => boolean;
3
+ /** Requires every key; use the policy evaluator for any-of checks. */
2
4
  export declare const hasAllPermissions: (permissions: ReadonlySet<string>, required: readonly string[]) => boolean;
3
5
  //# sourceMappingURL=access.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"access.d.ts","sourceRoot":"","sources":["../../src/access/access.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,aAAa,GACxB,aAAa,WAAW,CAAC,MAAM,CAAC,EAChC,YAAY,MAAM,KACjB,OAA4D,CAAC;AAEhE,eAAO,MAAM,iBAAiB,GAC5B,aAAa,WAAW,CAAC,MAAM,CAAC,EAChC,UAAU,SAAS,MAAM,EAAE,KAC1B,OACqE,CAAC"}
1
+ {"version":3,"file":"access.d.ts","sourceRoot":"","sources":["../../src/access/access.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,eAAO,MAAM,aAAa,GACxB,aAAa,WAAW,CAAC,MAAM,CAAC,EAChC,YAAY,MAAM,KACjB,OAA4D,CAAC;AAEhE,sEAAsE;AACtE,eAAO,MAAM,iBAAiB,GAC5B,aAAa,WAAW,CAAC,MAAM,CAAC,EAChC,UAAU,SAAS,MAAM,EAAE,KAC1B,OACqE,CAAC"}
@@ -1,3 +1,5 @@
1
+ /** Checks one exact key; `*` is a grant marker, not a permission to query. */
1
2
  export const hasPermission = (permissions, permission) => permission !== '*' && permissions.has(permission);
3
+ /** Requires every key; use the policy evaluator for any-of checks. */
2
4
  export const hasAllPermissions = (permissions, required) => required.every((permission) => hasPermission(permissions, permission));
3
5
  //# sourceMappingURL=access.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"access.js","sourceRoot":"","sources":["../../src/access/access.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,aAAa,GAAG,CAC3B,WAAgC,EAChC,UAAkB,EACT,EAAE,CAAC,UAAU,KAAK,GAAG,IAAI,WAAW,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;AAEhE,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAC/B,WAAgC,EAChC,QAA2B,EAClB,EAAE,CACX,QAAQ,CAAC,KAAK,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,aAAa,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"access.js","sourceRoot":"","sources":["../../src/access/access.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,MAAM,CAAC,MAAM,aAAa,GAAG,CAC3B,WAAgC,EAChC,UAAkB,EACT,EAAE,CAAC,UAAU,KAAK,GAAG,IAAI,WAAW,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;AAEhE,sEAAsE;AACtE,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAC/B,WAAgC,EAChC,QAA2B,EAClB,EAAE,CACX,QAAQ,CAAC,KAAK,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,aAAa,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC,CAAC"}
@@ -7,5 +7,8 @@ export declare const permissionEvaluatorSlot: {
7
7
  defaultValue: PermissionEvaluator;
8
8
  validate: (candidate: unknown) => candidate is PermissionEvaluator;
9
9
  };
10
+ /**
11
+ * Applies any-of semantics; empty lists are public, and a granted `*` opens it.
12
+ */
10
13
  export declare const evaluateRequiredPermissions: (requiredPermissions: string | string[], grantedPermissions: readonly string[], evaluator: PermissionEvaluator) => boolean;
11
14
  //# sourceMappingURL=permission-policy.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"permission-policy.d.ts","sourceRoot":"","sources":["../../src/access/permission-policy.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,mBAAmB,GAAG,CAChC,WAAW,EAAE,WAAW,CAAC,MAAM,CAAC,EAChC,UAAU,EAAE,MAAM,KACf,OAAO,CAAC;AAEb,eAAO,MAAM,iCAAiC,EAC5C,4CAAqD,CAAC;AAMxD,eAAO,MAAM,uBAAuB;;;;kBAIH,mBAAmB;0BAPvC,OAAO,KACjB,SAAS,IAAI,mBAAmB;CAQjC,CAAC;AAEH,eAAO,MAAM,2BAA2B,GACtC,qBAAqB,MAAM,GAAG,MAAM,EAAE,EACtC,oBAAoB,SAAS,MAAM,EAAE,EACrC,WAAW,mBAAmB,KAC7B,OAeF,CAAC"}
1
+ {"version":3,"file":"permission-policy.d.ts","sourceRoot":"","sources":["../../src/access/permission-policy.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,mBAAmB,GAAG,CAChC,WAAW,EAAE,WAAW,CAAC,MAAM,CAAC,EAChC,UAAU,EAAE,MAAM,KACf,OAAO,CAAC;AAEb,eAAO,MAAM,iCAAiC,EAC5C,4CAAqD,CAAC;AAMxD,eAAO,MAAM,uBAAuB;;;;kBAIH,mBAAmB;0BAPvC,OAAO,KACjB,SAAS,IAAI,mBAAmB;CAQjC,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,2BAA2B,GACtC,qBAAqB,MAAM,GAAG,MAAM,EAAE,EACtC,oBAAoB,SAAS,MAAM,EAAE,EACrC,WAAW,mBAAmB,KAC7B,OAeF,CAAC"}
@@ -9,6 +9,9 @@ export const permissionEvaluatorSlot = defineAdminOverrideSlot({
9
9
  defaultValue: hasPermission,
10
10
  validate: isPermissionEvaluator,
11
11
  });
12
+ /**
13
+ * Applies any-of semantics; empty lists are public, and a granted `*` opens it.
14
+ */
12
15
  export const evaluateRequiredPermissions = (requiredPermissions, grantedPermissions, evaluator) => {
13
16
  const required = (Array.isArray(requiredPermissions)
14
17
  ? requiredPermissions
@@ -1 +1 @@
1
- {"version":3,"file":"permission-policy.js","sourceRoot":"","sources":["../../src/access/permission-policy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAOlE,MAAM,CAAC,MAAM,iCAAiC,GAC5C,4CAAqD,CAAC;AAExD,MAAM,qBAAqB,GAAG,CAC5B,SAAkB,EACgB,EAAE,CAAC,OAAO,SAAS,KAAK,UAAU,CAAC;AAEvE,MAAM,CAAC,MAAM,uBAAuB,GAAG,uBAAuB,CAAC;IAC7D,GAAG,EAAE,iCAAiC;IACtC,IAAI,EAAE,SAAkB;IACxB,eAAe,EAAE,OAAO;IACxB,YAAY,EAAE,aAAoC;IAClD,QAAQ,EAAE,qBAAqB;CAChC,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,2BAA2B,GAAG,CACzC,mBAAsC,EACtC,kBAAqC,EACrC,SAA8B,EACrB,EAAE;IACX,MAAM,QAAQ,GAAG,CACf,KAAK,CAAC,OAAO,CAAC,mBAAmB,CAAC;QAChC,CAAC,CAAC,mBAAmB;QACrB,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAC1B,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAClB,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAEvC,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC,kBAAkB,CAAC,CAAC;IAClD,OAAO,CACL,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC;QACtB,QAAQ,CAAC,IAAI,CACX,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,KAAK,GAAG,IAAI,SAAS,CAAC,aAAa,EAAE,UAAU,CAAC,CAC3E,CACF,CAAC;AACJ,CAAC,CAAC"}
1
+ {"version":3,"file":"permission-policy.js","sourceRoot":"","sources":["../../src/access/permission-policy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAOlE,MAAM,CAAC,MAAM,iCAAiC,GAC5C,4CAAqD,CAAC;AAExD,MAAM,qBAAqB,GAAG,CAC5B,SAAkB,EACgB,EAAE,CAAC,OAAO,SAAS,KAAK,UAAU,CAAC;AAEvE,MAAM,CAAC,MAAM,uBAAuB,GAAG,uBAAuB,CAAC;IAC7D,GAAG,EAAE,iCAAiC;IACtC,IAAI,EAAE,SAAkB;IACxB,eAAe,EAAE,OAAO;IACxB,YAAY,EAAE,aAAoC;IAClD,QAAQ,EAAE,qBAAqB;CAChC,CAAC,CAAC;AAEH;;GAEG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAAG,CACzC,mBAAsC,EACtC,kBAAqC,EACrC,SAA8B,EACrB,EAAE;IACX,MAAM,QAAQ,GAAG,CACf,KAAK,CAAC,OAAO,CAAC,mBAAmB,CAAC;QAChC,CAAC,CAAC,mBAAmB;QACrB,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAC1B,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAClB,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAEvC,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC,kBAAkB,CAAC,CAAC;IAClD,OAAO,CACL,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC;QACtB,QAAQ,CAAC,IAAI,CACX,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,KAAK,GAAG,IAAI,SAAS,CAAC,aAAa,EAAE,UAAU,CAAC,CAC3E,CACF,CAAC;AACJ,CAAC,CAAC"}
@@ -24,5 +24,8 @@ export interface TenantAuthentication {
24
24
  }
25
25
  export type TenantSessionOutcome = TenantSelection | TenantAuthentication;
26
26
  export declare const isMultiTenantDeployment: (value: unknown) => boolean;
27
+ /**
28
+ * Checks the protocol prefix only; token claims are not decoded or validated.
29
+ */
27
30
  export declare const isTenantAccessToken: (token: string | null) => boolean;
28
31
  //# sourceMappingURL=tenant-session.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"tenant-session.d.ts","sourceRoot":"","sources":["../../src/auth/tenant-session.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,YAAY;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,mBAAmB,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,2BAA2B,CAAC;IACnC,eAAe,EAAE,MAAM,CAAC;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,YAAY,EAAE,CAAC;CACzB;AAED,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,eAAe,CAAC;IACvB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,QAAQ,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE;QACP,SAAS,EAAE,MAAM,CAAC;QAClB,UAAU,EAAE,MAAM,CAAC;QACnB,gBAAgB,EAAE,MAAM,CAAC;KAC1B,CAAC;CACH;AAED,MAAM,MAAM,oBAAoB,GAAG,eAAe,GAAG,oBAAoB,CAAC;AAE1E,eAAO,MAAM,uBAAuB,GAAI,OAAO,OAAO,KAAG,OAC/B,CAAC;AAE3B,eAAO,MAAM,mBAAmB,GAAI,OAAO,MAAM,GAAG,IAAI,KAAG,OACpB,CAAC"}
1
+ {"version":3,"file":"tenant-session.d.ts","sourceRoot":"","sources":["../../src/auth/tenant-session.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,YAAY;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,mBAAmB,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,2BAA2B,CAAC;IACnC,eAAe,EAAE,MAAM,CAAC;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,YAAY,EAAE,CAAC;CACzB;AAED,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,eAAe,CAAC;IACvB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,QAAQ,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE;QACP,SAAS,EAAE,MAAM,CAAC;QAClB,UAAU,EAAE,MAAM,CAAC;QACnB,gBAAgB,EAAE,MAAM,CAAC;KAC1B,CAAC;CACH;AAED,MAAM,MAAM,oBAAoB,GAAG,eAAe,GAAG,oBAAoB,CAAC;AAE1E,eAAO,MAAM,uBAAuB,GAAI,OAAO,OAAO,KAAG,OAC/B,CAAC;AAE3B;;GAEG;AACH,eAAO,MAAM,mBAAmB,GAAI,OAAO,MAAM,GAAG,IAAI,KAAG,OACpB,CAAC"}
@@ -1,3 +1,6 @@
1
1
  export const isMultiTenantDeployment = (value) => value === 'multi-tenant';
2
+ /**
3
+ * Checks the protocol prefix only; token claims are not decoded or validated.
4
+ */
2
5
  export const isTenantAccessToken = (token) => token?.startsWith('pa_tat_') === true;
3
6
  //# sourceMappingURL=tenant-session.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"tenant-session.js","sourceRoot":"","sources":["../../src/auth/tenant-session.ts"],"names":[],"mappings":"AA6BA,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,KAAc,EAAW,EAAE,CACjE,KAAK,KAAK,cAAc,CAAC;AAE3B,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,KAAoB,EAAW,EAAE,CACnE,KAAK,EAAE,UAAU,CAAC,SAAS,CAAC,KAAK,IAAI,CAAC"}
1
+ {"version":3,"file":"tenant-session.js","sourceRoot":"","sources":["../../src/auth/tenant-session.ts"],"names":[],"mappings":"AA6BA,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,KAAc,EAAW,EAAE,CACjE,KAAK,KAAK,cAAc,CAAC;AAE3B;;GAEG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,KAAoB,EAAW,EAAE,CACnE,KAAK,EAAE,UAAU,CAAC,SAAS,CAAC,KAAK,IAAI,CAAC"}
package/dist/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  export declare const PEANUT_ADMIN_VUE_PACKAGE: "@peanut-admin/vue";
2
- export declare const PEANUT_ADMIN_VUE_VERSION: "5.0.0";
2
+ export declare const PEANUT_ADMIN_VUE_VERSION: "5.0.2";
3
3
  export type { ApiAudience } from './api/audience.js';
4
4
  export { createBrowserRefreshCoordinator, createMemoryRefreshCoordinator, } from './api/refresh.js';
5
5
  export type { RefreshAttempt, RefreshCoordinator } from './api/refresh.js';
package/dist/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  export const PEANUT_ADMIN_VUE_PACKAGE = '@peanut-admin/vue';
2
- export const PEANUT_ADMIN_VUE_VERSION = '5.0.0';
2
+ export const PEANUT_ADMIN_VUE_VERSION = '5.0.2';
3
3
  export { createBrowserRefreshCoordinator, createMemoryRefreshCoordinator, } from './api/refresh.js';
4
4
  export { isProblemCode, parseProblemDetails } from './api/problem.js';
5
5
  export { hasAllPermissions, hasPermission } from './access/access.js';
@@ -9,7 +9,12 @@ export interface TenantLifecycle {
9
9
  capture: () => TenantLifecycleTicket;
10
10
  invalidate: () => number;
11
11
  }
12
+ /** Registers a unique callback for discarding tenant-owned state. */
12
13
  export declare const registerTenantDisposer: (key: string, disposer: TenantDisposer) => (() => void);
14
+ /** Runs all registered cleanups, then propagates the first failure, if any. */
13
15
  export declare const disposeTenantState: () => Promise<void>;
16
+ /**
17
+ * Creates generation tickets that reject late results after tenant changes.
18
+ */
14
19
  export declare const createTenantLifecycle: () => TenantLifecycle;
15
20
  //# sourceMappingURL=tenant.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"tenant.d.ts","sourceRoot":"","sources":["../../src/lifecycle/tenant.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,cAAc,GAAG,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;AAExD,MAAM,WAAW,qBAAqB;IACpC,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,WAAW,CAAC;IACpB,SAAS,EAAE,MAAM,OAAO,CAAC;CAC1B;AAED,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,MAAM,CAAC;IACtB,OAAO,EAAE,MAAM,qBAAqB,CAAC;IACrC,UAAU,EAAE,MAAM,MAAM,CAAC;CAC1B;AAID,eAAO,MAAM,sBAAsB,GACjC,KAAK,MAAM,EACX,UAAU,cAAc,KACvB,CAAC,MAAM,IAAI,CAWb,CAAC;AAEF,eAAO,MAAM,kBAAkB,QAAa,OAAO,CAAC,IAAI,CASvD,CAAC;AAEF,eAAO,MAAM,qBAAqB,QAAO,eAsBxC,CAAC"}
1
+ {"version":3,"file":"tenant.d.ts","sourceRoot":"","sources":["../../src/lifecycle/tenant.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,cAAc,GAAG,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;AAExD,MAAM,WAAW,qBAAqB;IACpC,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,WAAW,CAAC;IACpB,SAAS,EAAE,MAAM,OAAO,CAAC;CAC1B;AAED,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,MAAM,CAAC;IACtB,OAAO,EAAE,MAAM,qBAAqB,CAAC;IACrC,UAAU,EAAE,MAAM,MAAM,CAAC;CAC1B;AAID,qEAAqE;AACrE,eAAO,MAAM,sBAAsB,GACjC,KAAK,MAAM,EACX,UAAU,cAAc,KACvB,CAAC,MAAM,IAAI,CAWb,CAAC;AAEF,+EAA+E;AAC/E,eAAO,MAAM,kBAAkB,QAAa,OAAO,CAAC,IAAI,CASvD,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,qBAAqB,QAAO,eAsBxC,CAAC"}
@@ -1,4 +1,5 @@
1
1
  const tenantDisposers = new Map();
2
+ /** Registers a unique callback for discarding tenant-owned state. */
2
3
  export const registerTenantDisposer = (key, disposer) => {
3
4
  if (key === '' || tenantDisposers.has(key)) {
4
5
  throw new Error(`TENANT_DISPOSER_DUPLICATE: ${key}`);
@@ -10,6 +11,7 @@ export const registerTenantDisposer = (key, disposer) => {
10
11
  }
11
12
  };
12
13
  };
14
+ /** Runs all registered cleanups, then propagates the first failure, if any. */
13
15
  export const disposeTenantState = async () => {
14
16
  const disposers = [...tenantDisposers.values()];
15
17
  const results = await Promise.allSettled(disposers.map(async (disposer) => disposer()));
@@ -17,6 +19,9 @@ export const disposeTenantState = async () => {
17
19
  if (failure !== undefined)
18
20
  throw failure.reason;
19
21
  };
22
+ /**
23
+ * Creates generation tickets that reject late results after tenant changes.
24
+ */
20
25
  export const createTenantLifecycle = () => {
21
26
  let generation = 0;
22
27
  let controller = new AbortController();
@@ -1 +1 @@
1
- {"version":3,"file":"tenant.js","sourceRoot":"","sources":["../../src/lifecycle/tenant.ts"],"names":[],"mappings":"AAcA,MAAM,eAAe,GAAG,IAAI,GAAG,EAA0B,CAAC;AAE1D,MAAM,CAAC,MAAM,sBAAsB,GAAG,CACpC,GAAW,EACX,QAAwB,EACV,EAAE;IAChB,IAAI,GAAG,KAAK,EAAE,IAAI,eAAe,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;QAC3C,MAAM,IAAI,KAAK,CAAC,8BAA8B,GAAG,EAAE,CAAC,CAAC;IACvD,CAAC;IACD,eAAe,CAAC,GAAG,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;IAEnC,OAAO,GAAG,EAAE;QACV,IAAI,eAAe,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,QAAQ,EAAE,CAAC;YAC1C,eAAe,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC9B,CAAC;IACH,CAAC,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,kBAAkB,GAAG,KAAK,IAAmB,EAAE;IAC1D,MAAM,SAAS,GAAG,CAAC,GAAG,eAAe,CAAC,MAAM,EAAE,CAAC,CAAC;IAChD,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,UAAU,CACtC,SAAS,CAAC,GAAG,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE,CAAC,QAAQ,EAAE,CAAC,CAC9C,CAAC;IACF,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,CAC1B,CAAC,MAAM,EAAmC,EAAE,CAAC,MAAM,CAAC,MAAM,KAAK,UAAU,CAC1E,CAAC;IACF,IAAI,OAAO,KAAK,SAAS;QAAE,MAAM,OAAO,CAAC,MAAM,CAAC;AAClD,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,qBAAqB,GAAG,GAAoB,EAAE;IACzD,IAAI,UAAU,GAAG,CAAC,CAAC;IACnB,IAAI,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;IAEvC,OAAO;QACL,OAAO,EAAE,GAAG,EAAE,CAAC,UAAU;QACzB,OAAO,EAAE,GAAG,EAAE;YACZ,MAAM,kBAAkB,GAAG,UAAU,CAAC;YACtC,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC;YACjC,OAAO;gBACL,UAAU,EAAE,kBAAkB;gBAC9B,MAAM;gBACN,SAAS,EAAE,GAAG,EAAE,CAAC,kBAAkB,KAAK,UAAU,IAAI,CAAC,MAAM,CAAC,OAAO;aACtE,CAAC;QACJ,CAAC;QACD,UAAU,EAAE,GAAG,EAAE;YACf,UAAU,CAAC,KAAK,EAAE,CAAC;YACnB,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;YACnC,UAAU,IAAI,CAAC,CAAC;YAChB,OAAO,UAAU,CAAC;QACpB,CAAC;KACF,CAAC;AACJ,CAAC,CAAC"}
1
+ {"version":3,"file":"tenant.js","sourceRoot":"","sources":["../../src/lifecycle/tenant.ts"],"names":[],"mappings":"AAcA,MAAM,eAAe,GAAG,IAAI,GAAG,EAA0B,CAAC;AAE1D,qEAAqE;AACrE,MAAM,CAAC,MAAM,sBAAsB,GAAG,CACpC,GAAW,EACX,QAAwB,EACV,EAAE;IAChB,IAAI,GAAG,KAAK,EAAE,IAAI,eAAe,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;QAC3C,MAAM,IAAI,KAAK,CAAC,8BAA8B,GAAG,EAAE,CAAC,CAAC;IACvD,CAAC;IACD,eAAe,CAAC,GAAG,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;IAEnC,OAAO,GAAG,EAAE;QACV,IAAI,eAAe,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,QAAQ,EAAE,CAAC;YAC1C,eAAe,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC9B,CAAC;IACH,CAAC,CAAC;AACJ,CAAC,CAAC;AAEF,+EAA+E;AAC/E,MAAM,CAAC,MAAM,kBAAkB,GAAG,KAAK,IAAmB,EAAE;IAC1D,MAAM,SAAS,GAAG,CAAC,GAAG,eAAe,CAAC,MAAM,EAAE,CAAC,CAAC;IAChD,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,UAAU,CACtC,SAAS,CAAC,GAAG,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE,CAAC,QAAQ,EAAE,CAAC,CAC9C,CAAC;IACF,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,CAC1B,CAAC,MAAM,EAAmC,EAAE,CAAC,MAAM,CAAC,MAAM,KAAK,UAAU,CAC1E,CAAC;IACF,IAAI,OAAO,KAAK,SAAS;QAAE,MAAM,OAAO,CAAC,MAAM,CAAC;AAClD,CAAC,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,GAAoB,EAAE;IACzD,IAAI,UAAU,GAAG,CAAC,CAAC;IACnB,IAAI,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;IAEvC,OAAO;QACL,OAAO,EAAE,GAAG,EAAE,CAAC,UAAU;QACzB,OAAO,EAAE,GAAG,EAAE;YACZ,MAAM,kBAAkB,GAAG,UAAU,CAAC;YACtC,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC;YACjC,OAAO;gBACL,UAAU,EAAE,kBAAkB;gBAC9B,MAAM;gBACN,SAAS,EAAE,GAAG,EAAE,CAAC,kBAAkB,KAAK,UAAU,IAAI,CAAC,MAAM,CAAC,OAAO;aACtE,CAAC;QACJ,CAAC;QACD,UAAU,EAAE,GAAG,EAAE;YACf,UAAU,CAAC,KAAK,EAAE,CAAC;YACnB,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;YACnC,UAAU,IAAI,CAAC,CAAC;YAChB,OAAO,UAAU,CAAC;QACpB,CAAC;KACF,CAAC;AACJ,CAAC,CAAC"}
@@ -20,6 +20,9 @@ export interface PluginFrontendContribution<T extends PluginFrontendRoute = Plug
20
20
  export declare const collectPluginContributions: (modules: Record<string, {
21
21
  default?: PluginFrontendContribution;
22
22
  }>) => PluginFrontendContribution[];
23
- /** Deployment presence alone never exposes a Tenant Module route. */
23
+ /**
24
+ * Requires an enabled module plus at least one granted route permission.
25
+ * Routes with no permission declaration remain hidden.
26
+ */
24
27
  export declare const routesForTenantModules: <T extends PluginFrontendRoute>(contributions: PluginFrontendContribution<T>[], enabledModules: readonly string[], grantedPermissions: readonly string[], evaluator: PermissionEvaluator) => T[];
25
28
  //# sourceMappingURL=plugin-contribution-policy.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"plugin-contribution-policy.d.ts","sourceRoot":"","sources":["../../src/module/plugin-contribution-policy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AAG1E;;;GAGG;AACH,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,IAAI,CAAC,EAAE;QACL,mBAAmB,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;QACxC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;KACxB,CAAC;IACF,QAAQ,CAAC,EAAE,mBAAmB,EAAE,CAAC;CAClC;AAED,MAAM,WAAW,0BAA0B,CACzC,CAAC,SAAS,mBAAmB,GAAG,mBAAmB;IAEnD,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,CAAC,EAAE,CAAC;CACb;AAED,eAAO,MAAM,0BAA0B,GACrC,SAAS,MAAM,CAAC,MAAM,EAAE;IAAE,OAAO,CAAC,EAAE,0BAA0B,CAAA;CAAE,CAAC,KAChE,0BAA0B,EASxB,CAAC;AAEN,qEAAqE;AACrE,eAAO,MAAM,sBAAsB,GAAI,CAAC,SAAS,mBAAmB,EAClE,eAAe,0BAA0B,CAAC,CAAC,CAAC,EAAE,EAC9C,gBAAgB,SAAS,MAAM,EAAE,EACjC,oBAAoB,SAAS,MAAM,EAAE,EACrC,WAAW,mBAAmB,KAC7B,CAAC,EAYH,CAAC"}
1
+ {"version":3,"file":"plugin-contribution-policy.d.ts","sourceRoot":"","sources":["../../src/module/plugin-contribution-policy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AAG1E;;;GAGG;AACH,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,IAAI,CAAC,EAAE;QACL,mBAAmB,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;QACxC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;KACxB,CAAC;IACF,QAAQ,CAAC,EAAE,mBAAmB,EAAE,CAAC;CAClC;AAED,MAAM,WAAW,0BAA0B,CACzC,CAAC,SAAS,mBAAmB,GAAG,mBAAmB;IAEnD,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,CAAC,EAAE,CAAC;CACb;AAED,eAAO,MAAM,0BAA0B,GACrC,SAAS,MAAM,CAAC,MAAM,EAAE;IAAE,OAAO,CAAC,EAAE,0BAA0B,CAAA;CAAE,CAAC,KAChE,0BAA0B,EASxB,CAAC;AAEN;;;GAGG;AACH,eAAO,MAAM,sBAAsB,GAAI,CAAC,SAAS,mBAAmB,EAClE,eAAe,0BAA0B,CAAC,CAAC,CAAC,EAAE,EAC9C,gBAAgB,SAAS,MAAM,EAAE,EACjC,oBAAoB,SAAS,MAAM,EAAE,EACrC,WAAW,mBAAmB,KAC7B,CAAC,EAYH,CAAC"}
@@ -5,7 +5,10 @@ export const collectPluginContributions = (modules) => Object.keys(modules)
5
5
  .filter((contribution) => typeof contribution?.moduleKey === 'string' &&
6
6
  contribution.moduleKey.length > 0 &&
7
7
  Array.isArray(contribution.routes));
8
- /** Deployment presence alone never exposes a Tenant Module route. */
8
+ /**
9
+ * Requires an enabled module plus at least one granted route permission.
10
+ * Routes with no permission declaration remain hidden.
11
+ */
9
12
  export const routesForTenantModules = (contributions, enabledModules, grantedPermissions, evaluator) => {
10
13
  const enabled = new Set(enabledModules);
11
14
  return contributions.flatMap((contribution) => {
@@ -1 +1 @@
1
- {"version":3,"file":"plugin-contribution-policy.js","sourceRoot":"","sources":["../../src/module/plugin-contribution-policy.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,2BAA2B,EAAE,MAAM,gCAAgC,CAAC;AAwB7E,MAAM,CAAC,MAAM,0BAA0B,GAAG,CACxC,OAAiE,EACnC,EAAE,CAChC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC;KACjB,IAAI,EAAE;KACN,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC;KACrC,MAAM,CACL,CAAC,YAAY,EAA8C,EAAE,CAC3D,OAAO,YAAY,EAAE,SAAS,KAAK,QAAQ;IAC3C,YAAY,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC;IACjC,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,MAAM,CAAC,CACrC,CAAC;AAEN,qEAAqE;AACrE,MAAM,CAAC,MAAM,sBAAsB,GAAG,CACpC,aAA8C,EAC9C,cAAiC,EACjC,kBAAqC,EACrC,SAA8B,EACzB,EAAE;IACP,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,cAAc,CAAC,CAAC;IACxC,OAAO,aAAa,CAAC,OAAO,CAAC,CAAC,YAAY,EAAE,EAAE;QAC5C,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,SAAS,CAAC;YAAE,OAAO,EAAE,CAAC;QACpD,OAAO,YAAY,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE;YAC1C,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,EAAE,mBAAmB,CAAC;YACjD,OAAO,CACL,CAAC,OAAO,QAAQ,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;gBACzD,2BAA2B,CAAC,QAAQ,EAAE,kBAAkB,EAAE,SAAS,CAAC,CACrE,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC"}
1
+ {"version":3,"file":"plugin-contribution-policy.js","sourceRoot":"","sources":["../../src/module/plugin-contribution-policy.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,2BAA2B,EAAE,MAAM,gCAAgC,CAAC;AAwB7E,MAAM,CAAC,MAAM,0BAA0B,GAAG,CACxC,OAAiE,EACnC,EAAE,CAChC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC;KACjB,IAAI,EAAE;KACN,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC;KACrC,MAAM,CACL,CAAC,YAAY,EAA8C,EAAE,CAC3D,OAAO,YAAY,EAAE,SAAS,KAAK,QAAQ;IAC3C,YAAY,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC;IACjC,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,MAAM,CAAC,CACrC,CAAC;AAEN;;;GAGG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,CACpC,aAA8C,EAC9C,cAAiC,EACjC,kBAAqC,EACrC,SAA8B,EACzB,EAAE;IACP,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,cAAc,CAAC,CAAC;IACxC,OAAO,aAAa,CAAC,OAAO,CAAC,CAAC,YAAY,EAAE,EAAE;QAC5C,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,SAAS,CAAC;YAAE,OAAO,EAAE,CAAC;QACpD,OAAO,YAAY,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE;YAC1C,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,EAAE,mBAAmB,CAAC;YACjD,OAAO,CACL,CAAC,OAAO,QAAQ,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;gBACzD,2BAA2B,CAAC,QAAQ,EAAE,kBAAkB,EAAE,SAAS,CAAC,CACrE,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC"}
@@ -20,5 +20,9 @@ export type AdminRouteGuardResult = {
20
20
  status: 'forbidden';
21
21
  code: 'AUTHZ_FUNCTIONAL_DENIED';
22
22
  };
23
+ /**
24
+ * Loads audience context and navigation before module and permission gates.
25
+ * This is a client navigation check, not a substitute for API authorization.
26
+ */
23
27
  export declare const runAdminRouteGuard: (route: AdminRouteGuardInput, dependencies: AdminRouteGuardDependencies) => Promise<AdminRouteGuardResult>;
24
28
  //# sourceMappingURL=guard.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"guard.d.ts","sourceRoot":"","sources":["../../src/runtime/guard.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEtD,MAAM,WAAW,oBAAoB;IACnC,QAAQ,EAAE,WAAW,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CACpC;AAED,MAAM,WAAW,2BAA2B;IAC1C,aAAa,EAAE,CAAC,QAAQ,EAAE,WAAW,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACxD,aAAa,EAAE,CAAC,QAAQ,EAAE,WAAW,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACxD,cAAc,EAAE,CAAC,QAAQ,EAAE,WAAW,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACzD,SAAS,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC;IAC1C,cAAc,EAAE,CAAC,cAAc,EAAE,SAAS,MAAM,EAAE,KAAK,OAAO,CAAC;CAChE;AAED,MAAM,MAAM,qBAAqB,GAC7B;IAAE,MAAM,EAAE,SAAS,CAAA;CAAE,GACrB;IAAE,MAAM,EAAE,oBAAoB,CAAC;IAAC,IAAI,EAAE,wBAAwB,CAAA;CAAE,GAChE;IAAE,MAAM,EAAE,WAAW,CAAC;IAAC,IAAI,EAAE,yBAAyB,CAAA;CAAE,CAAC;AAE7D,eAAO,MAAM,kBAAkB,GAC7B,OAAO,oBAAoB,EAC3B,cAAc,2BAA2B,KACxC,OAAO,CAAC,qBAAqB,CAoB/B,CAAC"}
1
+ {"version":3,"file":"guard.d.ts","sourceRoot":"","sources":["../../src/runtime/guard.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEtD,MAAM,WAAW,oBAAoB;IACnC,QAAQ,EAAE,WAAW,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CACpC;AAED,MAAM,WAAW,2BAA2B;IAC1C,aAAa,EAAE,CAAC,QAAQ,EAAE,WAAW,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACxD,aAAa,EAAE,CAAC,QAAQ,EAAE,WAAW,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACxD,cAAc,EAAE,CAAC,QAAQ,EAAE,WAAW,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACzD,SAAS,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC;IAC1C,cAAc,EAAE,CAAC,cAAc,EAAE,SAAS,MAAM,EAAE,KAAK,OAAO,CAAC;CAChE;AAED,MAAM,MAAM,qBAAqB,GAC7B;IAAE,MAAM,EAAE,SAAS,CAAA;CAAE,GACrB;IAAE,MAAM,EAAE,oBAAoB,CAAC;IAAC,IAAI,EAAE,wBAAwB,CAAA;CAAE,GAChE;IAAE,MAAM,EAAE,WAAW,CAAC;IAAC,IAAI,EAAE,yBAAyB,CAAA;CAAE,CAAC;AAE7D;;;GAGG;AACH,eAAO,MAAM,kBAAkB,GAC7B,OAAO,oBAAoB,EAC3B,cAAc,2BAA2B,KACxC,OAAO,CAAC,qBAAqB,CAoB/B,CAAC"}
@@ -1,3 +1,7 @@
1
+ /**
2
+ * Loads audience context and navigation before module and permission gates.
3
+ * This is a client navigation check, not a substitute for API authorization.
4
+ */
1
5
  export const runAdminRouteGuard = async (route, dependencies) => {
2
6
  await dependencies.enterAudience(route.audience);
3
7
  await dependencies.ensureContext(route.audience);
@@ -1 +1 @@
1
- {"version":3,"file":"guard.js","sourceRoot":"","sources":["../../src/runtime/guard.ts"],"names":[],"mappings":"AAqBA,MAAM,CAAC,MAAM,kBAAkB,GAAG,KAAK,EACrC,KAA2B,EAC3B,YAAyC,EACT,EAAE;IAClC,MAAM,YAAY,CAAC,aAAa,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IACjD,MAAM,YAAY,CAAC,aAAa,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IACjD,MAAM,YAAY,CAAC,cAAc,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IAElD,IACE,KAAK,CAAC,SAAS,KAAK,SAAS;QAC7B,CAAC,YAAY,CAAC,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC,EACxC,CAAC;QACD,OAAO,EAAE,MAAM,EAAE,oBAAoB,EAAE,IAAI,EAAE,wBAAwB,EAAE,CAAC;IAC1E,CAAC;IACD,IACE,KAAK,CAAC,cAAc,KAAK,SAAS;QAClC,KAAK,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC;QAC/B,CAAC,YAAY,CAAC,cAAc,CAAC,KAAK,CAAC,cAAc,CAAC,EAClD,CAAC;QACD,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,yBAAyB,EAAE,CAAC;IAClE,CAAC;IAED,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;AAC/B,CAAC,CAAC"}
1
+ {"version":3,"file":"guard.js","sourceRoot":"","sources":["../../src/runtime/guard.ts"],"names":[],"mappings":"AAqBA;;;GAGG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,KAAK,EACrC,KAA2B,EAC3B,YAAyC,EACT,EAAE;IAClC,MAAM,YAAY,CAAC,aAAa,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IACjD,MAAM,YAAY,CAAC,aAAa,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IACjD,MAAM,YAAY,CAAC,cAAc,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IAElD,IACE,KAAK,CAAC,SAAS,KAAK,SAAS;QAC7B,CAAC,YAAY,CAAC,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC,EACxC,CAAC;QACD,OAAO,EAAE,MAAM,EAAE,oBAAoB,EAAE,IAAI,EAAE,wBAAwB,EAAE,CAAC;IAC1E,CAAC;IACD,IACE,KAAK,CAAC,cAAc,KAAK,SAAS;QAClC,KAAK,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC;QAC/B,CAAC,YAAY,CAAC,cAAc,CAAC,KAAK,CAAC,cAAc,CAAC,EAClD,CAAC;QACD,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,yBAAyB,EAAE,CAAC;IAClE,CAAC;IAED,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;AAC/B,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@peanut-admin/vue",
3
- "version": "5.0.0",
3
+ "version": "5.0.2",
4
4
  "description": "Vue integration primitives for Peanut Admin",
5
5
  "type": "module",
6
6
  "license": "Apache-2.0",
@@ -23,7 +23,8 @@
23
23
  "scripts": {
24
24
  "build": "tsc -p tsconfig.json",
25
25
  "typecheck": "tsc --noEmit -p tsconfig.json",
26
- "pack:candidate": "pnpm pack --pack-destination ../../artifacts"
26
+ "pack:candidate": "pnpm pack --pack-destination ../../artifacts",
27
+ "watch": "tsc -p tsconfig.json --watch --preserveWatchOutput"
27
28
  },
28
29
  "peerDependencies": {
29
30
  "pinia": ">=2.0.23 <5",