@nextsparkjs/core 0.1.0-beta.192 → 0.1.0-beta.193
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/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/config/features-types.d.ts +5 -4
- package/dist/lib/config/features-types.d.ts.map +1 -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/theme/ThemeProvider.d.ts.map +1 -1
- package/dist/lib/theme/ThemeProvider.js +7 -5
- 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/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 +1 -4
- 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 +1 -1
- 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 +1 -1
- package/dist/templates/projects/starter/lib/block-selectors.ts +28 -0
- package/dist/templates/projects/starter/lib/selectors.ts +2 -11
- package/package.json +6 -2
- 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 +1 -4
- 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 +1 -1
- 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 +1 -1
- package/templates/projects/starter/lib/block-selectors.ts +28 -0
- package/templates/projects/starter/lib/selectors.ts +2 -11
|
@@ -78,9 +78,9 @@ export class ListsService {
|
|
|
78
78
|
*/
|
|
79
79
|
static async getById(id: string, userId: string): Promise<List | null> {
|
|
80
80
|
const result = await queryOneWithRLS<DbList>(
|
|
81
|
-
userId,
|
|
82
81
|
`SELECT * FROM lists WHERE id = $1`,
|
|
83
|
-
[id]
|
|
82
|
+
[id],
|
|
83
|
+
userId
|
|
84
84
|
)
|
|
85
85
|
|
|
86
86
|
return result ? mapDbList(result) : null
|
|
@@ -123,9 +123,9 @@ export class ListsService {
|
|
|
123
123
|
|
|
124
124
|
// Get total count
|
|
125
125
|
const countResult = await queryOneWithRLS<{ count: string }>(
|
|
126
|
-
userId,
|
|
127
126
|
`SELECT COUNT(*) as count FROM lists ${whereClause}`,
|
|
128
|
-
params
|
|
127
|
+
params,
|
|
128
|
+
userId
|
|
129
129
|
)
|
|
130
130
|
const total = parseInt(countResult?.count || '0', 10)
|
|
131
131
|
|
|
@@ -137,9 +137,9 @@ export class ListsService {
|
|
|
137
137
|
|
|
138
138
|
params.push(limit, offset)
|
|
139
139
|
const lists = await queryWithRLS<DbList>(
|
|
140
|
-
userId,
|
|
141
140
|
`SELECT * FROM lists ${whereClause} ORDER BY ${validOrderBy} ${validOrderDir} LIMIT $${paramIndex++} OFFSET $${paramIndex++}`,
|
|
142
|
-
params
|
|
141
|
+
params,
|
|
142
|
+
userId
|
|
143
143
|
)
|
|
144
144
|
|
|
145
145
|
return {
|
|
@@ -174,13 +174,13 @@ export class ListsService {
|
|
|
174
174
|
teamId,
|
|
175
175
|
} = data
|
|
176
176
|
|
|
177
|
-
const result = await mutateWithRLS<DbList>(
|
|
178
|
-
userId,
|
|
177
|
+
const result = (await mutateWithRLS<DbList>(
|
|
179
178
|
`INSERT INTO lists (name, board_id, position, is_archived, user_id, team_id)
|
|
180
179
|
VALUES ($1, $2, $3, $4, $5, $6)
|
|
181
180
|
RETURNING *`,
|
|
182
|
-
[name, boardId, position, isArchived, userId, teamId]
|
|
183
|
-
|
|
181
|
+
[name, boardId, position, isArchived, userId, teamId],
|
|
182
|
+
userId
|
|
183
|
+
)).rows[0] ?? null
|
|
184
184
|
|
|
185
185
|
if (!result) {
|
|
186
186
|
throw new Error('Failed to create list')
|
|
@@ -224,11 +224,11 @@ export class ListsService {
|
|
|
224
224
|
updates.push(`updated_at = NOW()`)
|
|
225
225
|
params.push(id)
|
|
226
226
|
|
|
227
|
-
const result = await mutateWithRLS<DbList>(
|
|
228
|
-
userId,
|
|
227
|
+
const result = (await mutateWithRLS<DbList>(
|
|
229
228
|
`UPDATE lists SET ${updates.join(', ')} WHERE id = $${paramIndex} RETURNING *`,
|
|
230
|
-
params
|
|
231
|
-
|
|
229
|
+
params,
|
|
230
|
+
userId
|
|
231
|
+
)).rows[0] ?? null
|
|
232
232
|
|
|
233
233
|
if (!result) {
|
|
234
234
|
throw new Error('List not found or access denied')
|
|
@@ -241,11 +241,11 @@ export class ListsService {
|
|
|
241
241
|
* Delete a list with RLS
|
|
242
242
|
*/
|
|
243
243
|
static async delete(userId: string, id: string): Promise<boolean> {
|
|
244
|
-
const result = await mutateWithRLS<DbList>(
|
|
245
|
-
userId,
|
|
244
|
+
const result = (await mutateWithRLS<DbList>(
|
|
246
245
|
`DELETE FROM lists WHERE id = $1 RETURNING *`,
|
|
247
|
-
[id]
|
|
248
|
-
|
|
246
|
+
[id],
|
|
247
|
+
userId
|
|
248
|
+
)).rows[0] ?? null
|
|
249
249
|
|
|
250
250
|
return result !== null
|
|
251
251
|
}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Block selectors, and a `sel` bound to them alone.
|
|
3
|
+
*
|
|
4
|
+
* Block components import `sel` from here, not from ./selectors: that file merges CORE_SELECTORS (every domain's
|
|
5
|
+
* map, ~10 kB gzip), and the loader that renders a page imports every block, so a block importing it puts the
|
|
6
|
+
* whole map on each public page. ./selectors re-exports BLOCK_SELECTORS, so Cypress still reaches the same paths.
|
|
7
|
+
*/
|
|
8
|
+
|
|
9
|
+
import { createSelectorHelpers } from '@nextsparkjs/core/lib/selectors/selector-factory'
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* Block-specific selectors for the productivity theme.
|
|
13
|
+
* Each block has at minimum a 'container' selector.
|
|
14
|
+
* Dynamic selectors use {index} placeholder.
|
|
15
|
+
*/
|
|
16
|
+
export const BLOCK_SELECTORS = {
|
|
17
|
+
// Blocks the pages and blog content features copy into the project (blocks/hero, blocks/post-content)
|
|
18
|
+
hero: {
|
|
19
|
+
container: 'block-hero',
|
|
20
|
+
cta: 'hero-cta',
|
|
21
|
+
},
|
|
22
|
+
postContent: {
|
|
23
|
+
container: 'block-post-content',
|
|
24
|
+
divider: 'post-content-divider',
|
|
25
|
+
cta: 'post-content-cta',
|
|
26
|
+
},
|
|
27
|
+
} as const
|
|
28
|
+
|
|
29
|
+
export const { sel } = createSelectorHelpers({ blocks: BLOCK_SELECTORS })
|
|
@@ -10,20 +10,13 @@
|
|
|
10
10
|
*/
|
|
11
11
|
|
|
12
12
|
import { createSelectorHelpers, CORE_SELECTORS } from '@nextsparkjs/core/selectors'
|
|
13
|
+
import { BLOCK_SELECTORS } from './block-selectors'
|
|
13
14
|
|
|
14
15
|
// =============================================================================
|
|
15
16
|
// BLOCK SELECTORS
|
|
16
17
|
// =============================================================================
|
|
17
18
|
|
|
18
|
-
|
|
19
|
-
* Block-specific selectors for the productivity theme.
|
|
20
|
-
* Each block has at minimum a 'container' selector.
|
|
21
|
-
* Dynamic selectors use {index} placeholder.
|
|
22
|
-
*/
|
|
23
|
-
export const BLOCK_SELECTORS = {
|
|
24
|
-
// Productivity theme currently has no custom blocks
|
|
25
|
-
// Add block selectors here when blocks are created
|
|
26
|
-
} as const
|
|
19
|
+
export { BLOCK_SELECTORS }
|
|
27
20
|
|
|
28
21
|
// =============================================================================
|
|
29
22
|
// ENTITY SELECTORS
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Block selectors, and a `sel` bound to them alone.
|
|
3
|
+
*
|
|
4
|
+
* Block components import `sel` from here, not from ./selectors: that file merges CORE_SELECTORS (every domain's
|
|
5
|
+
* map, ~10 kB gzip), and the loader that renders a page imports every block, so a block importing it puts the
|
|
6
|
+
* whole map on each public page. ./selectors re-exports BLOCK_SELECTORS, so Cypress still reaches the same paths.
|
|
7
|
+
*/
|
|
8
|
+
|
|
9
|
+
import { createSelectorHelpers } from '@nextsparkjs/core/lib/selectors/selector-factory'
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* Block-specific selectors for the starter theme.
|
|
13
|
+
* Each block has at minimum a 'container' selector.
|
|
14
|
+
* Dynamic selectors use {index} placeholder.
|
|
15
|
+
*/
|
|
16
|
+
export const BLOCK_SELECTORS = {
|
|
17
|
+
hero: {
|
|
18
|
+
container: 'block-hero',
|
|
19
|
+
cta: 'hero-cta',
|
|
20
|
+
},
|
|
21
|
+
postContent: {
|
|
22
|
+
container: 'block-post-content',
|
|
23
|
+
divider: 'post-content-divider',
|
|
24
|
+
cta: 'post-content-cta',
|
|
25
|
+
},
|
|
26
|
+
} as const
|
|
27
|
+
|
|
28
|
+
export const { sel } = createSelectorHelpers({ blocks: BLOCK_SELECTORS })
|
|
@@ -10,22 +10,13 @@
|
|
|
10
10
|
*/
|
|
11
11
|
|
|
12
12
|
import { createSelectorHelpers, CORE_SELECTORS } from '@nextsparkjs/core/selectors'
|
|
13
|
+
import { BLOCK_SELECTORS } from './block-selectors'
|
|
13
14
|
|
|
14
15
|
// =============================================================================
|
|
15
16
|
// BLOCK SELECTORS
|
|
16
17
|
// =============================================================================
|
|
17
18
|
|
|
18
|
-
|
|
19
|
-
* Block-specific selectors for the starter theme.
|
|
20
|
-
* Each block has at minimum a 'container' selector.
|
|
21
|
-
* Dynamic selectors use {index} placeholder.
|
|
22
|
-
*/
|
|
23
|
-
export const BLOCK_SELECTORS = {
|
|
24
|
-
hero: {
|
|
25
|
-
container: 'block-hero',
|
|
26
|
-
cta: 'hero-cta',
|
|
27
|
-
},
|
|
28
|
-
} as const
|
|
19
|
+
export { BLOCK_SELECTORS }
|
|
29
20
|
|
|
30
21
|
// =============================================================================
|
|
31
22
|
// THEME SELECTORS (CORE + BLOCKS)
|