@nextsparkjs/core 0.1.0-beta.192 → 0.1.0-beta.194
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/README.md +2 -2
- package/dist/components/app/layouts/PublicFooter.js +1 -1
- package/dist/components/app/layouts/PublicNavbar.js +1 -1
- package/dist/components/app/misc/ThemeToggle.d.ts.map +1 -1
- package/dist/components/app/misc/ThemeToggle.js +4 -3
- package/dist/lib/api/auth/permissions.d.ts +10 -0
- package/dist/lib/api/auth/permissions.d.ts.map +1 -1
- package/dist/lib/api/auth/permissions.js +7 -0
- package/dist/lib/api/rate-limit.d.ts.map +1 -1
- package/dist/lib/api/rate-limit.js +3 -0
- package/dist/lib/api/request-origin.d.ts +26 -0
- package/dist/lib/api/request-origin.d.ts.map +1 -0
- package/dist/lib/api/request-origin.js +46 -0
- package/dist/lib/auth.d.ts.map +1 -1
- package/dist/lib/auth.js +8 -12
- package/dist/lib/config/features-types.d.ts +5 -4
- package/dist/lib/config/features-types.d.ts.map +1 -1
- package/dist/lib/entities/external-api-generator.d.ts.map +1 -1
- package/dist/lib/entities/external-api-generator.js +3 -1
- package/dist/lib/selectors/auth-sel.d.ts +2 -7
- package/dist/lib/selectors/auth-sel.d.ts.map +1 -1
- package/dist/lib/selectors/auth-sel.js +1 -3
- package/dist/lib/selectors/by-domain/auth.d.ts +8 -0
- package/dist/lib/selectors/by-domain/auth.d.ts.map +1 -0
- package/dist/lib/selectors/by-domain/auth.js +10 -0
- package/dist/lib/selectors/by-domain/block-editor.d.ts +8 -0
- package/dist/lib/selectors/by-domain/block-editor.d.ts.map +1 -0
- package/dist/lib/selectors/by-domain/block-editor.js +10 -0
- package/dist/lib/selectors/by-domain/common.d.ts +8 -0
- package/dist/lib/selectors/by-domain/common.d.ts.map +1 -0
- package/dist/lib/selectors/by-domain/common.js +10 -0
- package/dist/lib/selectors/by-domain/dashboard.d.ts +8 -0
- package/dist/lib/selectors/by-domain/dashboard.d.ts.map +1 -0
- package/dist/lib/selectors/by-domain/dashboard.js +10 -0
- package/dist/lib/selectors/by-domain/devtools.d.ts +8 -0
- package/dist/lib/selectors/by-domain/devtools.d.ts.map +1 -0
- package/dist/lib/selectors/by-domain/devtools.js +10 -0
- package/dist/lib/selectors/by-domain/entities.d.ts +8 -0
- package/dist/lib/selectors/by-domain/entities.d.ts.map +1 -0
- package/dist/lib/selectors/by-domain/entities.js +10 -0
- package/dist/lib/selectors/by-domain/global-search.d.ts +8 -0
- package/dist/lib/selectors/by-domain/global-search.d.ts.map +1 -0
- package/dist/lib/selectors/by-domain/global-search.js +10 -0
- package/dist/lib/selectors/by-domain/media.d.ts +8 -0
- package/dist/lib/selectors/by-domain/media.d.ts.map +1 -0
- package/dist/lib/selectors/by-domain/media.js +10 -0
- package/dist/lib/selectors/by-domain/patterns.d.ts +8 -0
- package/dist/lib/selectors/by-domain/patterns.d.ts.map +1 -0
- package/dist/lib/selectors/by-domain/patterns.js +10 -0
- package/dist/lib/selectors/by-domain/public.d.ts +8 -0
- package/dist/lib/selectors/by-domain/public.d.ts.map +1 -0
- package/dist/lib/selectors/by-domain/public.js +10 -0
- package/dist/lib/selectors/by-domain/settings.d.ts +8 -0
- package/dist/lib/selectors/by-domain/settings.d.ts.map +1 -0
- package/dist/lib/selectors/by-domain/settings.js +10 -0
- package/dist/lib/selectors/by-domain/superadmin.d.ts +8 -0
- package/dist/lib/selectors/by-domain/superadmin.d.ts.map +1 -0
- package/dist/lib/selectors/by-domain/superadmin.js +10 -0
- package/dist/lib/selectors/by-domain/taxonomies.d.ts +8 -0
- package/dist/lib/selectors/by-domain/taxonomies.d.ts.map +1 -0
- package/dist/lib/selectors/by-domain/taxonomies.js +10 -0
- package/dist/lib/selectors/by-domain/teams.d.ts +8 -0
- package/dist/lib/selectors/by-domain/teams.d.ts.map +1 -0
- package/dist/lib/selectors/by-domain/teams.js +10 -0
- package/dist/lib/selectors/core-selectors.d.ts +1 -0
- package/dist/lib/selectors/core-selectors.d.ts.map +1 -1
- package/dist/lib/selectors/domains/public.selectors.d.ts +1 -0
- package/dist/lib/selectors/domains/public.selectors.d.ts.map +1 -1
- package/dist/lib/selectors/domains/public.selectors.js +3 -1
- package/dist/lib/selectors/selectors.d.ts +2 -0
- package/dist/lib/selectors/selectors.d.ts.map +1 -1
- package/dist/lib/services/subscription.service.d.ts.map +1 -1
- package/dist/lib/services/subscription.service.js +3 -0
- package/dist/lib/theme/ThemeProvider.d.ts.map +1 -1
- package/dist/lib/theme/ThemeProvider.js +7 -5
- package/dist/lib/utils/cors.d.ts +7 -0
- package/dist/lib/utils/cors.d.ts.map +1 -1
- package/dist/lib/utils/cors.js +8 -0
- package/dist/routes/(auth)/accept-invite/[token]/page.js +1 -1
- package/dist/routes/(auth)/forgot-password/page.js +1 -1
- package/dist/routes/(auth)/reset-password/page.js +1 -1
- package/dist/routes/(auth)/signup/page.cc.d.ts +2 -2
- package/dist/routes/(auth)/signup/page.d.ts +1 -1
- package/dist/routes/(auth)/signup/page.d.ts.map +1 -1
- package/dist/routes/(auth)/signup/page.js +1 -5
- package/dist/routes/(auth)/verify-email/page.js +1 -1
- package/dist/routes/(public)/docs/[section]/[page]/page.cc.js +1 -1
- package/dist/routes/(public)/docs/[section]/[page]/page.js +1 -1
- package/dist/routes/(public)/docs/layout.js +1 -1
- package/dist/routes/(public)/docs/page.js +1 -1
- package/dist/routes/_internal/default-public-layout.d.ts +5 -0
- package/dist/routes/_internal/default-public-layout.d.ts.map +1 -1
- package/dist/routes/_internal/default-public-layout.js +1 -2
- package/dist/routes/api/v1/users/[id]/meta/[key]/route.d.ts.map +1 -1
- package/dist/routes/api/v1/users/[id]/meta/[key]/route.js +13 -0
- package/dist/routes/api/v1/users/[id]/route.d.ts.map +1 -1
- package/dist/routes/api/v1/users/[id]/route.js +17 -0
- package/dist/routes/devtools/blocks/[slug]/page.d.ts +4 -1
- package/dist/routes/devtools/blocks/[slug]/page.d.ts.map +1 -1
- package/dist/routes/devtools/blocks/[slug]/page.js +2 -1
- package/dist/templates/features/blog/blocks/post-content/component.tsx +1 -1
- package/dist/templates/features/blog/entities/posts/posts.config.ts +0 -11
- package/dist/templates/features/pages/blocks/hero/component.tsx +1 -1
- package/dist/templates/features/pages/entities/pages/pages.config.ts +0 -11
- package/dist/templates/projects/blog/lib/block-selectors.ts +29 -0
- package/dist/templates/projects/blog/lib/selectors.ts +2 -9
- package/dist/templates/projects/blog/package.json +4 -7
- package/dist/templates/projects/crm/lib/block-selectors.ts +29 -0
- package/dist/templates/projects/crm/lib/selectors.ts +2 -9
- package/dist/templates/projects/crm/package.json +4 -4
- package/dist/templates/projects/crm/templates/dashboard/(main)/layout.tsx +2 -17
- package/dist/templates/projects/crm/templates/shared/CRMSidebarContext.tsx +23 -0
- package/dist/templates/projects/productivity/entities/boards/boards.service.ts +18 -18
- package/dist/templates/projects/productivity/entities/cards/cards.service.ts +18 -18
- package/dist/templates/projects/productivity/entities/lists/lists.service.ts +18 -18
- package/dist/templates/projects/productivity/lib/block-selectors.ts +29 -0
- package/dist/templates/projects/productivity/lib/selectors.ts +2 -9
- package/dist/templates/projects/productivity/package.json +4 -4
- package/dist/templates/projects/starter/lib/block-selectors.ts +28 -0
- package/dist/templates/projects/starter/lib/selectors.ts +2 -11
- package/package.json +12 -5
- package/scripts/build/auth-readiness.mjs +4 -0
- package/scripts/build/registry/__tests__/build-output.test.mjs +1 -1
- package/scripts/build/registry/__tests__/project-mode-root-first.test.mjs +6 -6
- package/scripts/build/registry/__tests__/write-places.test.mjs +1 -1
- package/scripts/build/registry/contracts/__tests__/contracts-wire.test.mjs +1 -1
- package/scripts/build/registry/contracts/__tests__/contracts.test.mjs +1 -1
- package/scripts/build/registry/contracts/render.mjs +3 -3
- package/scripts/build/registry/host/README.md +2 -2
- package/scripts/build/registry/host/__tests__/facade-emitter.test.mjs +9 -9
- package/scripts/build/registry/host/__tests__/host-mode.test.mjs +1 -1
- package/scripts/build/registry/host/__tests__/host-project-composition.test.mjs +1 -1
- package/scripts/build/registry/host/__tests__/host-project.test.mjs +2 -2
- package/scripts/build/registry/host/__tests__/host-robustness.test.mjs +65 -2
- package/scripts/build/registry/host/facade-emitter.mjs +2 -2
- package/scripts/build/registry/host/generation.mjs +54 -0
- package/scripts/build/registry/host/next-route-exports.json +2 -2
- package/scripts/build/registry/host/prepare.mjs +3 -0
- package/scripts/db/migration-time-limit.mjs +216 -34
- package/scripts/db/run-migrations.mjs +11 -179
- package/scripts/db/verify-theme-migrations.mjs +1 -1
- package/templates/features/blog/blocks/post-content/component.tsx +1 -1
- package/templates/features/blog/entities/posts/posts.config.ts +0 -11
- package/templates/features/pages/blocks/hero/component.tsx +1 -1
- package/templates/features/pages/entities/pages/pages.config.ts +0 -11
- package/templates/projects/blog/lib/block-selectors.ts +29 -0
- package/templates/projects/blog/lib/selectors.ts +2 -9
- package/templates/projects/blog/package.json +4 -7
- package/templates/projects/crm/lib/block-selectors.ts +29 -0
- package/templates/projects/crm/lib/selectors.ts +2 -9
- package/templates/projects/crm/package.json +4 -4
- package/templates/projects/crm/templates/dashboard/(main)/layout.tsx +2 -17
- package/templates/projects/crm/templates/shared/CRMSidebarContext.tsx +23 -0
- package/templates/projects/productivity/entities/boards/boards.service.ts +18 -18
- package/templates/projects/productivity/entities/cards/cards.service.ts +18 -18
- package/templates/projects/productivity/entities/lists/lists.service.ts +18 -18
- package/templates/projects/productivity/lib/block-selectors.ts +29 -0
- package/templates/projects/productivity/lib/selectors.ts +2 -9
- package/templates/projects/productivity/package.json +4 -4
- package/templates/projects/starter/lib/block-selectors.ts +28 -0
- package/templates/projects/starter/lib/selectors.ts +2 -11
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { createSelectorHelpers } from "../selector-factory.js";
|
|
2
|
+
import { PUBLIC_SELECTORS } from "../domains/public.selectors.js";
|
|
3
|
+
const { sel, s, selDev, cySelector } = createSelectorHelpers({ public: PUBLIC_SELECTORS });
|
|
4
|
+
export {
|
|
5
|
+
PUBLIC_SELECTORS,
|
|
6
|
+
cySelector,
|
|
7
|
+
s,
|
|
8
|
+
sel,
|
|
9
|
+
selDev
|
|
10
|
+
};
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `sel` bound to the `settings` domain only: `import { sel } from '@nextsparkjs/core/selectors/settings'`.
|
|
3
|
+
* Same paths and values as the barrel's `sel('settings.…')`, without shipping the other domains to the page.
|
|
4
|
+
*/
|
|
5
|
+
import { SETTINGS_SELECTORS } from '../domains/settings.selectors';
|
|
6
|
+
export { SETTINGS_SELECTORS };
|
|
7
|
+
export declare const sel: (path: string, replacements?: import("..").Replacements) => string, s: (path: string, replacements?: import("..").Replacements) => string, selDev: (path: string, replacements?: import("..").Replacements) => string | undefined, cySelector: (path: string, replacements?: import("..").Replacements) => string;
|
|
8
|
+
//# sourceMappingURL=settings.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"settings.d.ts","sourceRoot":"","sources":["../../../../src/lib/selectors/by-domain/settings.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAA;AAElE,OAAO,EAAE,kBAAkB,EAAE,CAAA;AAC7B,eAAO,MAAQ,GAAG,sEAAE,CAAC,sEAAE,MAAM,kFAAE,UAAU,oEAA4D,CAAA"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { createSelectorHelpers } from "../selector-factory.js";
|
|
2
|
+
import { SETTINGS_SELECTORS } from "../domains/settings.selectors.js";
|
|
3
|
+
const { sel, s, selDev, cySelector } = createSelectorHelpers({ settings: SETTINGS_SELECTORS });
|
|
4
|
+
export {
|
|
5
|
+
SETTINGS_SELECTORS,
|
|
6
|
+
cySelector,
|
|
7
|
+
s,
|
|
8
|
+
sel,
|
|
9
|
+
selDev
|
|
10
|
+
};
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `sel` bound to the `superadmin` domain only: `import { sel } from '@nextsparkjs/core/selectors/superadmin'`.
|
|
3
|
+
* Same paths and values as the barrel's `sel('superadmin.…')`, without shipping the other domains to the page.
|
|
4
|
+
*/
|
|
5
|
+
import { SUPERADMIN_SELECTORS } from '../domains/superadmin.selectors';
|
|
6
|
+
export { SUPERADMIN_SELECTORS };
|
|
7
|
+
export declare const sel: (path: string, replacements?: import("..").Replacements) => string, s: (path: string, replacements?: import("..").Replacements) => string, selDev: (path: string, replacements?: import("..").Replacements) => string | undefined, cySelector: (path: string, replacements?: import("..").Replacements) => string;
|
|
8
|
+
//# sourceMappingURL=superadmin.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"superadmin.d.ts","sourceRoot":"","sources":["../../../../src/lib/selectors/by-domain/superadmin.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,oBAAoB,EAAE,MAAM,iCAAiC,CAAA;AAEtE,OAAO,EAAE,oBAAoB,EAAE,CAAA;AAC/B,eAAO,MAAQ,GAAG,sEAAE,CAAC,sEAAE,MAAM,kFAAE,UAAU,oEAAgE,CAAA"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { createSelectorHelpers } from "../selector-factory.js";
|
|
2
|
+
import { SUPERADMIN_SELECTORS } from "../domains/superadmin.selectors.js";
|
|
3
|
+
const { sel, s, selDev, cySelector } = createSelectorHelpers({ superadmin: SUPERADMIN_SELECTORS });
|
|
4
|
+
export {
|
|
5
|
+
SUPERADMIN_SELECTORS,
|
|
6
|
+
cySelector,
|
|
7
|
+
s,
|
|
8
|
+
sel,
|
|
9
|
+
selDev
|
|
10
|
+
};
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `sel` bound to the `taxonomies` domain only: `import { sel } from '@nextsparkjs/core/selectors/taxonomies'`.
|
|
3
|
+
* Same paths and values as the barrel's `sel('taxonomies.…')`, without shipping the other domains to the page.
|
|
4
|
+
*/
|
|
5
|
+
import { TAXONOMIES_SELECTORS } from '../domains/taxonomies.selectors';
|
|
6
|
+
export { TAXONOMIES_SELECTORS };
|
|
7
|
+
export declare const sel: (path: string, replacements?: import("..").Replacements) => string, s: (path: string, replacements?: import("..").Replacements) => string, selDev: (path: string, replacements?: import("..").Replacements) => string | undefined, cySelector: (path: string, replacements?: import("..").Replacements) => string;
|
|
8
|
+
//# sourceMappingURL=taxonomies.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"taxonomies.d.ts","sourceRoot":"","sources":["../../../../src/lib/selectors/by-domain/taxonomies.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,oBAAoB,EAAE,MAAM,iCAAiC,CAAA;AAEtE,OAAO,EAAE,oBAAoB,EAAE,CAAA;AAC/B,eAAO,MAAQ,GAAG,sEAAE,CAAC,sEAAE,MAAM,kFAAE,UAAU,oEAAgE,CAAA"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { createSelectorHelpers } from "../selector-factory.js";
|
|
2
|
+
import { TAXONOMIES_SELECTORS } from "../domains/taxonomies.selectors.js";
|
|
3
|
+
const { sel, s, selDev, cySelector } = createSelectorHelpers({ taxonomies: TAXONOMIES_SELECTORS });
|
|
4
|
+
export {
|
|
5
|
+
TAXONOMIES_SELECTORS,
|
|
6
|
+
cySelector,
|
|
7
|
+
s,
|
|
8
|
+
sel,
|
|
9
|
+
selDev
|
|
10
|
+
};
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `sel` bound to the `teams` domain only: `import { sel } from '@nextsparkjs/core/selectors/teams'`.
|
|
3
|
+
* Same paths and values as the barrel's `sel('teams.…')`, without shipping the other domains to the page.
|
|
4
|
+
*/
|
|
5
|
+
import { TEAMS_SELECTORS } from '../domains/teams.selectors';
|
|
6
|
+
export { TEAMS_SELECTORS };
|
|
7
|
+
export declare const sel: (path: string, replacements?: import("..").Replacements) => string, s: (path: string, replacements?: import("..").Replacements) => string, selDev: (path: string, replacements?: import("..").Replacements) => string | undefined, cySelector: (path: string, replacements?: import("..").Replacements) => string;
|
|
8
|
+
//# sourceMappingURL=teams.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"teams.d.ts","sourceRoot":"","sources":["../../../../src/lib/selectors/by-domain/teams.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AAE5D,OAAO,EAAE,eAAe,EAAE,CAAA;AAC1B,eAAO,MAAQ,GAAG,sEAAE,CAAC,sEAAE,MAAM,kFAAE,UAAU,oEAAsD,CAAA"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { createSelectorHelpers } from "../selector-factory.js";
|
|
2
|
+
import { TEAMS_SELECTORS } from "../domains/teams.selectors.js";
|
|
3
|
+
const { sel, s, selDev, cySelector } = createSelectorHelpers({ teams: TEAMS_SELECTORS });
|
|
4
|
+
export {
|
|
5
|
+
TEAMS_SELECTORS,
|
|
6
|
+
cySelector,
|
|
7
|
+
s,
|
|
8
|
+
sel,
|
|
9
|
+
selDev
|
|
10
|
+
};
|
|
@@ -1434,6 +1434,7 @@ export declare const CORE_SELECTORS: {
|
|
|
1434
1434
|
readonly logo: "navbar-logo";
|
|
1435
1435
|
readonly loginButton: "navbar-login";
|
|
1436
1436
|
readonly signupButton: "navbar-signup";
|
|
1437
|
+
readonly themeToggle: "topnav-theme-toggle";
|
|
1437
1438
|
};
|
|
1438
1439
|
readonly footer: {
|
|
1439
1440
|
readonly container: "public-footer";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"core-selectors.d.ts","sourceRoot":"","sources":["../../../src/lib/selectors/core-selectors.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAiBH;;;;;;;;;;;;;;;;;GAiBG;AACH,eAAO,MAAM,cAAc
|
|
1
|
+
{"version":3,"file":"core-selectors.d.ts","sourceRoot":"","sources":["../../../src/lib/selectors/core-selectors.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAiBH;;;;;;;;;;;;;;;;;GAiBG;AACH,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAejB,CAAA;AAEV;;GAEG;AACH,MAAM,MAAM,iBAAiB,GAAG,OAAO,cAAc,CAAA;AAGrD,cAAc,WAAW,CAAA"}
|
|
@@ -14,6 +14,7 @@ export declare const PUBLIC_SELECTORS: {
|
|
|
14
14
|
readonly logo: "navbar-logo";
|
|
15
15
|
readonly loginButton: "navbar-login";
|
|
16
16
|
readonly signupButton: "navbar-signup";
|
|
17
|
+
readonly themeToggle: "topnav-theme-toggle";
|
|
17
18
|
};
|
|
18
19
|
readonly footer: {
|
|
19
20
|
readonly container: "public-footer";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"public.selectors.d.ts","sourceRoot":"","sources":["../../../../src/lib/selectors/domains/public.selectors.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,eAAO,MAAM,gBAAgB
|
|
1
|
+
{"version":3,"file":"public.selectors.d.ts","sourceRoot":"","sources":["../../../../src/lib/selectors/domains/public.selectors.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4BnB,CAAA;AAEV,MAAM,MAAM,mBAAmB,GAAG,OAAO,gBAAgB,CAAA"}
|
|
@@ -3,7 +3,9 @@ const PUBLIC_SELECTORS = {
|
|
|
3
3
|
container: "public-navbar",
|
|
4
4
|
logo: "navbar-logo",
|
|
5
5
|
loginButton: "navbar-login",
|
|
6
|
-
signupButton: "navbar-signup"
|
|
6
|
+
signupButton: "navbar-signup",
|
|
7
|
+
// The same toggle as dashboard.topnav.themeToggle (same value): ThemeToggle reads it here so a public page does not ship the dashboard map
|
|
8
|
+
themeToggle: "topnav-theme-toggle"
|
|
7
9
|
},
|
|
8
10
|
footer: {
|
|
9
11
|
container: "public-footer",
|
|
@@ -1433,6 +1433,7 @@ export declare const SELECTORS: {
|
|
|
1433
1433
|
readonly logo: "navbar-logo";
|
|
1434
1434
|
readonly loginButton: "navbar-login";
|
|
1435
1435
|
readonly signupButton: "navbar-signup";
|
|
1436
|
+
readonly themeToggle: "topnav-theme-toggle";
|
|
1436
1437
|
};
|
|
1437
1438
|
readonly footer: {
|
|
1438
1439
|
readonly container: "public-footer";
|
|
@@ -3043,6 +3044,7 @@ declare const _default: {
|
|
|
3043
3044
|
readonly logo: "navbar-logo";
|
|
3044
3045
|
readonly loginButton: "navbar-login";
|
|
3045
3046
|
readonly signupButton: "navbar-signup";
|
|
3047
|
+
readonly themeToggle: "topnav-theme-toggle";
|
|
3046
3048
|
};
|
|
3047
3049
|
readonly footer: {
|
|
3048
3050
|
readonly container: "public-footer";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"selectors.d.ts","sourceRoot":"","sources":["../../../src/lib/selectors/selectors.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AAGH,OAAO,EAAkB,KAAK,iBAAiB,EAAE,MAAM,kBAAkB,CAAA;AAWzE;;GAEG;AACH,eAAO,MAAM,SAAS
|
|
1
|
+
{"version":3,"file":"selectors.d.ts","sourceRoot":"","sources":["../../../src/lib/selectors/selectors.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"subscription.service.d.ts","sourceRoot":"","sources":["../../../src/lib/services/subscription.service.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"subscription.service.d.ts","sourceRoot":"","sources":["../../../src/lib/services/subscription.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -810,6 +810,9 @@ class SubscriptionService {
|
|
|
810
810
|
console.warn("[SubscriptionService] Team permissions module not available");
|
|
811
811
|
}
|
|
812
812
|
}
|
|
813
|
+
if (BILLING_REGISTRY.plans.length === 0) {
|
|
814
|
+
return { allowed: true };
|
|
815
|
+
}
|
|
813
816
|
const requiredFeature = BILLING_REGISTRY.actionMappings.features[action];
|
|
814
817
|
if (requiredFeature) {
|
|
815
818
|
const hasFeatureAccess = await this.hasFeature(teamId, requiredFeature, userId);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ThemeProvider.d.ts","sourceRoot":"","sources":["../../../src/lib/theme/ThemeProvider.tsx"],"names":[],"mappings":"AAEA;;;;GAIG;AAEH,OAAO,KAAyD,MAAM,OAAO,CAAA;AAC7E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAapD,UAAU,gBAAgB;IACxB,YAAY,EAAE,WAAW,GAAG,IAAI,CAAA;IAChC,OAAO,EAAE,OAAO,CAAA;IAChB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,WAAW,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;CACjC;AAID,UAAU,kBAAkB;IAC1B,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;IACzB,YAAY,CAAC,EAAE,MAAM,CAAA;CACtB;AAED,wBAAgB,aAAa,CAAC,EAAE,QAAQ,EAAE,EAAE,kBAAkB,
|
|
1
|
+
{"version":3,"file":"ThemeProvider.d.ts","sourceRoot":"","sources":["../../../src/lib/theme/ThemeProvider.tsx"],"names":[],"mappings":"AAEA;;;;GAIG;AAEH,OAAO,KAAyD,MAAM,OAAO,CAAA;AAC7E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAapD,UAAU,gBAAgB;IACxB,YAAY,EAAE,WAAW,GAAG,IAAI,CAAA;IAChC,OAAO,EAAE,OAAO,CAAA;IAChB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,WAAW,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;CACjC;AAID,UAAU,kBAAkB;IAC1B,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;IACzB,YAAY,CAAC,EAAE,MAAM,CAAA;CACtB;AAED,wBAAgB,aAAa,CAAC,EAAE,QAAQ,EAAE,EAAE,kBAAkB,2CAiG7D;AAED;;GAEG;AACH,wBAAgB,QAAQ,qBAQvB;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,aAAa,EAAE,MAAM;;;;;EAWzD;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,aAAa,EAAE,MAAM;;;;EAUvD;AAED;;GAEG;AACH,wBAAgB,cAAc;;;;;;EAU7B"}
|
|
@@ -9,9 +9,9 @@ function getCurrentClientTheme() {
|
|
|
9
9
|
}
|
|
10
10
|
const ThemeContext = createContext(null);
|
|
11
11
|
function ThemeProvider({ children }) {
|
|
12
|
-
const [currentTheme, setCurrentTheme] = useState(null);
|
|
13
|
-
const [loading, setLoading] = useState(
|
|
14
|
-
const [error, setError] = useState();
|
|
12
|
+
const [currentTheme, setCurrentTheme] = useState(() => getCurrentClientTheme() ?? null);
|
|
13
|
+
const [loading, setLoading] = useState(false);
|
|
14
|
+
const [error, setError] = useState(() => getCurrentClientTheme() ? void 0 : "Project theme was not generated");
|
|
15
15
|
const loadTheme = React.useCallback(() => {
|
|
16
16
|
var _a;
|
|
17
17
|
try {
|
|
@@ -45,8 +45,10 @@ function ThemeProvider({ children }) {
|
|
|
45
45
|
});
|
|
46
46
|
}, [currentTheme, loadTheme]);
|
|
47
47
|
useEffect(() => {
|
|
48
|
-
|
|
49
|
-
|
|
48
|
+
var _a;
|
|
49
|
+
if (!currentTheme) console.error("[ThemeProvider] Project theme was not generated");
|
|
50
|
+
else if ((_a = currentTheme.styles) == null ? void 0 : _a.globals) applyThemeStyles(currentTheme);
|
|
51
|
+
}, []);
|
|
50
52
|
useEffect(() => {
|
|
51
53
|
if (process.env.NODE_ENV === "development") {
|
|
52
54
|
const handleHotReload = () => {
|
package/dist/lib/utils/cors.d.ts
CHANGED
|
@@ -81,6 +81,13 @@ export declare function getCorsOrigins(config: ApplicationConfig, env?: string):
|
|
|
81
81
|
* production trust — pair with an environment check.
|
|
82
82
|
*/
|
|
83
83
|
export declare function isPrivateLanOrigin(origin: string): boolean;
|
|
84
|
+
/**
|
|
85
|
+
* The origins trusted for cookie-authenticated requests: Better Auth's
|
|
86
|
+
* trustedOrigins and the write-origin check (lib/api/request-origin) share it.
|
|
87
|
+
* getCorsOrigins() plus, outside production, the request's own origin when it is
|
|
88
|
+
* a private-network address (#170).
|
|
89
|
+
*/
|
|
90
|
+
export declare function getTrustedOrigins(config: ApplicationConfig, requestOrigin?: string | null, env?: string): string[];
|
|
84
91
|
/**
|
|
85
92
|
* Check whether a request origin is allowed, supporting wildcard-pattern entries
|
|
86
93
|
* in the allow-list. A `*` in an entry matches exactly ONE host label (no dots),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cors.d.ts","sourceRoot":"","sources":["../../../src/lib/utils/cors.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAA;AAE/D;;;;;;GAMG;AACH,MAAM,MAAM,eAAe,GAAG,aAAa,GAAG,YAAY,GAAG,SAAS,GAAG,IAAI,CAAA;AAc7E;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAetD;AAED;;;;;;GAMG;AACH,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,MAAM,GAAG,aAAa,GAAG,YAAY,CAkBlF;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,cAAc,CAC5B,MAAM,EAAE,iBAAiB,EACzB,GAAG,GAAE,MAA8C,GAClD,MAAM,EAAE,CA+CV;AASD;;;;;;;;;;;GAWG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAqB1D;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,eAAe,CAC7B,aAAa,EAAE,MAAM,EACrB,cAAc,EAAE,MAAM,EAAE,GACvB,MAAM,GAAG,IAAI,CA6Bf"}
|
|
1
|
+
{"version":3,"file":"cors.d.ts","sourceRoot":"","sources":["../../../src/lib/utils/cors.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAA;AAE/D;;;;;;GAMG;AACH,MAAM,MAAM,eAAe,GAAG,aAAa,GAAG,YAAY,GAAG,SAAS,GAAG,IAAI,CAAA;AAc7E;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAetD;AAED;;;;;;GAMG;AACH,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,MAAM,GAAG,aAAa,GAAG,YAAY,CAkBlF;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,cAAc,CAC5B,MAAM,EAAE,iBAAiB,EACzB,GAAG,GAAE,MAA8C,GAClD,MAAM,EAAE,CA+CV;AASD;;;;;;;;;;;GAWG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAqB1D;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,iBAAiB,EACzB,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,EAC7B,GAAG,GAAE,MAA8C,GAClD,MAAM,EAAE,CAMV;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,eAAe,CAC7B,aAAa,EAAE,MAAM,EACrB,cAAc,EAAE,MAAM,EAAE,GACvB,MAAM,GAAG,IAAI,CA6Bf"}
|
package/dist/lib/utils/cors.js
CHANGED
|
@@ -79,6 +79,13 @@ function isPrivateLanOrigin(origin) {
|
|
|
79
79
|
if (a === 169 && b === 254) return true;
|
|
80
80
|
return false;
|
|
81
81
|
}
|
|
82
|
+
function getTrustedOrigins(config, requestOrigin, env = process.env.NODE_ENV || "development") {
|
|
83
|
+
const origins = getCorsOrigins(config, env);
|
|
84
|
+
if (normalizeCorsEnvironment(env) !== "production" && requestOrigin && isPrivateLanOrigin(requestOrigin)) {
|
|
85
|
+
return [...origins, requestOrigin];
|
|
86
|
+
}
|
|
87
|
+
return origins;
|
|
88
|
+
}
|
|
82
89
|
function isOriginAllowed(requestOrigin, allowedOrigins) {
|
|
83
90
|
if (!requestOrigin) return null;
|
|
84
91
|
for (const entry of allowedOrigins) {
|
|
@@ -98,6 +105,7 @@ function isOriginAllowed(requestOrigin, allowedOrigins) {
|
|
|
98
105
|
}
|
|
99
106
|
export {
|
|
100
107
|
getCorsOrigins,
|
|
108
|
+
getTrustedOrigins,
|
|
101
109
|
isOriginAllowed,
|
|
102
110
|
isPrivateLanOrigin,
|
|
103
111
|
normalizeCorsEnvironment,
|
|
@@ -8,7 +8,7 @@ import { Alert, AlertDescription, AlertTitle } from "@nextsparkjs/core/component
|
|
|
8
8
|
import { Loader2, CheckCircle, XCircle, Users, LogIn, UserPlus } from "lucide-react";
|
|
9
9
|
import { toast } from "sonner";
|
|
10
10
|
import Link from "next/link";
|
|
11
|
-
import { sel } from "@nextsparkjs/core/
|
|
11
|
+
import { sel } from "@nextsparkjs/core/selectors/teams";
|
|
12
12
|
import { withBasePath } from "@nextsparkjs/core/lib/base-path";
|
|
13
13
|
function AcceptInvitePage() {
|
|
14
14
|
const params = useParams();
|
|
@@ -7,7 +7,7 @@ import { zodResolver } from "@hookform/resolvers/zod";
|
|
|
7
7
|
import { AlertCircle, ArrowLeft, CheckCircle, Loader2, Mail } from "lucide-react";
|
|
8
8
|
import Link from "next/link";
|
|
9
9
|
import { useState, useCallback } from "react";
|
|
10
|
-
import { sel } from "@nextsparkjs/core/
|
|
10
|
+
import { sel } from "@nextsparkjs/core/selectors/auth";
|
|
11
11
|
import { useTranslations } from "next-intl";
|
|
12
12
|
import { useForm } from "react-hook-form";
|
|
13
13
|
import { Button } from "@nextsparkjs/core/components/ui/button";
|
|
@@ -17,7 +17,7 @@ import { Label } from "@nextsparkjs/core/components/ui/label";
|
|
|
17
17
|
import { PasswordInput } from "@nextsparkjs/core/components/ui/password-input";
|
|
18
18
|
import { Alert, AlertDescription } from "@nextsparkjs/core/components/ui/alert";
|
|
19
19
|
import { Card, CardContent, CardDescription, CardHeader, CardTitle } from "@nextsparkjs/core/components/ui/card";
|
|
20
|
-
import { sel } from "@nextsparkjs/core/
|
|
20
|
+
import { sel } from "@nextsparkjs/core/selectors/auth";
|
|
21
21
|
function ResetPasswordContent() {
|
|
22
22
|
const searchParams = useSearchParams();
|
|
23
23
|
const token = searchParams.get("token") || "";
|
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
* Signup page for a host with `cacheComponents` on (variant of ./page).
|
|
3
3
|
*
|
|
4
4
|
* Same page and metadata; `dynamic = 'force-dynamic'` is left out because Next.js fails a build that
|
|
5
|
-
* has it under Cache Components. The page reads the database and calls redirect()
|
|
6
|
-
*
|
|
5
|
+
* has it under Cache Components. The page reads the database and calls redirect(); under Cache Components
|
|
6
|
+
* the group or root layout puts it behind Suspense, so the redirect streams per request, after the static shell.
|
|
7
7
|
*/
|
|
8
8
|
export { default, metadata } from './page';
|
|
9
9
|
//# sourceMappingURL=page.cc.d.ts.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { Metadata } from 'next';
|
|
2
2
|
export declare const dynamic = "force-dynamic";
|
|
3
3
|
export declare const metadata: Metadata;
|
|
4
|
-
declare function SignupPage(): import("react/jsx-runtime").JSX.Element
|
|
4
|
+
declare function SignupPage(): Promise<import("react/jsx-runtime").JSX.Element>;
|
|
5
5
|
export default SignupPage;
|
|
6
6
|
//# sourceMappingURL=page.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"page.d.ts","sourceRoot":"","sources":["../../../../src/routes/(auth)/signup/page.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"page.d.ts","sourceRoot":"","sources":["../../../../src/routes/(auth)/signup/page.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAA;AASpC,eAAO,MAAM,OAAO,kBAAkB,CAAA;AAOtC,eAAO,MAAM,QAAQ,EAAE,QAA0B,CAAA;AAKjD,iBAAe,UAAU,qDA4BxB;AAED,eAAe,UAAU,CAAA"}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { jsx } from "react/jsx-runtime";
|
|
2
|
-
import { Suspense } from "react";
|
|
3
2
|
import { redirect } from "next/navigation";
|
|
4
3
|
import { SignupForm } from "@nextsparkjs/core/components/auth/forms/SignupForm";
|
|
5
4
|
import { AUTH_CONFIG } from "@nextsparkjs/core/lib/config";
|
|
@@ -11,7 +10,7 @@ const defaultMetadata = {
|
|
|
11
10
|
description: "Create your account to start using our platform"
|
|
12
11
|
};
|
|
13
12
|
export const metadata = defaultMetadata;
|
|
14
|
-
async function
|
|
13
|
+
async function SignupPage() {
|
|
15
14
|
var _a, _b;
|
|
16
15
|
const registrationMode = ((_b = (_a = AUTH_CONFIG) == null ? void 0 : _a.registration) == null ? void 0 : _b.mode) ?? "open";
|
|
17
16
|
if (!resolveAuthMethods(AUTH_CONFIG).includes("email-password")) {
|
|
@@ -28,7 +27,4 @@ async function SignupPageContent() {
|
|
|
28
27
|
}
|
|
29
28
|
return /* @__PURE__ */ jsx(SignupForm, {});
|
|
30
29
|
}
|
|
31
|
-
function SignupPage() {
|
|
32
|
-
return /* @__PURE__ */ jsx(Suspense, { fallback: null, children: /* @__PURE__ */ jsx(SignupPageContent, {}) });
|
|
33
|
-
}
|
|
34
30
|
export default SignupPage;
|
|
@@ -5,7 +5,7 @@ import { useSearchParams, useRouter } from "next/navigation";
|
|
|
5
5
|
import { Suspense, useEffect, useState } from "react";
|
|
6
6
|
import { Button } from "@nextsparkjs/core/components/ui/button";
|
|
7
7
|
import { Alert, AlertDescription } from "@nextsparkjs/core/components/ui/alert";
|
|
8
|
-
import { sel } from "@nextsparkjs/core/
|
|
8
|
+
import { sel } from "@nextsparkjs/core/selectors/auth";
|
|
9
9
|
import { withBasePath } from "@nextsparkjs/core/lib/base-path";
|
|
10
10
|
function VerifyEmailContent() {
|
|
11
11
|
const searchParams = useSearchParams();
|
|
@@ -5,7 +5,7 @@ import { DOCS_REGISTRY } from "@nextsparkjs/registries/docs-registry";
|
|
|
5
5
|
import { parseMarkdownFile } from "@nextsparkjs/core/lib/docs/parser";
|
|
6
6
|
import { DocsBreadcrumbs } from "@nextsparkjs/core/components/docs/docs-breadcrumbs";
|
|
7
7
|
import { DocsContent } from "@nextsparkjs/core/components/docs/docs-content";
|
|
8
|
-
import { sel } from "@nextsparkjs/core/
|
|
8
|
+
import { sel } from "@nextsparkjs/core/selectors/public";
|
|
9
9
|
import { getTranslations } from "next-intl/server";
|
|
10
10
|
import path from "path";
|
|
11
11
|
export async function generateStaticParams() {
|
|
@@ -4,7 +4,7 @@ import { DOCS_REGISTRY } from "@nextsparkjs/registries/docs-registry";
|
|
|
4
4
|
import { parseMarkdownFile } from "@nextsparkjs/core/lib/docs/parser";
|
|
5
5
|
import { DocsBreadcrumbs } from "@nextsparkjs/core/components/docs/docs-breadcrumbs";
|
|
6
6
|
import { DocsContent } from "@nextsparkjs/core/components/docs/docs-content";
|
|
7
|
-
import { sel } from "@nextsparkjs/core/
|
|
7
|
+
import { sel } from "@nextsparkjs/core/selectors/public";
|
|
8
8
|
import { getTranslations } from "next-intl/server";
|
|
9
9
|
import path from "path";
|
|
10
10
|
export const dynamicParams = false;
|
|
@@ -3,7 +3,7 @@ import { Suspense } from "react";
|
|
|
3
3
|
import { DocsLayout } from "@nextsparkjs/core/components/docs/docs-layout";
|
|
4
4
|
import { DocsSidebar } from "@nextsparkjs/core/components/docs/docs-sidebar";
|
|
5
5
|
import { DOCS_REGISTRY } from "@nextsparkjs/registries/docs-registry";
|
|
6
|
-
import { sel } from "@nextsparkjs/core/
|
|
6
|
+
import { sel } from "@nextsparkjs/core/selectors/public";
|
|
7
7
|
export default function DocsLayoutPage({
|
|
8
8
|
children
|
|
9
9
|
}) {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
2
2
|
import { Card, CardContent, CardDescription, CardHeader, CardTitle } from "@nextsparkjs/core/components/ui/card";
|
|
3
3
|
import { DOCS_REGISTRY } from "@nextsparkjs/registries/docs-registry";
|
|
4
|
-
import { sel } from "@nextsparkjs/core/
|
|
4
|
+
import { sel } from "@nextsparkjs/core/selectors/public";
|
|
5
5
|
import { BookOpen, Folder, FileText, ArrowRight } from "lucide-react";
|
|
6
6
|
import Link from "next/link";
|
|
7
7
|
export const metadata = {
|
|
@@ -1,6 +1,11 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Core's default public layout. A module of its own: the composition module (./public-layout) and the metadata a
|
|
3
3
|
* project override keeps are imported without it, so an override's route ships none of its client components.
|
|
4
|
+
*
|
|
5
|
+
* `children` is not behind a Suspense boundary: one makes a `notFound()` thrown by a public page (the `[slug]` of the
|
|
6
|
+
* pages entity) arrive in the stream after the head went out, so an unknown URL answers 200 instead of 404 in the
|
|
7
|
+
* legacy host. The Cache Components wrapper (group-layouts.cc) puts its own boundary around the page, which that
|
|
8
|
+
* mode needs.
|
|
4
9
|
*/
|
|
5
10
|
export declare function DefaultPublicLayout({ children }: {
|
|
6
11
|
children: React.ReactNode;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"default-public-layout.d.ts","sourceRoot":"","sources":["../../../src/routes/_internal/default-public-layout.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"default-public-layout.d.ts","sourceRoot":"","sources":["../../../src/routes/_internal/default-public-layout.tsx"],"names":[],"mappings":"AAGA;;;;;;;;GAQG;AACH,wBAAgB,mBAAmB,CAAC,EAClC,QAAQ,EACT,EAAE;IACD,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;CAC1B,2CAeA"}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
2
|
-
import { Suspense } from "react";
|
|
3
2
|
import { PublicNavbar } from "@nextsparkjs/core/components/app/layouts/PublicNavbar";
|
|
4
3
|
import { PublicFooter } from "@nextsparkjs/core/components/app/layouts/PublicFooter";
|
|
5
4
|
export function DefaultPublicLayout({
|
|
@@ -7,7 +6,7 @@ export function DefaultPublicLayout({
|
|
|
7
6
|
}) {
|
|
8
7
|
return /* @__PURE__ */ jsxs("div", { className: "min-h-screen bg-background flex flex-col", children: [
|
|
9
8
|
/* @__PURE__ */ jsx(PublicNavbar, {}),
|
|
10
|
-
/* @__PURE__ */ jsx("main", { className: "flex-1", children
|
|
9
|
+
/* @__PURE__ */ jsx("main", { className: "flex-1", children }),
|
|
11
10
|
/* @__PURE__ */ jsx(PublicFooter, {})
|
|
12
11
|
] });
|
|
13
12
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"route.d.ts","sourceRoot":"","sources":["../../../../../../../../src/routes/api/v1/users/[id]/meta/[key]/route.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;
|
|
1
|
+
{"version":3,"file":"route.d.ts","sourceRoot":"","sources":["../../../../../../../../src/routes/api/v1/users/[id]/meta/[key]/route.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAuBvD,wBAAsB,OAAO,CAAC,OAAO,EAAE,WAAW,kCAEjD;AAED;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,GAAG;YAEQ,OAAO,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC;2BAmEjD,CAAC;AAEZ;;;;;;;;;;;;;;;;GAgBG;AACH,eAAO,MAAM,GAAG;YAEQ,OAAO,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC;2BAoGhD,CAAC;AAEb;;;;GAIG;AACH,eAAO,MAAM,KAAK;YA3GM,OAAO,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC;2BA2GpC,CAAA;AAExB;;;;;;;GAOG;AACH,eAAO,MAAM,MAAM;YAEK,OAAO,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC;2BA8DhD,CAAC"}
|
|
@@ -7,6 +7,7 @@ import {
|
|
|
7
7
|
addCorsHeaders
|
|
8
8
|
} from "@nextsparkjs/core/lib/api/helpers";
|
|
9
9
|
import { authenticateRequest, createAuthFailureResponse } from "@nextsparkjs/core/lib/api/auth/dual-auth";
|
|
10
|
+
import { canAccessUser } from "@nextsparkjs/core/lib/api/auth/permissions";
|
|
10
11
|
import * as z from "zod";
|
|
11
12
|
import { withRateLimitTier } from "@nextsparkjs/core/lib/api/rate-limit";
|
|
12
13
|
const metadataValueSchema = z.object({
|
|
@@ -33,6 +34,10 @@ export const GET = withRateLimitTier(withApiLogging(async (req, { params }) => {
|
|
|
33
34
|
const response2 = createApiError("User ID is required", 400, null, "MISSING_USER_ID");
|
|
34
35
|
return addCorsHeaders(response2, req);
|
|
35
36
|
}
|
|
37
|
+
if (!canAccessUser(authResult, id, "users:read")) {
|
|
38
|
+
const response2 = createApiError("Insufficient permissions", 403, null, "FORBIDDEN");
|
|
39
|
+
return addCorsHeaders(response2, req);
|
|
40
|
+
}
|
|
36
41
|
if (!key || key.trim() === "") {
|
|
37
42
|
const response2 = createApiError("Metadata key is required", 400, null, "MISSING_META_KEY");
|
|
38
43
|
return addCorsHeaders(response2, req);
|
|
@@ -75,6 +80,10 @@ export const PUT = withRateLimitTier(withApiLogging(async (req, { params }) => {
|
|
|
75
80
|
const response2 = createApiError("User ID is required", 400, null, "MISSING_USER_ID");
|
|
76
81
|
return addCorsHeaders(response2, req);
|
|
77
82
|
}
|
|
83
|
+
if (!canAccessUser(authResult, id, "users:write")) {
|
|
84
|
+
const response2 = createApiError("Insufficient permissions", 403, null, "FORBIDDEN");
|
|
85
|
+
return addCorsHeaders(response2, req);
|
|
86
|
+
}
|
|
78
87
|
if (!key || key.trim() === "") {
|
|
79
88
|
const response2 = createApiError("Metadata key is required", 400, null, "MISSING_META_KEY");
|
|
80
89
|
return addCorsHeaders(response2, req);
|
|
@@ -150,6 +159,10 @@ export const DELETE = withRateLimitTier(withApiLogging(async (req, { params }) =
|
|
|
150
159
|
const response2 = createApiError("User ID is required", 400, null, "MISSING_USER_ID");
|
|
151
160
|
return addCorsHeaders(response2, req);
|
|
152
161
|
}
|
|
162
|
+
if (!canAccessUser(authResult, id, "users:write")) {
|
|
163
|
+
const response2 = createApiError("Insufficient permissions", 403, null, "FORBIDDEN");
|
|
164
|
+
return addCorsHeaders(response2, req);
|
|
165
|
+
}
|
|
153
166
|
if (!key || key.trim() === "") {
|
|
154
167
|
const response2 = createApiError("Metadata key is required", 400, null, "MISSING_META_KEY");
|
|
155
168
|
return addCorsHeaders(response2, req);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"route.d.ts","sourceRoot":"","sources":["../../../../../../src/routes/api/v1/users/[id]/route.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"route.d.ts","sourceRoot":"","sources":["../../../../../../src/routes/api/v1/users/[id]/route.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AA2BxD,wBAAsB,OAAO,CAAC,OAAO,EAAE,WAAW,kCAEjD;AAGD,eAAO,MAAM,GAAG;YAEQ,OAAO,CAAC;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,CAAC;2BAoDpC,CAAC;AAGZ,eAAO,MAAM,KAAK;YAEM,OAAO,CAAC;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,CAAC;2BAqInC,CAAC;AAGb,eAAO,MAAM,MAAM;YAEK,OAAO,CAAC;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,CAAC;2BAiEnC,CAAC"}
|
|
@@ -11,6 +11,7 @@ import {
|
|
|
11
11
|
processEntityMetadata
|
|
12
12
|
} from "@nextsparkjs/core/lib/api/helpers";
|
|
13
13
|
import { authenticateRequest, createAuthFailureResponse } from "@nextsparkjs/core/lib/api/auth/dual-auth";
|
|
14
|
+
import { canAccessUser, hasAdminPermission } from "@nextsparkjs/core/lib/api/auth/permissions";
|
|
14
15
|
import * as z from "zod";
|
|
15
16
|
import { withRateLimitTier } from "@nextsparkjs/core/lib/api/rate-limit";
|
|
16
17
|
const updateUserSchema = z.object({
|
|
@@ -37,6 +38,10 @@ export const GET = withRateLimitTier(withApiLogging(async (req, { params }) => {
|
|
|
37
38
|
const response2 = createApiError("User ID or email is required", 400, null, "MISSING_IDENTIFIER");
|
|
38
39
|
return addCorsHeaders(response2, req);
|
|
39
40
|
}
|
|
41
|
+
if (!canAccessUser(authResult, id, "users:read")) {
|
|
42
|
+
const response2 = createApiError("Insufficient permissions", 403, null, "FORBIDDEN");
|
|
43
|
+
return addCorsHeaders(response2, req);
|
|
44
|
+
}
|
|
40
45
|
const user = await queryOneWithRLS(
|
|
41
46
|
'SELECT id, email, name, "firstName", "lastName", image, country, timezone, language, role, "emailVerified", "createdAt", "updatedAt" FROM "users" WHERE id = $1 OR email = $1',
|
|
42
47
|
[id],
|
|
@@ -70,9 +75,17 @@ export const PATCH = withRateLimitTier(withApiLogging(async (req, { params }) =>
|
|
|
70
75
|
const response2 = createApiError("User ID or email is required", 400, null, "MISSING_IDENTIFIER");
|
|
71
76
|
return addCorsHeaders(response2, req);
|
|
72
77
|
}
|
|
78
|
+
if (!canAccessUser(authResult, id, "users:write")) {
|
|
79
|
+
const response2 = createApiError("Insufficient permissions", 403, null, "FORBIDDEN");
|
|
80
|
+
return addCorsHeaders(response2, req);
|
|
81
|
+
}
|
|
73
82
|
const body = await req.json();
|
|
74
83
|
const { metas, ...userData } = body;
|
|
75
84
|
const validatedData = updateUserSchema.parse(userData);
|
|
85
|
+
if (validatedData.role !== void 0 && !hasAdminPermission(authResult, "users:write")) {
|
|
86
|
+
const response2 = createApiError("Only a superadmin can change a role", 403, null, "FORBIDDEN");
|
|
87
|
+
return addCorsHeaders(response2, req);
|
|
88
|
+
}
|
|
76
89
|
const updates = [];
|
|
77
90
|
const values = [];
|
|
78
91
|
let paramCount = 1;
|
|
@@ -157,6 +170,10 @@ export const DELETE = withRateLimitTier(withApiLogging(async (req, { params }) =
|
|
|
157
170
|
const response2 = createApiError("User ID or email is required", 400, null, "MISSING_IDENTIFIER");
|
|
158
171
|
return addCorsHeaders(response2, req);
|
|
159
172
|
}
|
|
173
|
+
if (!hasAdminPermission(authResult, "users:delete")) {
|
|
174
|
+
const response2 = createApiError("Insufficient permissions. Superadmin access required.", 403, null, "FORBIDDEN");
|
|
175
|
+
return addCorsHeaders(response2, req);
|
|
176
|
+
}
|
|
160
177
|
const targetUser = await queryOneWithRLS(
|
|
161
178
|
'SELECT id, email FROM "users" WHERE id = $1 OR email = $1',
|
|
162
179
|
[id],
|
|
@@ -11,7 +11,10 @@ interface BlockDetailPageProps {
|
|
|
11
11
|
*/
|
|
12
12
|
export default function BlockDetailPage({ params }: BlockDetailPageProps): Promise<import("react/jsx-runtime").JSX.Element>;
|
|
13
13
|
/**
|
|
14
|
-
* Generate static params for all blocks
|
|
14
|
+
* Generate static params for all blocks.
|
|
15
|
+
*
|
|
16
|
+
* Cache Components needs at least one result. A project with no blocks (the productivity template) returns a
|
|
17
|
+
* placeholder no block matches, so the page answers notFound() instead of failing the build.
|
|
15
18
|
*/
|
|
16
19
|
export declare function generateStaticParams(): Promise<{
|
|
17
20
|
slug: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"page.d.ts","sourceRoot":"","sources":["../../../../../src/routes/devtools/blocks/[slug]/page.tsx"],"names":[],"mappings":"AAIA,UAAU,oBAAoB;IAC5B,MAAM,EAAE,OAAO,CAAC;QACd,IAAI,EAAE,MAAM,CAAC;KACd,CAAC,CAAC;CACJ;AAED;;;;;GAKG;AACH,wBAA8B,eAAe,CAAC,EAAE,MAAM,EAAE,EAAE,oBAAoB,oDAa7E;AAED
|
|
1
|
+
{"version":3,"file":"page.d.ts","sourceRoot":"","sources":["../../../../../src/routes/devtools/blocks/[slug]/page.tsx"],"names":[],"mappings":"AAIA,UAAU,oBAAoB;IAC5B,MAAM,EAAE,OAAO,CAAC;QACd,IAAI,EAAE,MAAM,CAAC;KACd,CAAC,CAAC;CACJ;AAED;;;;;GAKG;AACH,wBAA8B,eAAe,CAAC,EAAE,MAAM,EAAE,EAAE,oBAAoB,oDAa7E;AAED;;;;;GAKG;AACH,wBAAsB,oBAAoB;;KAKzC"}
|