erudit 3.0.0-dev.7 → 3.0.0-dev.8

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.
@@ -9,23 +9,17 @@ import {
9
9
  type BitranTranspiler,
10
10
  type ElementTranspilers,
11
11
  } from '@bitran-js/transpiler';
12
- import type { BitranElements } from '@erudit-js/cog/schema';
13
- import { eruditDefaultElements } from '@erudit-js/bitran-elements/default';
12
+ import { eruditDefaultTranspilers } from '@erudit-js/bitran-elements/defaultTranspilers';
13
+ import { eruditDefaultRenderers } from '@erudit-js/bitran-elements/defaultRenderers';
14
14
 
15
15
  import eruditConfig from '#erudit/config';
16
16
  import bitranConfig from '#erudit/client/bitran';
17
17
 
18
- let defaultElements!: BitranElements;
19
18
  let bitranTranspiler!: BitranTranspiler;
20
19
  let bitranRenderers!: ElementVueRenderers;
21
20
 
22
21
  globalThis.useEruditConfig = () => eruditConfig;
23
22
 
24
- export function getDefaultElements() {
25
- if (!defaultElements) defaultElements = eruditDefaultElements();
26
- return defaultElements;
27
- }
28
-
29
23
  //
30
24
  // Transpiler
31
25
  //
@@ -34,11 +28,10 @@ export async function useBitranTranspiler() {
34
28
  if (bitranTranspiler) return bitranTranspiler;
35
29
 
36
30
  const projectTranspilers = await getProjectTranspilers();
37
- const defaultTranspilers = await getDefaultTranspilers();
38
31
 
39
32
  bitranTranspiler = defineBitranTranspiler({
40
33
  ...projectTranspilers,
41
- ...defaultTranspilers,
34
+ ...eruditDefaultTranspilers,
42
35
  });
43
36
 
44
37
  return bitranTranspiler;
@@ -56,16 +49,6 @@ async function getProjectTranspilers(): Promise<ElementTranspilers> {
56
49
  return projectTranspilers;
57
50
  }
58
51
 
59
- async function getDefaultTranspilers(): Promise<ElementTranspilers> {
60
- const defaultElements = getDefaultElements();
61
- const defaultTranspilers: ElementTranspilers = {};
62
-
63
- for (const [name, bitranElement] of Object.entries(defaultElements))
64
- defaultTranspilers[name] = await bitranElement.transpiler();
65
-
66
- return defaultTranspilers;
67
- }
68
-
69
52
  //
70
53
  // Renderers
71
54
  //
@@ -74,12 +57,11 @@ export async function useBitranRenderers() {
74
57
  if (bitranRenderers) return bitranRenderers;
75
58
 
76
59
  const projectRenderers = await getProjectRenderers();
77
- const defaultRenderers = await getDefaultRenderers();
78
60
 
79
61
  // @ts-ignore
80
62
  bitranRenderers = {
81
63
  ...projectRenderers,
82
- ...defaultRenderers,
64
+ ...eruditDefaultRenderers,
83
65
  };
84
66
 
85
67
  return bitranRenderers!;
@@ -97,16 +79,6 @@ async function getProjectRenderers() {
97
79
  return projectRenderers;
98
80
  }
99
81
 
100
- async function getDefaultRenderers() {
101
- const defaultElements = getDefaultElements();
102
- const defaultRenderers: ElementVueRenderers = {};
103
-
104
- for (const [name, bitranElement] of Object.entries(defaultElements))
105
- defaultRenderers[name] = await bitranElement.renderer();
106
-
107
- return defaultRenderers;
108
- }
109
-
110
82
  //
111
83
  // Utils
112
84
  //
package/module/bitran.ts CHANGED
@@ -7,9 +7,10 @@ import { logger } from '@erudit/module/logger';
7
7
 
8
8
  export async function setupBitranConfig(_nuxt: Nuxt) {
9
9
  let config: Partial<EruditBitranConfig>;
10
+ const configPath = projectPath('bitran.config');
10
11
 
11
12
  try {
12
- const projectConfig = (await import(projectPath('bitran'))).default;
13
+ const projectConfig = (await import(configPath)).default;
13
14
  if (!projectConfig) throw new Error('Falsy Bitran config!');
14
15
  config = projectConfig;
15
16
  } catch (error) {
@@ -23,7 +24,7 @@ export async function setupBitranConfig(_nuxt: Nuxt) {
23
24
  write: true,
24
25
  getContents: () => `
25
26
  import type { EruditBitranConfig } from '@erudit-js/cog/schema';
26
- ${config ? `import bitranConfig from '${projectPath('bitran')}';` : ''}
27
+ ${config ? `import bitranConfig from '${configPath}';` : ''}
27
28
  export default ${config ? 'bitranConfig' : '{}'} as Partial<EruditBitranConfig>;
28
29
  `,
29
30
  });
package/module/config.ts CHANGED
@@ -7,9 +7,10 @@ import { logger } from '@erudit/module/logger';
7
7
 
8
8
  export async function setupEruditConfig(_nuxt: Nuxt) {
9
9
  let config: Partial<EruditConfig> = {};
10
+ const configPath = projectPath('erudit.config');
10
11
 
11
12
  try {
12
- const projectConfig = (await import(projectPath('erudit'))).default;
13
+ const projectConfig = (await import(configPath)).default;
13
14
  if (!projectConfig) throw new Error('Falsy Erudit config!');
14
15
  config = projectConfig;
15
16
  } catch (error) {
package/module/index.ts CHANGED
@@ -32,10 +32,11 @@ export default defineNuxtModule({
32
32
  const optimizeDeps = _nuxt.options.vite.optimizeDeps || {};
33
33
  const optimizeDepsInclude = (optimizeDeps.include ||= []);
34
34
 
35
- transpile.push(...(eruditConfig.nuxt?.transpile || []));
36
- optimizeDepsInclude.push(
37
- ...(eruditConfig.nuxt?.optimizeDeps || []),
38
- );
35
+ const deps = eruditConfig.dependencies || {};
36
+ for (const [dep, options] of Object.entries(deps)) {
37
+ if (options?.transpile) transpile.push(dep);
38
+ if (options?.optimize) optimizeDepsInclude.push(dep);
39
+ }
39
40
  }
40
41
 
41
42
  // TODO: Watch for contributors folder and create/update template with their IDs
package/nuxt.config.ts CHANGED
@@ -83,8 +83,14 @@ export default defineNuxtConfig({
83
83
  },
84
84
  vite: {
85
85
  optimizeDeps: {
86
- noDiscovery: true,
87
- include: ['yaml', '@floating-ui/vue'],
86
+ include: [
87
+ 'yaml',
88
+ '@floating-ui/vue',
89
+ '@bitran-js/core',
90
+ '@bitran-js/transpiler',
91
+ '@bitran-js/renderer-vue',
92
+ '@erudit-js/bitran-elements',
93
+ ],
88
94
  },
89
95
  server: { fs: { strict: false } },
90
96
  css: {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "erudit",
3
- "version": "3.0.0-dev.7",
3
+ "version": "3.0.0-dev.8",
4
4
  "type": "module",
5
5
  "description": "🤓 CMS for perfect educational sites.",
6
6
  "license": "MIT",
@@ -15,14 +15,14 @@
15
15
  "erudit": "bin/erudit.mjs"
16
16
  },
17
17
  "peerDependencies": {
18
- "@erudit-js/bitran-elements": "3.0.0-dev.7"
18
+ "@erudit-js/cog": "3.0.0-dev.8",
19
+ "@erudit-js/cli": "3.0.0-dev.8",
20
+ "@erudit-js/bitran-elements": "3.0.0-dev.8"
19
21
  },
20
22
  "dependencies": {
21
23
  "@bitran-js/core": "1.0.0-dev.10",
22
24
  "@bitran-js/renderer-vue": "1.0.0-dev.10",
23
25
  "@bitran-js/transpiler": "1.0.0-dev.10",
24
- "@erudit-js/cli": "3.0.0-dev.7",
25
- "@erudit-js/cog": "3.0.0-dev.7",
26
26
  "@floating-ui/vue": "^1.1.6",
27
27
  "chalk": "^5.4.1",
28
28
  "chokidar": "^4.0.3",
@@ -30,9 +30,9 @@
30
30
  "glob": "^11.0.1",
31
31
  "image-size": "^1.2.0",
32
32
  "jiti": "^2.4.2",
33
- "nuxt": "3.15.4",
33
+ "nuxt": "3.16.1",
34
34
  "nuxt-my-icons": "1.0.2",
35
- "sass": "^1.85.1",
35
+ "sass": ">=1.85.1",
36
36
  "sqlite3": "^5.1.7",
37
37
  "typeorm": "^0.3.21",
38
38
  "vue": "latest",
@@ -5,7 +5,7 @@ import { ERUDIT_SERVER } from '@server/global';
5
5
  export async function setupBitranConfig() {
6
6
  try {
7
7
  ERUDIT_SERVER.BITRAN_CONFIG = (
8
- await IMPORT(PROJECT_DIR + '/bitran.ts')
8
+ await IMPORT(PROJECT_DIR + '/bitran.config')
9
9
  ).default;
10
10
  } catch {}
11
11
  }
@@ -2,35 +2,21 @@ import {
2
2
  defineBitranTranspiler,
3
3
  type ElementTranspilers,
4
4
  } from '@bitran-js/transpiler';
5
+ import { eruditDefaultTranspilers } from '@erudit-js/bitran-elements/defaultTranspilers';
5
6
 
6
7
  import { ERUDIT_SERVER } from '@server/global';
7
8
 
8
9
  export async function createBitranTranspiler() {
9
10
  const projectTranspilers = await getProjectTranspilers();
10
- const defaultTranspilers = await getDefaultTranspilers();
11
11
 
12
12
  const bitranTranspiler = defineBitranTranspiler({
13
13
  ...projectTranspilers,
14
- ...defaultTranspilers,
14
+ ...eruditDefaultTranspilers,
15
15
  });
16
16
 
17
17
  return bitranTranspiler;
18
18
  }
19
19
 
20
- async function getDefaultTranspilers(): Promise<ElementTranspilers> {
21
- const getDefaultElements = (
22
- await import('@erudit-js/bitran-elements/default')
23
- ).eruditDefaultElements;
24
-
25
- const defaultElements = getDefaultElements();
26
- const defaultTranspilers: ElementTranspilers = {};
27
-
28
- for (const [name, bitranElement] of Object.entries(defaultElements))
29
- defaultTranspilers[name] = await bitranElement.transpiler();
30
-
31
- return defaultTranspilers;
32
- }
33
-
34
20
  async function getProjectTranspilers(): Promise<ElementTranspilers> {
35
21
  const bitranElements = ERUDIT_SERVER?.BITRAN_CONFIG?.elements;
36
22
 
@@ -30,7 +30,7 @@ export class DbContent {
30
30
  description?: string;
31
31
 
32
32
  @Column('simple-json', { nullable: true })
33
- flags?: Record<ContentFlag, boolean>;
33
+ flags?: Partial<Record<ContentFlag, boolean>>;
34
34
 
35
35
  @Column('varchar', { nullable: true })
36
36
  decoration?: string;