@raclettejs/core 0.1.25 → 0.1.27

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@raclettejs/core",
3
- "version": "0.1.25",
3
+ "version": "0.1.27",
4
4
  "description": "racletteJS core package",
5
5
  "repository": "https://gitlab.com/raclettejs/core",
6
6
  "author": "Pacifico Digital Explorations GmbH <info@raclettejs.com>",
@@ -37,7 +37,8 @@
37
37
  "src/types.ts",
38
38
  "LICENSE.md",
39
39
  "CONTRIBUTING.md",
40
- "raclette.default.config.yaml"
40
+ "raclette.default.config.yaml",
41
+ "templates"
41
42
  ],
42
43
  "exports": {
43
44
  ".": {
@@ -78,7 +79,7 @@
78
79
  "@emnapi/core": "1.9.2",
79
80
  "@emnapi/runtime": "1.9.2",
80
81
  "@eslint/js": "9.35.0",
81
- "@raclettejs/types": "^0.1.25",
82
+ "@raclettejs/types": "^0.1.27",
82
83
  "@types/fs-extra": "11.0.4",
83
84
  "@types/js-yaml": "4.0.9",
84
85
  "@types/node": "25.5.0",
@@ -126,7 +126,7 @@ export class ConfigService {
126
126
  public getFastifyRateLimits() {
127
127
  const config = this.getConfig()
128
128
 
129
- return config?.accessRateLimit ?? { max: 1000, timeWindow: "1 minute" }
129
+ return config?.accessRateLimit ?? { max: 1000, timeWindow: 60000 }
130
130
  }
131
131
  // Helper to check if a specific auto-send feature is enabled
132
132
  // Default to true unless explicitly set to false
@@ -6,16 +6,5 @@ import configService from "@c/config/configService"
6
6
  export default fastifyPlugin(async (fastify: FastifyInstance) => {
7
7
  const opts = configService.getFastifyRateLimits()
8
8
  fastify.log.info("Fastify Ratelimiter with opts " + JSON.stringify(opts))
9
- await fastify.register(rateLimit, opts)
10
- fastify.setNotFoundHandler(
11
- {
12
- preHandler: fastify.rateLimit({
13
- max: 4,
14
- timeWindow: 500,
15
- }),
16
- },
17
- function (request, reply) {
18
- reply.code(404).send({ why: "you do dat?" })
19
- },
20
- )
9
+ await fastify.register(rateLimit, { ...opts, global: true })
21
10
  })
@@ -42,6 +42,7 @@ const $writeDataApi = (
42
42
  if (options.responseType === "stream") {
43
43
  return writeData(actionId, operationDefinition, queryParams, options)
44
44
  }
45
+
45
46
  isLoadingSubject$.next(true)
46
47
  const resultData = await writeData(
47
48
  actionId,
@@ -49,8 +50,7 @@ const $writeDataApi = (
49
50
  queryParams,
50
51
  options,
51
52
  ).catch((e) => {
52
- const errorObj = e
53
- errorSubject$.next(errorObj)
53
+ errorSubject$.next(e.response)
54
54
  isLoadingSubject$.next(false)
55
55
  })
56
56
  responseSubject$.next(resultData?.response)
@@ -86,8 +86,7 @@ export const $queryApi = (
86
86
  queryParams,
87
87
  options,
88
88
  ).catch((e) => {
89
- const errorObj = e
90
- errorSubject$.next(errorObj)
89
+ errorSubject$.next(e.response)
91
90
  })
92
91
  responseSubject$.next(resultData?.response)
93
92
  if (callbacks[actionId] && typeof callbacks[actionId] === "function") {
@@ -122,26 +122,6 @@ const storePatterns = {
122
122
  uuid: false,
123
123
  version: "0.0.0",
124
124
  },
125
- page: {
126
- // the icon to be displayed in the page navigation
127
- icon: false,
128
- // this will determine if we always scroll to the last page position or
129
- // to the top whenever we enter this page
130
- scrollTop: false,
131
- // The title of the page if i18n from db
132
- title: "",
133
- // The title of the page if i18n key is handled in frontend
134
- titleI18n: "",
135
- // grid config for a page
136
- grid: configPatterns.grid,
137
- // the array containing the configs for the 1-n slots
138
- slots: [[]],
139
- // the name of the route configured in the vue router
140
- routeName: false,
141
- // The uuid of other unique identifier for the page within the application context
142
- uuid: false,
143
- version: "0.0.0",
144
- },
145
125
  widget: {
146
126
  // The title of the page if i18n from db
147
127
  title: "",
@@ -152,30 +132,15 @@ const storePatterns = {
152
132
  uuid: false,
153
133
  // the type of widget which represents a folder name under widgets and a config
154
134
  name: false,
155
- // a deeper abstractation level for widgets which are used as tools.
156
- // ie. type:''add' create a folder called 'add' and create a default.vue
157
- // or FACE.vue containing your add logic for a given widget
135
+ // any working state we want to have available in the store and not just the component
158
136
  workingState: {},
137
+ // any acutal config we provide to the widget
138
+ config: {},
139
+ // any data the widget want's to provide to other widgets/plugins/core such as serializers, connection hooks to other modules etc
140
+ public: {},
159
141
  version: "0.0.0",
160
- },
161
- tools: {
162
- // The title of the page if i18n from db
163
- title: "",
164
- // The title of the page if i18n key is handled in frontend
165
- titleI18n: "",
166
- // an array of route names this tool should be visible on. If array is empty, it will be visible everywhere
167
- pages: [],
168
- // an icon to be displayed in the tool wrapper
169
- icon: false,
170
- // a uniqe identifier for the tool
171
- uuid: false,
172
- // the widget which should serve as the functionallity of the tool
173
- widget: false,
174
- version: "0.0.0",
142
+ pluginKey: "",
175
143
  },
176
144
  }
177
145
 
178
- // add the widget store pattern to the tool
179
- storePatterns.tools.widget = storePatterns.widget
180
-
181
146
  export { loadingHold, applicationState, configPatterns, storePatterns }
@@ -0,0 +1,31 @@
1
+ FROM node:24.4-alpine3.21
2
+ WORKDIR /app
3
+
4
+ # add bash since alpine doesn't come with a shell
5
+ RUN apk update && apk add bash curl {{config.services.backend.installPackages}} {{.}} {{/config.services.backend.installPackages}}
6
+
7
+ COPY backend/package.json backend/yarn.lock ./
8
+ COPY backend/raclette.config.js ./
9
+
10
+ ARG NODE_ENV={{environment}}
11
+
12
+
13
+ # make sure our raclette packages are being resolved by adding a symlink to handle nodes module resolution
14
+ RUN mkdir -p /app/node_modules/@raclettejs/core
15
+ RUN ln -sf /app/src /app/node_modules/@raclettejs/core/backend
16
+
17
+ COPY ./dist/check-dependencies.sh /app/
18
+ RUN chmod +x /app/check-dependencies.sh
19
+
20
+ # copy everything else that is not ignored (see .dockerignore)
21
+ COPY ./virtual/backend ./
22
+
23
+ # set default values
24
+ ENV PORT 3000
25
+
26
+ # set port
27
+ EXPOSE 3000
28
+ EXPOSE 9229
29
+
30
+ # default command
31
+ CMD ["yarn", "run", "{{#environment}}build{{/environment}} {{^environment}}dev{{/environment}} "]
@@ -0,0 +1,34 @@
1
+ entryPoints:
2
+ - ./src/cli.ts
3
+ - ./src/index.ts
4
+ bundle: true
5
+ platform: node
6
+ target: node20
7
+ outdir: ./dist
8
+ format: esm
9
+ banner:
10
+ js: "import { createRequire } from 'module'; const require = createRequire(import.meta.url);"
11
+ external:
12
+ # External packages that shouldn't be bundled
13
+ - fastify
14
+ - mongodb
15
+ - mongoose
16
+ - redis
17
+ - chokidar
18
+ - fs-extra
19
+ # Node.js built-ins
20
+ - fs
21
+ - path
22
+ - child_process
23
+ - os
24
+ - url
25
+ - util
26
+ - events
27
+ - stream
28
+ - crypto
29
+ # Add any native modules you're using
30
+ - fsevents
31
+ loader:
32
+ .node: file
33
+ sourcemap: true
34
+ minify: false
File without changes
File without changes
@@ -0,0 +1,161 @@
1
+ services:
2
+ mongodb:
3
+ container_name: ${RACLETTE_MONGODB_CONTAINERNAME:-raclette-mongodb}
4
+ image: mongo:8.2
5
+ restart: unless-stopped
6
+ ports:
7
+ - 127.0.0.1:${RACLETTE_MONGODB_PORT:-27017}:27017
8
+ volumes:
9
+ - ${RACLETTE_MONGODB_VOLUME:-raclette-mongodb}:/data/db
10
+ - >-
11
+ ${RACLETTE_MONGODB_CONFIG_VOLUME:-playground-mongodb-config}:/data/config
12
+ networks:
13
+ - raclette_shared
14
+ healthcheck:
15
+ test:
16
+ - CMD
17
+ - mongosh
18
+ - '--eval'
19
+ - db.adminCommand('ping')
20
+ interval: 10s
21
+ timeout: 30s
22
+ retries: 20
23
+ cache:
24
+ container_name: ${RACLETTE_CACHE_CONTAINERNAME:-raclette-cache}
25
+ image: valkey/valkey:9.0-alpine
26
+ ports:
27
+ - 127.0.0.1:${RACLETTE_CACHE_PORT:-6379}:6379
28
+ volumes:
29
+ - ${RACLETTE_CACHE_VOLUME:-raclette-cache}:/data
30
+ networks:
31
+ - raclette_shared
32
+ healthcheck:
33
+ test:
34
+ - CMD
35
+ - valkey-cli
36
+ - ping
37
+ interval: 10s
38
+ timeout: 5s
39
+ retries: 3
40
+ command: valkey-server --save ""
41
+ backend:
42
+ container_name: ${RACLETTE_SERVER_CONTAINERNAME:-playground-backend}
43
+ build:
44
+ context: .
45
+ dockerfile: ./backend.Dockerfile
46
+ args:
47
+ NODE_ENV: development
48
+ command: yarn run dev:inspect
49
+ environment:
50
+ - NODE_ENV=${NODE_ENV:-development}
51
+ - DISABLE_PLUGIN_LOGS=${RACLETTE_DISABLE_PLUGIN_LOGS:-false}
52
+ - >-
53
+ SERVER_TOKEN_SECRET=${RACLETTE_SERVER_TOKEN_SECRET:-thisshouldbesetforproduction}
54
+ - RACLETTE_FRONTEND_URLS=${RACLETTE_FRONTEND_URLS:-}
55
+ - >-
56
+ MONGO_HOST=${RACLETTE_MONGODB_HOST:-mongodb://mongodb:${RACLETTE_MONGODB_PORT:-27017}/${RACLETTE_MONGODB_DATABASE:-raclette}}
57
+ - >-
58
+ CACHE_URL=${RACLETTE_CACHE_URL:-redis://cache:${RACLETTE_CACHE_PORT:-6379}}
59
+ - RACLETTE_DEBUG_MODE=true
60
+ - RACLETTE_APP_PATH=/home/shookie/core-dev/@raclettejs/playground
61
+ volumes:
62
+ - yarn-cache:/usr/local/share/.cache/yarn
63
+ - playground-backend_node_modules:/app/node_modules
64
+ - >-
65
+ /home/shookie/core-dev/@raclettejs/playground/.raclette/virtual/backend/src:/app/src
66
+ - >-
67
+ /home/shookie/core-dev/@raclettejs/playground/plugins:/app/src/appPlugins
68
+ - >-
69
+ /home/shookie/core-dev/@raclettejs/playground/.raclette/backend/raclette.config.js:/app/raclette.config.js
70
+ - >-
71
+ /home/shookie/core-dev/@raclettejs/playground/backend.yarn.lock:/app/yarn.lock
72
+ - >-
73
+ /home/shookie/core-dev/@raclettejs/playground/.raclette/dist/check-dependencies.sh:/app/check-dependencies.sh
74
+ - >-
75
+ /home/shookie/core-dev/@raclettejs/playground/.raclette/backend/package.json:/app/package.json
76
+ ports:
77
+ - ${RACLETTE_SERVER_PORT:-8082}:3000
78
+ - '9229:9229'
79
+ networks:
80
+ - raclette_shared
81
+ depends_on:
82
+ mongodb:
83
+ condition: service_started
84
+ cache:
85
+ condition: service_healthy
86
+ healthcheck:
87
+ test:
88
+ - CMD
89
+ - curl
90
+ - '-f'
91
+ - http://0.0.0.0:3000/health
92
+ interval: 10s
93
+ timeout: 30s
94
+ retries: 10
95
+ entrypoint:
96
+ - /app/check-dependencies.sh
97
+ frontend:
98
+ container_name: ${RACLETTE_CLIENT_CONTAINERNAME:-playground-frontend}
99
+ build:
100
+ context: .
101
+ dockerfile: ./frontend.Dockerfile
102
+ args:
103
+ NODE_ENV: ${NODE_ENV:-development}
104
+ target: ${NODE_ENV:-development}
105
+ command: yarn dev
106
+ depends_on:
107
+ backend:
108
+ condition: service_healthy
109
+ environment:
110
+ - NODE_ENV=${NODE_ENV:-development}
111
+ - RACLETTE_DEBUG_MODE=${RACLETTE_DEBUG_MODE:-true}
112
+ - >-
113
+ RACLETTE_SERVER_BASE_URL=${RACLETTE_SERVER_BASE_URL:-http://localhost:${RACLETTE_SERVER_PORT:-8082}}
114
+ - >-
115
+ RACLETTE_SOCKET_URL=${RACLETTE_SOCKET_URL:-http://localhost:${RACLETTE_SERVER_PORT:-8082}}
116
+ - RACLETTE_DEBUG_MODE=true
117
+ - RACLETTE_APP_PATH=/home/shookie/core-dev/@raclettejs/playground
118
+ volumes:
119
+ - yarn-cache:/usr/local/share/.cache/yarn
120
+ - >-
121
+ /home/shookie/core-dev/@raclettejs/playground/.raclette/virtual/frontend/src:/app/src
122
+ - >-
123
+ /home/shookie/core-dev/@raclettejs/playground/.raclette/virtual/backend/src/shared:/app/src/shared
124
+ - playground-frontend_node_modules:/app/node_modules
125
+ - /home/shookie/core-dev/@raclettejs/playground/plugins:/app/src/plugins
126
+ - >-
127
+ /home/shookie/core-dev/@raclettejs/playground/.raclette/virtual/backend/src/corePlugins:/app/src/corePlugins
128
+ - >-
129
+ /home/shookie/core-dev/@raclettejs/playground/.raclette/frontend/raclette.config.js:/app/raclette.config.js
130
+ - >-
131
+ /home/shookie/core-dev/@raclettejs/playground/frontend.yarn.lock:/app/yarn.lock
132
+ - >-
133
+ /home/shookie/core-dev/@raclettejs/playground/.raclette/dist/check-dependencies.sh:/app/check-dependencies.sh
134
+ - >-
135
+ /home/shookie/core-dev/@raclettejs/playground/.raclette/frontend/package.json:/app/package.json
136
+ ports:
137
+ - ${RACLETTE_CLIENT_PORT:-8081}:8081
138
+ networks:
139
+ - raclette_shared
140
+ healthcheck:
141
+ test:
142
+ - CMD
143
+ - curl
144
+ - '-f'
145
+ - http://0.0.0.0:8081/
146
+ interval: 10s
147
+ timeout: 30s
148
+ retries: 10
149
+ entrypoint:
150
+ - /app/check-dependencies.sh
151
+ volumes:
152
+ yarn-cache:
153
+ driver: local
154
+ raclette-public-shared: null
155
+ {{#volumes}}
156
+ {{entry}}
157
+ {{/volumes}}
158
+ networks:
159
+ raclette_shared:
160
+ external: true
161
+ name: raclette_shared
@@ -0,0 +1,49 @@
1
+ FROM node:24-alpine3.21 AS build
2
+ WORKDIR /app
3
+
4
+ RUN apk update && apk add bash curl {{#config.services.frontend.installPackages}} {{.}} {{/config.services.frontend.installPackages}}
5
+
6
+ # Copy package files first for better caching
7
+ COPY frontend/package.json frontend/yarn.lock ./
8
+ COPY frontend/raclette.config.js ./
9
+
10
+ ARG NODE_ENV={{environment}}
11
+
12
+ # Copy source files - we'll handle development overrides through volumes
13
+ COPY ./virtual/frontend/ ./
14
+
15
+ COPY ./dist/check-dependencies.sh /app/
16
+ RUN chmod +x /app/check-dependencies.sh
17
+
18
+ RUN rm -rf ./src/shared
19
+
20
+ # Now copy the actual shared folder - be explicit with the path
21
+ COPY virtual/backend/src/shared/ ./src/shared/
22
+
23
+ # Ports
24
+ ENV PORT {{config.services.frontend.port}}
25
+ EXPOSE {{config.services.frontend.port}}
26
+
27
+ # Add development target
28
+ FROM build AS development
29
+ CMD ["yarn", "run", "dev"]
30
+
31
+ # ----------------------------------------------------------------
32
+ # 2. production stage
33
+ # Here we will use a new docker image, which is only the web server
34
+ FROM nginx:stable-alpine AS production
35
+ WORKDIR /app
36
+
37
+ # Copy nginx config as a template
38
+ COPY frontend/provision/nginx.conf /etc/nginx/conf.d/default.conf.template
39
+
40
+ COPY --from=build app/dist /usr/share/nginx/html
41
+ COPY frontend/provision/entrypoint.sh /docker-entrypoint.d/entrypoint.sh
42
+
43
+ # Make sure the entrypoint is executable
44
+ RUN chmod +x /docker-entrypoint.d/entrypoint.sh
45
+
46
+ ENV PORT 80
47
+ EXPOSE 80
48
+
49
+ CMD ["nginx", "-g", "daemon off;"]
@@ -0,0 +1,73 @@
1
+ # this defines the contents of the raclette app directory named by config.root (usually .raclette)
2
+ # the files in there are either generated at build time or linked from the sources
3
+ # these settings rarely if ever change, so they are outside the general raclette.config.yaml
4
+ # during development almost everything in there is mounted as volumes to the different running containers
5
+ # in production builds the contents become part of the image
6
+
7
+ # almost the only reason this exists is so the development docker containers can do hot-reload
8
+ # without messing up the workspaces and git repo
9
+ # the hot-reload itself is of course handled by node, vite or tsx
10
+ # but the changes in the repo need to be passed on to the volumes
11
+ # this is done by creating hardlinks on startup
12
+ # and watching the repo itself for relevant additions and deletions
13
+
14
+
15
+ patterns:
16
+ # can be used in vfs mappings, but mainly is used in watcher file selection
17
+ ext: ["**/*.vue", "**/*.ts", "**/*.js", "**/*.json", "**/*.css", "**/*.scss"]
18
+ pkg: ["**/package.json", "**/yarn.lock"] # changes here require new install anyway
19
+ # always added when globbing, config.root is also always added
20
+ ignore: ["**/node_modules/**", "**/.git/**", "**/dist/**", "**/.prettierrc", "**/eslint.config.js"]
21
+
22
+
23
+ mappings:
24
+ # this defines how files are processed, whether they are watched or not
25
+ # remember, all watched files are hard linked, this just defines where from and where to
26
+ # the mappings are processed in order, and when a later mapping tries to link to the same location, that file will be ignored
27
+ #
28
+ # src: files can come from different source paths, the most common being
29
+ # 1. generated files from the raclette root directory, paths starting with "/"
30
+ # generated files are not watched
31
+ # 2. the raclette core package, paths starting with ".", this is the default
32
+ # 3. paths defined in environment variables, starting with "$", the default being "RACLETTE_APP_PATH"
33
+ # 4. any other relative path is from the current application directory, the default is ""
34
+ # get: this selects the files relative to the source that need to be gotten
35
+ # - you use globby syntax here for pattern matching
36
+ # - a string that matches a key in patterns above will splice the pattern into the glob list
37
+ # - default is [ '**' ], i.e. recursivly everything
38
+ # for dst:
39
+ # - always relative to vfs root, i.e. "." is the default, which is "$config.root/virtual/"
40
+ # - the final link target is always the join of dst / selected-file
41
+ # - can be a list for multiple destinations
42
+ # - when the get list is a single file, and dst is not "." and does not end in "/", the file will be renamed
43
+ - src: services/
44
+ - get: src/types.ts
45
+ dst: [backend/types/index.ts, frontend/types/index.ts]
46
+ - src: ./services/
47
+ - src: /
48
+ get: [ frontend/*, backend/* ]
49
+ - get: bin/check-dependencies.sh # copies from core/bin into $config.root/dist/
50
+ dst: ../dist/check-dependencies.sh
51
+ - src: i18n
52
+ dst: frontend/src/orchestrator/i18n/app/
53
+ - src: workbench/i18n
54
+ dst: frontend/src/orchestrator/i18n/workbench/
55
+ - src: shared
56
+ dst: [ frontend/src/shared/app/, backend/src/shared/app/ ]
57
+ - src: $/shared/
58
+ dst: [ backend/src/shared/app/, backend/src/shared/app/ ]
59
+
60
+ # these are the chokidar watcher options that get passed along as is (ignored string compiled as RegExp)
61
+ watcher:
62
+ followSymlinks: false
63
+ ignoreInitial: true
64
+ ignored: ^node_modules|/node_modules$|^dist|/dist$|^\\.git|/\\.git$
65
+
66
+ volumes:
67
+ # these are added to the volumes of the respective services in the compose files
68
+ # since later volumes override earlier volumes, the order here is important
69
+ # for production builds this also defines the order of COPY operations for image creation
70
+ # volume sources can be the same as mapping sources, with one exception:
71
+ # there can't be any direct mounting of core based paths, instead there are vfs based paths
72
+ # i.e. paths starting with "." are relative to "$config.root/virtual"
73
+ -
File without changes
File without changes
@@ -0,0 +1,61 @@
1
+ defineRacletteConfig:
2
+ name: "raclette-dev"
3
+
4
+ # Configure services
5
+ services:
6
+ frontend:
7
+ enabled: true
8
+ port: 8081
9
+
10
+ backend:
11
+ enabled: true
12
+ port: 8082
13
+ enableDebug: {{process.env.ENABLE_DEBUG}}
14
+ installPackages: ["imagemagick", "font-overpass", "font-dejavu"]
15
+
16
+ mongodb:
17
+ name: "raclette-mongodb"
18
+ enabled: true
19
+ port: 27017
20
+ volume: "raclette-mongodb"
21
+ databaseName: "raclette"
22
+
23
+ cache:
24
+ name: "raclette-cache"
25
+ volume: "raclette-cache"
26
+ enabled: true
27
+ port: 6379
28
+
29
+ workbench:
30
+ enabled: true
31
+ debugPort: 9228
32
+ frontendPort: 8083
33
+ backendPort: 8084
34
+ withLogs: false
35
+
36
+ # list your installed plugins
37
+ # make sure they are listed in your package.json
38
+ # Environment-specific configuration
39
+ env:
40
+ development:
41
+ RACLETTE_DEBUG_MODE: true
42
+ production:
43
+ NODE_ENV: "production"
44
+
45
+ # Frontend framework configuration
46
+ frontend:
47
+ meta:
48
+ title: "Dev-Setup"
49
+ i18n:
50
+ locales: ["tl-TL", "en-EU", "de-DE"]
51
+ framework: "vue"
52
+ vue:
53
+ plugins: ["vue-router"]
54
+ workbench:
55
+ frontend:
56
+ i18n:
57
+ # explicitly set enabled languages for the workbench
58
+ locales: ["tl-TL", "en-EU", "de-DE"]
59
+ eslint:
60
+ useRecommended: false
61
+
@@ -0,0 +1,59 @@
1
+ name: "raclette-dev"
2
+ root: ".raclette"
3
+
4
+ services:
5
+ frontend:
6
+ enabled: true
7
+ port: 8081
8
+
9
+ backend:
10
+ enabled: true
11
+ port: 8082
12
+ enableDebug: {{process.env.ENABLE_DEBUG}}
13
+ installPackages: []
14
+
15
+ mongodb:
16
+ name: "raclette-mongodb"
17
+ enabled: true
18
+ port: 27017
19
+ volume: "raclette-mongodb"
20
+ databaseName: "raclette"
21
+
22
+ cache:
23
+ name: "raclette-cache"
24
+ volume: "raclette-cache"
25
+ enabled: true
26
+ port: 6379
27
+
28
+ workbench:
29
+ enabled: true
30
+ debugPort: 9228
31
+ frontendPort: 8083
32
+ backendPort: 8084
33
+ withLogs: false
34
+
35
+ # list your installed plugins
36
+ # make sure they are listed in your package.json
37
+ # Environment-specific configuration
38
+ env:
39
+ development:
40
+ RACLETTE_DEBUG_MODE: true
41
+ production:
42
+ NODE_ENV: "production"
43
+
44
+ # Frontend framework configuration
45
+ frontend:
46
+ meta:
47
+ title: "Dev-Setup"
48
+ i18n:
49
+ locales: ["tl-TL", "en-EU", "de-DE"]
50
+ framework: "vue"
51
+ vue:
52
+ plugins: ["vue-router"]
53
+ workbench:
54
+ frontend:
55
+ i18n:
56
+ # explicitly set enabled languages for the workbench
57
+ locales: ["tl-TL", "en-EU", "de-DE"]
58
+ eslint:
59
+ useRecommended: false
@@ -0,0 +1,5 @@
1
+ declare module "*.vue" {
2
+ import { DefineComponent } from "vue"
3
+ const component: DefineComponent<{}, {}, any>
4
+ export default component
5
+ }
File without changes