@gezelligate/core 0.1.0

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 (119) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +29 -0
  3. package/dist/bridgeManifest.d.ts +67 -0
  4. package/dist/bridgeManifest.d.ts.map +1 -0
  5. package/dist/bridgeManifest.js +35 -0
  6. package/dist/bridgeManifest.js.map +1 -0
  7. package/dist/capabilities.d.ts +23 -0
  8. package/dist/capabilities.d.ts.map +1 -0
  9. package/dist/capabilities.js +15 -0
  10. package/dist/capabilities.js.map +1 -0
  11. package/dist/catalog/bootstrap.d.ts +25 -0
  12. package/dist/catalog/bootstrap.d.ts.map +1 -0
  13. package/dist/catalog/bootstrap.js +56 -0
  14. package/dist/catalog/bootstrap.js.map +1 -0
  15. package/dist/catalog/index.d.ts +4 -0
  16. package/dist/catalog/index.d.ts.map +1 -0
  17. package/dist/catalog/index.js +4 -0
  18. package/dist/catalog/index.js.map +1 -0
  19. package/dist/catalog/projectPin.d.ts +22 -0
  20. package/dist/catalog/projectPin.d.ts.map +1 -0
  21. package/dist/catalog/projectPin.js +39 -0
  22. package/dist/catalog/projectPin.js.map +1 -0
  23. package/dist/catalog/reader.d.ts +44 -0
  24. package/dist/catalog/reader.d.ts.map +1 -0
  25. package/dist/catalog/reader.js +7 -0
  26. package/dist/catalog/reader.js.map +1 -0
  27. package/dist/catalog/tarball.d.ts +48 -0
  28. package/dist/catalog/tarball.d.ts.map +1 -0
  29. package/dist/catalog/tarball.js +114 -0
  30. package/dist/catalog/tarball.js.map +1 -0
  31. package/dist/cluster.d.ts +4 -0
  32. package/dist/cluster.d.ts.map +1 -0
  33. package/dist/cluster.js +46 -0
  34. package/dist/cluster.js.map +1 -0
  35. package/dist/dedicatedPeer.d.ts +43 -0
  36. package/dist/dedicatedPeer.d.ts.map +1 -0
  37. package/dist/dedicatedPeer.js +38 -0
  38. package/dist/dedicatedPeer.js.map +1 -0
  39. package/dist/dependencies.d.ts +6 -0
  40. package/dist/dependencies.d.ts.map +1 -0
  41. package/dist/dependencies.js +124 -0
  42. package/dist/dependencies.js.map +1 -0
  43. package/dist/index.d.ts +15 -0
  44. package/dist/index.d.ts.map +1 -0
  45. package/dist/index.js +17 -0
  46. package/dist/index.js.map +1 -0
  47. package/dist/ingress.d.ts +4 -0
  48. package/dist/ingress.d.ts.map +1 -0
  49. package/dist/ingress.js +17 -0
  50. package/dist/ingress.js.map +1 -0
  51. package/dist/keycloak.d.ts +61 -0
  52. package/dist/keycloak.d.ts.map +1 -0
  53. package/dist/keycloak.js +161 -0
  54. package/dist/keycloak.js.map +1 -0
  55. package/dist/numericId.d.ts +2 -0
  56. package/dist/numericId.d.ts.map +1 -0
  57. package/dist/numericId.js +22 -0
  58. package/dist/numericId.js.map +1 -0
  59. package/dist/providers/lifecycle.d.ts +81 -0
  60. package/dist/providers/lifecycle.d.ts.map +1 -0
  61. package/dist/providers/lifecycle.js +22 -0
  62. package/dist/providers/lifecycle.js.map +1 -0
  63. package/dist/providers.d.ts +4 -0
  64. package/dist/providers.d.ts.map +1 -0
  65. package/dist/providers.js +45 -0
  66. package/dist/providers.js.map +1 -0
  67. package/dist/render.d.ts +22 -0
  68. package/dist/render.d.ts.map +1 -0
  69. package/dist/render.js +354 -0
  70. package/dist/render.js.map +1 -0
  71. package/dist/repository.d.ts +4 -0
  72. package/dist/repository.d.ts.map +1 -0
  73. package/dist/repository.js +31 -0
  74. package/dist/repository.js.map +1 -0
  75. package/dist/schema/clusterYaml.d.ts +39 -0
  76. package/dist/schema/clusterYaml.d.ts.map +1 -0
  77. package/dist/schema/clusterYaml.js +24 -0
  78. package/dist/schema/clusterYaml.js.map +1 -0
  79. package/dist/schema/configYaml.d.ts +90 -0
  80. package/dist/schema/configYaml.d.ts.map +1 -0
  81. package/dist/schema/configYaml.js +32 -0
  82. package/dist/schema/configYaml.js.map +1 -0
  83. package/dist/schema/providerYaml.d.ts +312 -0
  84. package/dist/schema/providerYaml.d.ts.map +1 -0
  85. package/dist/schema/providerYaml.js +54 -0
  86. package/dist/schema/providerYaml.js.map +1 -0
  87. package/dist/schema/serviceYaml.d.ts +2407 -0
  88. package/dist/schema/serviceYaml.d.ts.map +1 -0
  89. package/dist/schema/serviceYaml.js +200 -0
  90. package/dist/schema/serviceYaml.js.map +1 -0
  91. package/dist/secrets.d.ts +4 -0
  92. package/dist/secrets.d.ts.map +1 -0
  93. package/dist/secrets.js +31 -0
  94. package/dist/secrets.js.map +1 -0
  95. package/dist/secretsSummary.d.ts +2 -0
  96. package/dist/secretsSummary.d.ts.map +1 -0
  97. package/dist/secretsSummary.js +50 -0
  98. package/dist/secretsSummary.js.map +1 -0
  99. package/dist/services.d.ts +7 -0
  100. package/dist/services.d.ts.map +1 -0
  101. package/dist/services.js +66 -0
  102. package/dist/services.js.map +1 -0
  103. package/dist/sharedDb.d.ts +3 -0
  104. package/dist/sharedDb.d.ts.map +1 -0
  105. package/dist/sharedDb.js +104 -0
  106. package/dist/sharedDb.js.map +1 -0
  107. package/dist/target.d.ts +35 -0
  108. package/dist/target.d.ts.map +1 -0
  109. package/dist/target.js +7 -0
  110. package/dist/target.js.map +1 -0
  111. package/dist/templates/dedicated-postgres.docker.yaml.tmpl +12 -0
  112. package/dist/templates/dedicated-postgres.k8s.yaml.tmpl +57 -0
  113. package/dist/templates/dedicated-redis.docker.yaml.tmpl +9 -0
  114. package/dist/templates/dedicated-redis.k8s.yaml.tmpl +46 -0
  115. package/dist/templating.d.ts +2 -0
  116. package/dist/templating.d.ts.map +1 -0
  117. package/dist/templating.js +15 -0
  118. package/dist/templating.js.map +1 -0
  119. package/package.json +65 -0
@@ -0,0 +1,57 @@
1
+ apiVersion: v1
2
+ kind: Service
3
+ metadata:
4
+ name: {{name}}
5
+ namespace: gezelligate
6
+ spec:
7
+ clusterIP: None
8
+ selector:
9
+ app: {{name}}
10
+ ports:
11
+ - port: {{port}}
12
+ targetPort: {{port}}
13
+ ---
14
+ apiVersion: apps/v1
15
+ kind: StatefulSet
16
+ metadata:
17
+ name: {{name}}
18
+ namespace: gezelligate
19
+ spec:
20
+ serviceName: {{name}}
21
+ replicas: 1
22
+ selector:
23
+ matchLabels:
24
+ app: {{name}}
25
+ template:
26
+ metadata:
27
+ labels:
28
+ app: {{name}}
29
+ spec:
30
+ containers:
31
+ - name: postgres
32
+ image: postgres:16-alpine
33
+ env:
34
+ - name: POSTGRES_DB
35
+ value: {{dbName}}
36
+ - name: POSTGRES_USER
37
+ value: {{dbUser}}
38
+ - name: POSTGRES_PASSWORD
39
+ valueFrom:
40
+ secretKeyRef:
41
+ name: {{consumerName}}-env
42
+ key: DB_PASSWORD
43
+ - name: PGDATA
44
+ value: /var/lib/postgresql/data/pgdata
45
+ ports:
46
+ - containerPort: {{port}}
47
+ volumeMounts:
48
+ - name: data
49
+ mountPath: /var/lib/postgresql/data
50
+ volumeClaimTemplates:
51
+ - metadata:
52
+ name: data
53
+ spec:
54
+ accessModes: [ReadWriteOnce]
55
+ resources:
56
+ requests:
57
+ storage: {{storage}}
@@ -0,0 +1,9 @@
1
+ {{name}}:
2
+ image: redis:7-alpine
3
+ restart: unless-stopped
4
+ command: ["redis-server", "--appendonly", "yes"]
5
+ volumes:
6
+ - {{name}}-data:/data
7
+
8
+ volumes:
9
+ {{name}}-data:
@@ -0,0 +1,46 @@
1
+ apiVersion: v1
2
+ kind: Service
3
+ metadata:
4
+ name: {{name}}
5
+ namespace: gezelligate
6
+ spec:
7
+ clusterIP: None
8
+ selector:
9
+ app: {{name}}
10
+ ports:
11
+ - port: {{port}}
12
+ targetPort: {{port}}
13
+ ---
14
+ apiVersion: apps/v1
15
+ kind: StatefulSet
16
+ metadata:
17
+ name: {{name}}
18
+ namespace: gezelligate
19
+ spec:
20
+ serviceName: {{name}}
21
+ replicas: 1
22
+ selector:
23
+ matchLabels:
24
+ app: {{name}}
25
+ template:
26
+ metadata:
27
+ labels:
28
+ app: {{name}}
29
+ spec:
30
+ containers:
31
+ - name: redis
32
+ image: redis:7-alpine
33
+ args: ["--appendonly", "yes"]
34
+ ports:
35
+ - containerPort: {{port}}
36
+ volumeMounts:
37
+ - name: data
38
+ mountPath: /data
39
+ volumeClaimTemplates:
40
+ - metadata:
41
+ name: data
42
+ spec:
43
+ accessModes: [ReadWriteOnce]
44
+ resources:
45
+ requests:
46
+ storage: {{storage}}
@@ -0,0 +1,2 @@
1
+ export declare function renderTemplate(template: string, context: unknown): string;
2
+ //# sourceMappingURL=templating.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"templating.d.ts","sourceRoot":"","sources":["../src/templating.ts"],"names":[],"mappings":"AAYA,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,MAAM,CAGzE"}
@@ -0,0 +1,15 @@
1
+ import Handlebars from "handlebars";
2
+ const env = Handlebars.create();
3
+ // Disable HTML escaping — we render config files, not HTML.
4
+ env.registerHelper("escape", (v) => v);
5
+ env.registerHelper("eq", (a, b) => a === b);
6
+ // Render a shell-style env variable reference, e.g. envref "FOO" → "${FOO}".
7
+ // Used by templates that emit docker-compose fragments so the literal
8
+ // "${VAR}" survives Handlebars rendering and reaches docker-compose for
9
+ // interpolation against the .env file at startup.
10
+ env.registerHelper("envref", (v) => `\${${v}}`);
11
+ export function renderTemplate(template, context) {
12
+ const compiled = env.compile(template, { strict: true, noEscape: true });
13
+ return compiled(context);
14
+ }
15
+ //# sourceMappingURL=templating.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"templating.js","sourceRoot":"","sources":["../src/templating.ts"],"names":[],"mappings":"AAAA,OAAO,UAAU,MAAM,YAAY,CAAC;AAEpC,MAAM,GAAG,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC;AAChC,4DAA4D;AAC5D,GAAG,CAAC,cAAc,CAAC,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;AACvC,GAAG,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC,CAAU,EAAE,CAAU,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;AAC9D,6EAA6E;AAC7E,sEAAsE;AACtE,wEAAwE;AACxE,kDAAkD;AAClD,GAAG,CAAC,cAAc,CAAC,QAAQ,EAAE,CAAC,CAAU,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;AAEzD,MAAM,UAAU,cAAc,CAAC,QAAgB,EAAE,OAAgB;IAC/D,MAAM,QAAQ,GAAG,GAAG,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;IACzE,OAAO,QAAQ,CAAC,OAAO,CAAC,CAAC;AAC3B,CAAC"}
package/package.json ADDED
@@ -0,0 +1,65 @@
1
+ {
2
+ "name": "@gezelligate/core",
3
+ "version": "0.1.0",
4
+ "type": "module",
5
+ "description": "Core engine for Gezelligate: schema, loader, templating, validation, and target abstraction. Consumed by @gezelligate/{cli,studio,k8s,docker,dev}.",
6
+ "license": "MIT",
7
+ "homepage": "https://github.com/gezelligate/gezelligate#readme",
8
+ "repository": {
9
+ "type": "git",
10
+ "url": "git+https://github.com/gezelligate/gezelligate.git",
11
+ "directory": "packages/core"
12
+ },
13
+ "bugs": "https://github.com/gezelligate/gezelligate/issues",
14
+ "keywords": [
15
+ "gezelligate",
16
+ "self-hosting",
17
+ "office-stack",
18
+ "renderer",
19
+ "kubernetes",
20
+ "docker-compose"
21
+ ],
22
+ "main": "./dist/index.js",
23
+ "types": "./dist/index.d.ts",
24
+ "exports": {
25
+ ".": {
26
+ "types": "./dist/index.d.ts",
27
+ "default": "./dist/index.js"
28
+ },
29
+ "./schema/*": {
30
+ "types": "./dist/schema/*.d.ts",
31
+ "default": "./dist/schema/*.js"
32
+ },
33
+ "./providers/*": {
34
+ "types": "./dist/providers/*.d.ts",
35
+ "default": "./dist/providers/*.js"
36
+ },
37
+ "./targets/*": {
38
+ "types": "./dist/targets/*.d.ts",
39
+ "default": "./dist/targets/*.js"
40
+ },
41
+ "./*": {
42
+ "types": "./dist/*.d.ts",
43
+ "default": "./dist/*.js"
44
+ }
45
+ },
46
+ "files": [
47
+ "dist",
48
+ "README.md"
49
+ ],
50
+ "dependencies": {
51
+ "handlebars": "^4.7.8",
52
+ "js-yaml": "^4.1.0",
53
+ "zod": "^3.23.8"
54
+ },
55
+ "devDependencies": {
56
+ "@types/js-yaml": "^4.0.9",
57
+ "@types/node": "^22.0.0",
58
+ "typescript": "^5.6.0"
59
+ },
60
+ "scripts": {
61
+ "build": "tsc -p tsconfig.build.json && cp -R src/templates dist/templates",
62
+ "clean": "rm -rf dist",
63
+ "typecheck": "tsc --noEmit -p tsconfig.json"
64
+ }
65
+ }