@raclettejs/core 0.1.26 → 0.1.28

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.26",
3
+ "version": "0.1.28",
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.26",
82
+ "@raclettejs/types": "^0.1.28",
82
83
  "@types/fs-extra": "11.0.4",
83
84
  "@types/js-yaml": "4.0.9",
84
85
  "@types/node": "25.5.0",
@@ -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