firstly 0.0.16-next.2 → 0.1.0-next.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.
Files changed (105) hide show
  1. package/CHANGELOG.md +33 -0
  2. package/esm/FF_Entity.d.ts +1 -1
  3. package/esm/FF_Entity.js +9 -9
  4. package/esm/ROUTES.d.ts +1 -1
  5. package/esm/ROUTES.js +2 -2
  6. package/esm/SqlDatabase/FF_LogToConsole.d.ts +14 -0
  7. package/esm/SqlDatabase/FF_LogToConsole.js +24 -5
  8. package/esm/auth/Entities.d.ts +2 -1
  9. package/esm/auth/Entities.js +18 -14
  10. package/esm/auth/server/AuthController.server.js +86 -93
  11. package/esm/auth/server/handleAuth.d.ts +4 -2
  12. package/esm/auth/server/handleAuth.js +8 -4
  13. package/esm/auth/server/helperRole.d.ts +11 -4
  14. package/esm/auth/server/helperRole.js +29 -20
  15. package/esm/auth/server/index.d.ts +1 -0
  16. package/esm/auth/server/index.js +1 -0
  17. package/esm/auth/server/module.d.ts +27 -5
  18. package/esm/auth/server/module.js +24 -10
  19. package/esm/auth/server/providers/github.js +13 -2
  20. package/esm/auth/static/assets/Page-BHW08QWz.css +1 -0
  21. package/esm/auth/static/assets/{Page-BorYIfy9.d.ts → Page-CTZPxniP.d.ts} +2 -2
  22. package/esm/auth/static/assets/Page-CTZPxniP.js +1 -0
  23. package/esm/auth/static/assets/{Page-CqsLm8yQ.d.ts → Page-D0d9iZO-.d.ts} +2 -2
  24. package/esm/auth/static/assets/{Page-CqsLm8yQ.js → Page-D0d9iZO-.js} +1 -1
  25. package/esm/auth/static/assets/{Page-Cm4MsdIa.d.ts → Page-DXshwJi7.d.ts} +2 -2
  26. package/esm/auth/static/assets/Page-DXshwJi7.js +20 -0
  27. package/esm/auth/static/assets/{index-Borxa2ns.d.ts → index-LRDptjak.d.ts} +3 -20
  28. package/esm/auth/static/assets/{index-Borxa2ns.js → index-LRDptjak.js} +2 -2
  29. package/esm/auth/static/index.html +1 -1
  30. package/esm/auth/types.d.ts +1 -0
  31. package/esm/bin/cmd.js +16 -16
  32. package/esm/changeLog/changeLogEntities.d.ts +21 -0
  33. package/esm/changeLog/changeLogEntities.js +57 -0
  34. package/esm/changeLog/index.d.ts +3 -15
  35. package/esm/changeLog/index.js +3 -51
  36. package/esm/changeLog/server/index.d.ts +39 -28
  37. package/esm/changeLog/server/index.js +40 -29
  38. package/esm/cron/Cron.d.ts +11 -0
  39. package/esm/cron/Cron.js +43 -0
  40. package/esm/cron/Role_Cron.d.ts +3 -0
  41. package/esm/cron/Role_Cron.js +3 -0
  42. package/esm/cron/index.d.ts +3 -0
  43. package/esm/cron/index.js +3 -0
  44. package/esm/cron/server/index.d.ts +29 -11
  45. package/esm/cron/server/index.js +29 -13
  46. package/esm/feedback/FeedbackController.d.ts +3 -1
  47. package/esm/feedback/FeedbackController.js +23 -1
  48. package/esm/feedback/server/index.d.ts +2 -2
  49. package/esm/feedback/server/index.js +2 -2
  50. package/esm/feedback/types.d.ts +6 -0
  51. package/esm/feedback/ui/DialogIssue.svelte +8 -1
  52. package/esm/feedback/ui/DialogIssues.svelte +1 -1
  53. package/esm/formats/index.d.ts +1 -1
  54. package/esm/formats/index.js +1 -1
  55. package/esm/formats/strings.d.ts +2 -0
  56. package/esm/formats/strings.js +22 -0
  57. package/esm/index.d.ts +1 -2
  58. package/esm/index.js +0 -2
  59. package/esm/mail/Mail.d.ts +13 -0
  60. package/esm/mail/Mail.js +51 -0
  61. package/esm/mail/Role_Mail.d.ts +3 -0
  62. package/esm/mail/Role_Mail.js +3 -0
  63. package/esm/mail/index.d.ts +7 -2
  64. package/esm/mail/index.js +7 -2
  65. package/esm/mail/server/formatMailHelper.d.ts +16 -0
  66. package/esm/mail/server/formatMailHelper.js +113 -0
  67. package/esm/mail/server/index.d.ts +32 -19
  68. package/esm/mail/server/index.js +113 -38
  69. package/esm/server/index.d.ts +9 -6
  70. package/esm/server/index.js +28 -50
  71. package/esm/svelte/FF_Layout.svelte +2 -2
  72. package/esm/svelte/dialog/DialogManagement.svelte +2 -2
  73. package/esm/svelte/helpers.d.ts +1 -0
  74. package/esm/svelte/index.d.ts +1 -0
  75. package/esm/svelte/index.js +1 -0
  76. package/esm/svelte/initRemultSvelteReactivity.d.ts +1 -0
  77. package/esm/svelte/initRemultSvelteReactivity.js +29 -0
  78. package/esm/sveltekit/server/index.d.ts +2 -2
  79. package/esm/sveltekit/server/index.js +2 -2
  80. package/esm/ui/Button.svelte +1 -1
  81. package/esm/ui/Field.svelte +5 -3
  82. package/esm/ui/Field.svelte.d.ts +4 -1
  83. package/esm/ui/FieldGroup.svelte +2 -1
  84. package/esm/ui/FieldGroup.svelte.d.ts +4 -1
  85. package/esm/ui/GridPaginate.svelte +2 -2
  86. package/esm/ui/GridPaginate2.svelte +1 -1
  87. package/esm/ui/Loading.svelte +1 -1
  88. package/esm/ui/Tooltip.svelte +1 -1
  89. package/esm/ui/dialog/DialogForm.svelte +3 -3
  90. package/esm/ui/dialog/DialogManagement.svelte +2 -2
  91. package/esm/ui/dialog/DialogPrimitive.svelte +2 -2
  92. package/esm/ui/dialog/FormEditAction.svelte +2 -2
  93. package/esm/ui/internals/FieldContainer.svelte +2 -2
  94. package/esm/ui/internals/Textarea.svelte +2 -2
  95. package/esm/ui/internals/select/MultiSelectMelt.svelte +6 -6
  96. package/esm/ui/internals/select/SelectMelt.svelte +28 -14
  97. package/esm/ui/internals/select/SelectMelt.svelte.d.ts +4 -1
  98. package/esm/ui/link/LinkPlus.svelte +2 -2
  99. package/esm/vite/index.js +50 -52
  100. package/package.json +15 -12
  101. package/esm/auth/static/assets/Page-BorYIfy9.js +0 -1
  102. package/esm/auth/static/assets/Page-Cm4MsdIa.js +0 -20
  103. package/esm/auth/static/assets/Page-JfNiCSIG.css +0 -1
  104. package/esm/mail/templates/DefaultMail.svelte +0 -86
  105. package/esm/mail/templates/DefaultMail.svelte.d.ts +0 -30
@@ -34,7 +34,7 @@
34
34
  <Loading class="mx-2 h-4 w-1/2"></Loading>
35
35
  <Loading class="mx-2 h-3 w-1/6"></Loading>
36
36
  {:else if !needPaginate}
37
- <span class="text-primary justify-end px-2 font-bold">
37
+ <span class="justify-end px-2 font-bold text-primary">
38
38
  {totalCount}
39
39
  </span>
40
40
  {:else}
@@ -48,7 +48,7 @@
48
48
  </button>
49
49
  {#if isValidValue}
50
50
  <button aria-label="current" class="btn join-item px-0">
51
- <span class="text-primary font-bold">{totalCount}</span>
51
+ <span class="font-bold text-primary">{totalCount}</span>
52
52
  <span class="text-[0.55rem] italic"
53
53
  >({pageDisplayed} / {Math.ceil((totalCount ?? 0) / pageSize)})</span
54
54
  >
@@ -17,7 +17,7 @@
17
17
  <Loading class="mx-2 h-4 w-1/2"></Loading>
18
18
  <Loading class="mx-2 h-3 w-1/6"></Loading>
19
19
  {:else}
20
- <span class="text-primary justify-end px-2 font-bold">
20
+ <span class="justify-end px-2 font-bold text-primary">
21
21
  {totalCount}
22
22
  </span>
23
23
  {/if}
@@ -8,7 +8,7 @@
8
8
  <!-- To fix one capa & cadb are on the same css -->
9
9
  <div
10
10
  class={tw(
11
- 'skeleton bg-base-content/20 flex h-4 w-full items-center justify-center rounded-lg',
11
+ 'skeleton flex h-4 w-full items-center justify-center rounded-lg bg-base-content/20',
12
12
  extraClass,
13
13
  )}
14
14
  >
@@ -31,7 +31,7 @@
31
31
  {...$content}
32
32
  use:content
33
33
  transition:fade={{ duration: 100 }}
34
- class="bg-base-300 z-30 rounded-lg ring-1 ring-black"
34
+ class="z-30 rounded-lg bg-base-300 ring-1 ring-black"
35
35
  >
36
36
  <div {...$arrow} use:arrow></div>
37
37
  <div class="px-4 py-1">
@@ -18,8 +18,8 @@
18
18
  }
19
19
  }
20
20
 
21
- const onCreate = (e: CustomEvent) => {
22
- dialog.close(toShow.id, { success: true, item: e.detail })
21
+ const onCreate = (args: { input: string; id: string }) => {
22
+ dialog.close(toShow.id, { success: true, item: args.input })
23
23
  }
24
24
 
25
25
  let isLoading = false
@@ -61,7 +61,7 @@
61
61
  {cells}
62
62
  {store}
63
63
  mode={toShow.type === 'view' ? 'view' : 'edit'}
64
- on:createRequest={onCreate}
64
+ createRequest={onCreate}
65
65
  />
66
66
  </div>
67
67
 
@@ -71,10 +71,10 @@
71
71
  <p>Hey 🫵 developer, you are missing a few things 🤡!</p>
72
72
  <p>Or use use one of the custom built in dialog like</p>
73
73
 
74
- <pre class="bg-base-300 mt-2 p-2 text-xs">await dialog.confirmDelete('The Car')</pre>
74
+ <pre class="mt-2 bg-base-300 p-2 text-xs">await dialog.confirmDelete('The Car')</pre>
75
75
 
76
76
  <p>Or pass you own component</p>
77
- <pre class="bg-base-300 mt-2 p-2 text-xs">{`await dialog.show({
77
+ <pre class="mt-2 bg-base-300 p-2 text-xs">{`await dialog.show({
78
78
  detail: { caption: 'Interlocuteur' },
79
79
  component: CreateCarForm,
80
80
  props: { isEdit: false },
@@ -41,12 +41,12 @@
41
41
  <div
42
42
  {...$overlay}
43
43
  use:$overlay.action
44
- class="bg-base-300/80 fixed inset-0 z-40 blur-sm"
44
+ class="fixed inset-0 z-40 bg-base-300/80 blur-sm"
45
45
  transition:fade={{ duration: 150 }}
46
46
  ></div>
47
47
  <div
48
48
  class={tw(
49
- `border-base-content/60 bg-base-100 relative z-40 max-h-[90vh] overflow-auto rounded-xl border p-6 shadow-lg`,
49
+ `relative z-40 max-h-[90vh] overflow-auto rounded-xl border border-base-content/60 bg-base-100 p-6 shadow-lg`,
50
50
  classes.root,
51
51
  )}
52
52
  transition:flyAndScale={{
@@ -36,7 +36,7 @@
36
36
 
37
37
  <div>
38
38
  {#if $store.globalError}
39
- <span class="text-error text-xs">{$store.globalError}</span>
39
+ <span class="text-xs text-error">{$store.globalError}</span>
40
40
  {/if}
41
41
  </div>
42
42
  </div>
@@ -50,7 +50,7 @@
50
50
  {#if type === 'insert'}
51
51
  <div>
52
52
  {#if $store.globalError}
53
- <span class="text-error text-xs">{$store.globalError}</span>
53
+ <span class="text-xs text-error">{$store.globalError}</span>
54
54
  {/if}
55
55
  </div>
56
56
 
@@ -15,11 +15,11 @@
15
15
 
16
16
  <div class="form-control w-full">
17
17
  <label for={forId} class={tw(`label flex gap-1 px-2 pb-1`, classes.label)}>
18
- <span class="label-text text-base-content/60 pl-2 text-xs">
18
+ <span class="label-text pl-2 text-xs text-base-content/60">
19
19
  {label}{required ? ' *' : ''}
20
20
  </span>
21
21
  {#if error}
22
- <span class="label-text-alt text-error truncate">{error}</span>
22
+ <span class="label-text-alt truncate text-error">{error}</span>
23
23
  {/if}
24
24
  </label>
25
25
  <div class={tw('grid h-12 w-full', classes.slot)}>
@@ -49,8 +49,8 @@
49
49
  <textarea
50
50
  use:focusNow
51
51
  {...$$restProps}
52
- class="textarea textarea-bordered
53
- shadow-neutral-focus md:rounded-xls flex h-max min-h-8
52
+ class="shadow-neutral-focus md:rounded-xls
53
+ textarea textarea-bordered flex h-max min-h-8
54
54
  w-full items-center rounded-lg bg-transparent text-xs
55
55
  shadow-sm md:text-sm lg:min-h-[2.5rem]
56
56
  {scrollbar.thin}"
@@ -205,21 +205,21 @@
205
205
 
206
206
  {#if $open}
207
207
  <ul
208
- class="border-base-content/20 z-50 flex max-h-[300px] flex-col overflow-hidden rounded-lg border"
208
+ class="z-50 flex max-h-[300px] flex-col overflow-hidden rounded-lg border border-base-content/20"
209
209
  {...$menu}
210
210
  use:$menu.action
211
211
  transition:fly={{ duration: 150, y: -5 }}
212
212
  >
213
213
  <!-- svelte-ignore a11y-no-noninteractive-tabindex -->
214
- <div class="bg-base-100 flex max-h-full flex-col gap-0 overflow-y-auto py-2" tabindex="0">
214
+ <div class="flex max-h-full flex-col gap-0 overflow-y-auto bg-base-100 py-2" tabindex="0">
215
215
  {#each filteredItems as item, index (index)}
216
216
  <li
217
217
  {...$option(toOption(item))}
218
218
  use:$option.action
219
- class="data-[highlighted]:bg-primary data-[highlighted]:text-primary-content relative flex cursor-pointer scroll-my-2 items-center
220
- rounded-md
221
- px-1
219
+ class="relative flex cursor-pointer scroll-my-2 items-center rounded-md px-1
222
220
  py-2
221
+ data-[highlighted]:bg-primary
222
+ data-[highlighted]:text-primary-content
223
223
  data-[disabled]:opacity-50"
224
224
  >
225
225
  {#if isChecked($localSelected, item)}
@@ -245,7 +245,7 @@
245
245
  {/each}
246
246
  </div>
247
247
  {#if totalCount}
248
- <div class="bg-base-300 z-50 text-center text-xs">
248
+ <div class="z-50 bg-base-300 text-center text-xs">
249
249
  {#if items.length < totalCount}
250
250
  ({items.length} / {totalCount})
251
251
  {:else}
@@ -5,6 +5,7 @@
5
5
 
6
6
  import {
7
7
  Button,
8
+ LibIcon_Add,
8
9
  LibIcon_Check,
9
10
  LibIcon_Cross,
10
11
  LibIcon_Search,
@@ -36,6 +37,7 @@
36
37
  export let clearable = false
37
38
  export let createOptionWhenNoResult = false
38
39
  export let default_select_if_one_item = false
40
+ export let createRequest: ((args: { input: string; id: string }) => void) | undefined = undefined
39
41
 
40
42
  const dispatch = createEventDispatcher()
41
43
 
@@ -47,11 +49,6 @@
47
49
  dispatch('issue', msg)
48
50
  }
49
51
 
50
- function dispatchCreateRequest(e: any, input: string) {
51
- e.preventDefault()
52
- dispatch('createRequest', input)
53
- }
54
-
55
52
  let lastSearch: string | undefined = undefined
56
53
  const localLoadOptions = async (str: string) => {
57
54
  if (str === lastSearch) {
@@ -205,21 +202,21 @@
205
202
 
206
203
  {#if $open}
207
204
  <ul
208
- class="border-base-content/20 z-50 flex max-h-[300px] flex-col overflow-hidden rounded-lg border"
205
+ class="z-50 flex max-h-[300px] flex-col overflow-hidden rounded-lg border border-base-content/20"
209
206
  {...$menu}
210
207
  use:$menu.action
211
208
  transition:fly={{ duration: 150, y: -5 }}
212
209
  >
213
210
  <!-- svelte-ignore a11y-no-noninteractive-tabindex -->
214
- <div class="bg-base-100 flex max-h-full flex-col gap-0 overflow-y-auto py-2" tabindex="0">
211
+ <div class="flex max-h-full flex-col gap-0 overflow-y-auto bg-base-100 py-2" tabindex="0">
215
212
  {#each filteredItems as item, index (index)}
216
213
  <li
217
214
  {...$option(toOption(item))}
218
215
  use:$option.action
219
- class="data-[highlighted]:bg-primary data-[highlighted]:text-primary-content relative flex cursor-pointer scroll-my-2 items-center
220
- rounded-md
221
- px-1
216
+ class="relative flex cursor-pointer scroll-my-2 items-center rounded-md px-1
222
217
  py-2
218
+ data-[highlighted]:bg-primary
219
+ data-[highlighted]:text-primary-content
223
220
  data-[disabled]:opacity-50"
224
221
  >
225
222
  {#if $localSelected?.value?.id === item.id}
@@ -245,10 +242,27 @@
245
242
  <div class="p-4">
246
243
  <Button
247
244
  class="w-full"
248
- on:click={(e) => {
249
- dispatchCreateRequest(e, $inputValue)
250
- }}>Créer "{$inputValue}"</Button
245
+ on:click={async () => {
246
+ await createRequest?.({ input: $inputValue, id })
247
+ // const newValue = await createRequest?.({ input: $inputValue, id })
248
+ // if (newValue) {
249
+ // items.push(newValue)
250
+ // filteredItems.push(newValue)
251
+ // sync.selected(toOption(newValue))
252
+ // $open = false
253
+ // }
254
+ $open = false
255
+ }}
251
256
  >
257
+ <div class="flex items-center gap-2">
258
+ <Icon data={LibIcon_Add}></Icon>
259
+ {#if $inputValue}
260
+ Créer "{$inputValue}"
261
+ {:else}
262
+ Créer
263
+ {/if}
264
+ </div>
265
+ </Button>
252
266
  </div>
253
267
  {:else}
254
268
  <li class="relative cursor-pointer rounded-md py-1 pl-8 pr-4">Aucun résultat</li>
@@ -256,7 +270,7 @@
256
270
  {/each}
257
271
  </div>
258
272
  {#if totalCount}
259
- <div class="bg-base-300 z-50 text-center text-xs">
273
+ <div class="z-50 bg-base-300 text-center text-xs">
260
274
  {#if items.length < totalCount}
261
275
  ({items.length} / {totalCount})
262
276
  {:else}
@@ -26,10 +26,13 @@ declare const SelectMelt: $$__sveltets_2_IsomorphicComponent<{
26
26
  clearable?: boolean;
27
27
  createOptionWhenNoResult?: boolean;
28
28
  default_select_if_one_item?: boolean;
29
+ createRequest?: ((args: {
30
+ input: string;
31
+ id: string;
32
+ }) => void) | undefined;
29
33
  }, {
30
34
  selected: CustomEvent<any>;
31
35
  issue: CustomEvent<any>;
32
- createRequest: CustomEvent<any>;
33
36
  } & {
34
37
  [evt: string]: CustomEvent<any>;
35
38
  }, {}, {}, string>;
@@ -39,7 +39,7 @@
39
39
  <div>
40
40
  <Link href={item.href}>{item.caption}</Link>
41
41
  {#if item.captionSub && captionSubStyle === 'inline'}
42
- <span class="text-base-content/70 text-xs italic">{item.captionSub}</span>
42
+ <span class="text-xs italic text-base-content/70">{item.captionSub}</span>
43
43
  {/if}
44
44
  </div>
45
45
  {:else}
@@ -51,7 +51,7 @@
51
51
  </span>
52
52
  {/if}
53
53
  {#if item.captionSub && captionSubStyle === 'under'}
54
- <span class="text-base-content/70 text-xs italic">{item.captionSub}</span>
54
+ <span class="text-xs italic text-base-content/70">{item.captionSub}</span>
55
55
  {/if}
56
56
  </div>
57
57
  {/if}
package/esm/vite/index.js CHANGED
@@ -1,58 +1,56 @@
1
1
  import {} from 'vite';
2
2
  import { kitRoutes } from 'vite-plugin-kit-routes';
3
3
  import { stripper } from 'vite-plugin-stripper';
4
- // const toRemove = ['async_hooks', 'join', 'fs', 'path']
5
4
  export function firstly(options) {
6
- // @ts-ignore
7
- return [
8
- // {
9
- // name: 'vite-plugin-firstly',
10
- // enforce: 'pre',
11
- // config: async (a) => {
12
- // return mergeConfig(a, {
13
- // build: {
14
- // // THE ERROR:
15
- // // RollupError: Unexpected character '�' or Unexpected character '\u{7f}'
16
- // // This code (A) is to fix in `build` mode
17
- // rollupOptions: {
18
- // external: toRemove,
19
- // },
20
- // },
21
- // // This code (B) is to fix in `dev` mode
22
- // optimizeDeps: {
23
- // exclude: toRemove,
24
- // },
25
- // })
26
- // },
27
- // },
28
- // @ts-ignore
29
- ...kitRoutes({
30
- ...(options?.kitRoutes ?? {}),
31
- ...{
32
- format_page_route_id: true,
33
- logs: {
34
- post_update_run: false,
35
- update: false,
36
- ...options?.kitRoutes?.logs,
37
- },
5
+ const p = [];
6
+ // const toRemove = ['terser']
7
+ // const toRemove: string[] = []
8
+ // p.push({
9
+ // name: 'vite-plugin-firstly',
10
+ // enforce: 'pre',
11
+ // config: async (a) => {
12
+ // return mergeConfig(a, {
13
+ // build: {
14
+ // // THE ERROR:
15
+ // // RollupError: Unexpected character '�' or Unexpected character '\u{7f}'
16
+ // // This code (A) is to fix in `build` mode
17
+ // rollupOptions: {
18
+ // external: toRemove,
19
+ // },
20
+ // },
21
+ // // This code (B) is to fix in `dev` mode
22
+ // optimizeDeps: {
23
+ // exclude: toRemove,
24
+ // },
25
+ // })
26
+ // },
27
+ // })
28
+ p.push(kitRoutes({
29
+ ...(options?.kitRoutes ?? {}),
30
+ ...{
31
+ format_page_route_id: true,
32
+ logs: {
33
+ post_update_run: false,
34
+ update: false,
35
+ ...options?.kitRoutes?.logs,
38
36
  },
39
- }),
40
- // @ts-ignore
41
- ...stripper({
42
- strip: options?.stripper?.strip ?? [
43
- { decorator: 'BackendMethod' },
44
- {
45
- decorator: 'Entity',
46
- args_1: [
47
- { fn: 'backendPrefilter' },
48
- { fn: 'backendPreprocessFilter' },
49
- { fn: 'sqlExpression' },
50
- { fn: 'saved', excludeEntityKeys: ['users'] },
51
- ],
52
- },
53
- ],
54
- debug: options?.stripper?.debug ?? false,
55
- nullify: options?.stripper?.nullify ?? ['$env/static/private', '$env/dynamic/private'],
56
- }),
57
- ];
37
+ },
38
+ }));
39
+ p.push(stripper({
40
+ strip: options?.stripper?.strip ?? [
41
+ { decorator: 'BackendMethod' },
42
+ {
43
+ decorator: 'Entity',
44
+ args_1: [
45
+ { fn: 'backendPrefilter' },
46
+ { fn: 'backendPreprocessFilter' },
47
+ { fn: 'sqlExpression' },
48
+ { fn: 'saved', excludeEntityKeys: ['users'] },
49
+ ],
50
+ },
51
+ ],
52
+ debug: options?.stripper?.debug ?? false,
53
+ nullify: options?.stripper?.nullify ?? ['$env/static/private', '$env/dynamic/private'],
54
+ }));
55
+ return p;
58
56
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "firstly",
3
- "version": "0.0.16-next.2",
3
+ "version": "0.1.0-next.3",
4
4
  "type": "module",
5
5
  "description": "Firstly, an opinionated Remult setup!",
6
6
  "funding": "https://github.com/sponsors/jycouet",
@@ -16,20 +16,23 @@
16
16
  },
17
17
  "peerDependencies": {
18
18
  "@sveltejs/kit": ">=1.0.0 <3.0.0",
19
- "remult": ">=2.7.32",
19
+ "remult": "3.0.6",
20
20
  "svelte": ">=5"
21
21
  },
22
22
  "peerDependenciesMeta": {
23
23
  "@sveltejs/kit": {
24
24
  "optional": true
25
25
  },
26
+ "remult": {
27
+ "optional": true
28
+ },
26
29
  "svelte": {
27
30
  "optional": true
28
31
  }
29
32
  },
30
33
  "dependencies": {
31
- "@clack/prompts": "0.10.0",
32
- "@kitql/internals": "0.10.4",
34
+ "@clack/prompts": "0.11.0",
35
+ "@kitql/internals": "0.10.5",
33
36
  "@layerstack/svelte-actions": "1.0.0",
34
37
  "@layerstack/utils": "1.0.0",
35
38
  "@mdi/js": "7.4.47",
@@ -37,20 +40,20 @@
37
40
  "@oslojs/crypto": "1.0.1",
38
41
  "@oslojs/encoding": "1.1.0",
39
42
  "@oslojs/otp": "1.1.0",
40
- "@types/nodemailer": "6.4.14",
41
- "arctic": "3.6.0",
43
+ "@types/nodemailer": "6.4.17",
44
+ "arctic": "3.7.0",
42
45
  "bcryptjs": "3.0.2",
43
46
  "clsx": "2.1.1",
44
- "cron": "4.1.0",
47
+ "cron": "4.3.0",
45
48
  "daisyui": "4.12.14",
46
49
  "esm-env": "1.2.2",
47
- "nodemailer": "6.10.0",
48
- "svelty-email": "0.0.11",
50
+ "mjml": "4.15.3",
51
+ "nodemailer": "7.0.4",
52
+ "sailkit": "0.3.0",
49
53
  "tailwind-merge": "2.6.0",
50
54
  "tailwindcss": "3.4.4",
51
- "vite": "6.2.2",
52
- "vite-plugin-kit-routes": "0.8.4",
53
- "vite-plugin-stripper": "0.9.0"
55
+ "vite-plugin-kit-routes": "1.0.2",
56
+ "vite-plugin-stripper": "0.9.2"
54
57
  },
55
58
  "sideEffects": false,
56
59
  "bin": "./esm/bin/cmd.js",
@@ -1 +0,0 @@
1
- import{D as r,E as m,am as l,S as o,T as d,U as n,V as p,W as u,Y as i}from"./index-Borxa2ns.js";p();a[u]="src/lib/modules/admin/Page.svelte";function a(e,s){r(new.target),m(s,!1,a);var t=l("Hello from admin");return o(e,t),d({...n()})}i(a);export{a as default};