@jskit-ai/database-runtime-postgres 0.1.145 → 0.1.147

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": "@jskit-ai/database-runtime-postgres",
3
- "version": "0.1.145",
3
+ "version": "0.1.147",
4
4
  "type": "module",
5
5
  "scripts": {
6
6
  "test": "node --test"
@@ -12,6 +12,192 @@
12
12
  "./shared/dialect": "./src/shared/dialect.js"
13
13
  },
14
14
  "dependencies": {
15
- "@jskit-ai/database-runtime": "0.1.147"
15
+ "@jskit-ai/database-runtime": "0.1.150"
16
+ },
17
+ "jskit": {
18
+ "kind": "runtime",
19
+ "options": {
20
+ "db-host": {
21
+ "required": false,
22
+ "values": [],
23
+ "defaultValue": "localhost",
24
+ "promptLabel": "Database host",
25
+ "promptHint": "Postgres host (for example 127.0.0.1)"
26
+ },
27
+ "db-port": {
28
+ "required": false,
29
+ "values": [],
30
+ "defaultValue": "5432",
31
+ "promptLabel": "Database port",
32
+ "promptHint": "Postgres port (usually 5432)"
33
+ },
34
+ "db-name": {
35
+ "required": true,
36
+ "values": [],
37
+ "promptLabel": "Database name",
38
+ "promptHint": "Database name to connect to"
39
+ },
40
+ "db-user": {
41
+ "required": true,
42
+ "values": [],
43
+ "promptLabel": "Database user",
44
+ "promptHint": "Database username"
45
+ },
46
+ "db-password": {
47
+ "required": true,
48
+ "values": [],
49
+ "inputType": "password",
50
+ "promptLabel": "Database password",
51
+ "promptHint": "Database password"
52
+ }
53
+ },
54
+ "capabilities": {
55
+ "provides": [
56
+ "runtime.database.driver",
57
+ "runtime.database.driver.postgres"
58
+ ],
59
+ "requires": [
60
+ "runtime.database"
61
+ ]
62
+ },
63
+ "runtime": {
64
+ "server": {
65
+ "providerEntrypoint": "src/server/providers/DatabaseRuntimePostgresServiceProvider.js",
66
+ "providers": [
67
+ {
68
+ "entrypoint": "src/server/providers/DatabaseRuntimePostgresServiceProvider.js",
69
+ "export": "DatabaseRuntimePostgresServiceProvider"
70
+ }
71
+ ]
72
+ },
73
+ "client": {
74
+ "providers": []
75
+ }
76
+ },
77
+ "metadata": {
78
+ "apiSummary": {
79
+ "surfaces": [
80
+ {
81
+ "subpath": "./server",
82
+ "summary": "Exports Postgres database runtime provider."
83
+ },
84
+ {
85
+ "subpath": "./shared",
86
+ "summary": "Exports Postgres dialect metadata helpers."
87
+ },
88
+ {
89
+ "subpath": "./client",
90
+ "summary": "Exports no runtime API today (reserved client entrypoint)."
91
+ }
92
+ ],
93
+ "containerTokens": {
94
+ "server": [
95
+ "runtime.database.driver.postgres"
96
+ ],
97
+ "client": []
98
+ }
99
+ }
100
+ },
101
+ "ci": {
102
+ "environment": {
103
+ "DB_CLIENT": "pg",
104
+ "DB_HOST": "127.0.0.1",
105
+ "DB_PORT": "54320",
106
+ "DB_NAME": "jskit_ci",
107
+ "DB_USER": "jskit_ci",
108
+ "DB_PASSWORD": "jskit_ci_only_password"
109
+ },
110
+ "services": [
111
+ {
112
+ "id": "postgres",
113
+ "image": "postgres:16",
114
+ "environment": {
115
+ "POSTGRES_DB": "jskit_ci",
116
+ "POSTGRES_USER": "jskit_ci",
117
+ "POSTGRES_PASSWORD": "jskit_ci_only_password"
118
+ },
119
+ "ports": [
120
+ "54320:5432"
121
+ ],
122
+ "healthCheck": {
123
+ "command": "pg_isready --username=jskit_ci --dbname=jskit_ci",
124
+ "interval": "10s",
125
+ "timeout": "5s",
126
+ "retries": 10
127
+ }
128
+ }
129
+ ],
130
+ "steps": []
131
+ },
132
+ "mutations": {
133
+ "dependencies": {
134
+ "runtime": {
135
+ "@jskit-ai/database-runtime": "0.1.150",
136
+ "pg": "^8.13.1"
137
+ },
138
+ "dev": {}
139
+ },
140
+ "packageJson": {
141
+ "scripts": {}
142
+ },
143
+ "procfile": {},
144
+ "files": [],
145
+ "text": [
146
+ {
147
+ "file": ".env",
148
+ "op": "upsert-env",
149
+ "key": "DB_CLIENT",
150
+ "value": "pg",
151
+ "reason": "Configure database client driver for runtime wiring.",
152
+ "category": "runtime-config",
153
+ "id": "database-client-postgres"
154
+ },
155
+ {
156
+ "file": ".env",
157
+ "op": "upsert-env",
158
+ "key": "DB_HOST",
159
+ "value": "${option:db-host}",
160
+ "reason": "Configure database host.",
161
+ "category": "runtime-config",
162
+ "id": "database-host"
163
+ },
164
+ {
165
+ "file": ".env",
166
+ "op": "upsert-env",
167
+ "key": "DB_PORT",
168
+ "value": "${option:db-port}",
169
+ "reason": "Configure database port.",
170
+ "category": "runtime-config",
171
+ "id": "database-port"
172
+ },
173
+ {
174
+ "file": ".env",
175
+ "op": "upsert-env",
176
+ "key": "DB_NAME",
177
+ "value": "${option:db-name}",
178
+ "reason": "Configure database name.",
179
+ "category": "runtime-config",
180
+ "id": "database-name"
181
+ },
182
+ {
183
+ "file": ".env",
184
+ "op": "upsert-env",
185
+ "key": "DB_USER",
186
+ "value": "${option:db-user}",
187
+ "reason": "Configure database user.",
188
+ "category": "runtime-config",
189
+ "id": "database-user"
190
+ },
191
+ {
192
+ "file": ".env",
193
+ "op": "upsert-env",
194
+ "key": "DB_PASSWORD",
195
+ "value": "${option:db-password}",
196
+ "reason": "Configure database password.",
197
+ "category": "runtime-config",
198
+ "id": "database-password"
199
+ }
200
+ ]
201
+ }
16
202
  }
17
203
  }
@@ -0,0 +1,24 @@
1
+ import assert from "node:assert/strict";
2
+ import test from "node:test";
3
+ import packageJson from "../package.json" with { type: "json" };
4
+
5
+ const packageMetadata = packageJson.jskit;
6
+ import { DIALECT_ID } from "../src/shared/dialect.js";
7
+
8
+ test("database-runtime-postgres contributes canonical synthetic Postgres CI requirements", () => {
9
+ assert.equal(packageMetadata.ci.environment.DB_CLIENT, DIALECT_ID);
10
+ assert.equal(packageMetadata.ci.environment.DB_HOST, "127.0.0.1");
11
+ assert.equal(packageMetadata.ci.environment.DB_PORT, "54320");
12
+ assert.match(packageMetadata.ci.environment.DB_PASSWORD, /ci_only/u);
13
+
14
+ const service = packageMetadata.ci.services.find((entry) => entry.id === "postgres");
15
+ assert.equal(service.image, "postgres:16");
16
+ assert.equal(service.environment.POSTGRES_DB, packageMetadata.ci.environment.DB_NAME);
17
+ assert.equal(service.environment.POSTGRES_USER, packageMetadata.ci.environment.DB_USER);
18
+ assert.equal(service.environment.POSTGRES_PASSWORD, packageMetadata.ci.environment.DB_PASSWORD);
19
+ assert.deepEqual(service.ports, ["54320:5432"]);
20
+ assert.match(service.healthCheck.command, /pg_isready/u);
21
+
22
+ const clientMutation = packageMetadata.mutations.text.find((entry) => entry.key === "DB_CLIENT");
23
+ assert.equal(clientMutation.value, DIALECT_ID);
24
+ });
@@ -1,201 +0,0 @@
1
- import { DIALECT_ID } from "./src/shared/dialect.js";
2
-
3
- const CI_DATABASE = Object.freeze({
4
- host: "127.0.0.1",
5
- hostPort: "54320",
6
- containerPort: "5432",
7
- name: "jskit_ci",
8
- user: "jskit_ci",
9
- password: "jskit_ci_only_password"
10
- });
11
-
12
- export default Object.freeze({
13
- packageVersion: 1,
14
- packageId: "@jskit-ai/database-runtime-postgres",
15
- version: "0.1.145",
16
- kind: "runtime",
17
- options: {
18
- "db-host": {
19
- required: false,
20
- values: [],
21
- defaultValue: "localhost",
22
- promptLabel: "Database host",
23
- promptHint: "Postgres host (for example 127.0.0.1)"
24
- },
25
- "db-port": {
26
- required: false,
27
- values: [],
28
- defaultValue: "5432",
29
- promptLabel: "Database port",
30
- promptHint: "Postgres port (usually 5432)"
31
- },
32
- "db-name": {
33
- required: true,
34
- values: [],
35
- promptLabel: "Database name",
36
- promptHint: "Database name to connect to"
37
- },
38
- "db-user": {
39
- required: true,
40
- values: [],
41
- promptLabel: "Database user",
42
- promptHint: "Database username"
43
- },
44
- "db-password": {
45
- required: true,
46
- values: [],
47
- inputType: "password",
48
- promptLabel: "Database password",
49
- promptHint: "Database password"
50
- }
51
- },
52
- dependsOn: [
53
- "@jskit-ai/database-runtime"
54
- ],
55
- capabilities: {
56
- provides: [
57
- "runtime.database.driver",
58
- "runtime.database.driver.postgres"
59
- ],
60
- requires: [
61
- "runtime.database"
62
- ]
63
- },
64
- runtime: {
65
- server: {
66
- providerEntrypoint: "src/server/providers/DatabaseRuntimePostgresServiceProvider.js",
67
- providers: [
68
- {
69
- entrypoint: "src/server/providers/DatabaseRuntimePostgresServiceProvider.js",
70
- export: "DatabaseRuntimePostgresServiceProvider"
71
- }
72
- ]
73
- },
74
- client: {
75
- providers: []
76
- }
77
- },
78
- metadata: {
79
- apiSummary: {
80
- surfaces: [
81
- {
82
- subpath: "./server",
83
- summary: "Exports Postgres database runtime provider."
84
- },
85
- {
86
- subpath: "./shared",
87
- summary: "Exports Postgres dialect metadata helpers."
88
- },
89
- {
90
- subpath: "./client",
91
- summary: "Exports no runtime API today (reserved client entrypoint)."
92
- }
93
- ],
94
- containerTokens: {
95
- server: [
96
- "runtime.database.driver.postgres"
97
- ],
98
- client: []
99
- }
100
- }
101
- },
102
- ci: {
103
- environment: {
104
- DB_CLIENT: DIALECT_ID,
105
- DB_HOST: CI_DATABASE.host,
106
- DB_PORT: CI_DATABASE.hostPort,
107
- DB_NAME: CI_DATABASE.name,
108
- DB_USER: CI_DATABASE.user,
109
- DB_PASSWORD: CI_DATABASE.password
110
- },
111
- services: [
112
- {
113
- id: "postgres",
114
- image: "postgres:16",
115
- environment: {
116
- POSTGRES_DB: CI_DATABASE.name,
117
- POSTGRES_USER: CI_DATABASE.user,
118
- POSTGRES_PASSWORD: CI_DATABASE.password
119
- },
120
- ports: [`${CI_DATABASE.hostPort}:${CI_DATABASE.containerPort}`],
121
- healthCheck: {
122
- command: `pg_isready --username=${CI_DATABASE.user} --dbname=${CI_DATABASE.name}`,
123
- interval: "10s",
124
- timeout: "5s",
125
- retries: 10
126
- }
127
- }
128
- ],
129
- steps: []
130
- },
131
- mutations: {
132
- dependencies: {
133
- runtime: {
134
- "@jskit-ai/database-runtime": "0.1.147",
135
- "pg": "^8.13.1"
136
- },
137
- dev: {}
138
- },
139
- packageJson: {
140
- scripts: {}
141
- },
142
- procfile: {},
143
- files: [],
144
- text: [
145
- {
146
- file: ".env",
147
- op: "upsert-env",
148
- key: "DB_CLIENT",
149
- value: DIALECT_ID,
150
- reason: "Configure database client driver for runtime wiring.",
151
- category: "runtime-config",
152
- id: "database-client-postgres"
153
- },
154
- {
155
- file: ".env",
156
- op: "upsert-env",
157
- key: "DB_HOST",
158
- value: "${option:db-host}",
159
- reason: "Configure database host.",
160
- category: "runtime-config",
161
- id: "database-host"
162
- },
163
- {
164
- file: ".env",
165
- op: "upsert-env",
166
- key: "DB_PORT",
167
- value: "${option:db-port}",
168
- reason: "Configure database port.",
169
- category: "runtime-config",
170
- id: "database-port"
171
- },
172
- {
173
- file: ".env",
174
- op: "upsert-env",
175
- key: "DB_NAME",
176
- value: "${option:db-name}",
177
- reason: "Configure database name.",
178
- category: "runtime-config",
179
- id: "database-name"
180
- },
181
- {
182
- file: ".env",
183
- op: "upsert-env",
184
- key: "DB_USER",
185
- value: "${option:db-user}",
186
- reason: "Configure database user.",
187
- category: "runtime-config",
188
- id: "database-user"
189
- },
190
- {
191
- file: ".env",
192
- op: "upsert-env",
193
- key: "DB_PASSWORD",
194
- value: "${option:db-password}",
195
- reason: "Configure database password.",
196
- category: "runtime-config",
197
- id: "database-password"
198
- }
199
- ]
200
- }
201
- });
@@ -1,22 +0,0 @@
1
- import assert from "node:assert/strict";
2
- import test from "node:test";
3
- import descriptor from "../package.descriptor.mjs";
4
- import { DIALECT_ID } from "../src/shared/dialect.js";
5
-
6
- test("database-runtime-postgres contributes canonical synthetic Postgres CI requirements", () => {
7
- assert.equal(descriptor.ci.environment.DB_CLIENT, DIALECT_ID);
8
- assert.equal(descriptor.ci.environment.DB_HOST, "127.0.0.1");
9
- assert.equal(descriptor.ci.environment.DB_PORT, "54320");
10
- assert.match(descriptor.ci.environment.DB_PASSWORD, /ci_only/u);
11
-
12
- const service = descriptor.ci.services.find((entry) => entry.id === "postgres");
13
- assert.equal(service.image, "postgres:16");
14
- assert.equal(service.environment.POSTGRES_DB, descriptor.ci.environment.DB_NAME);
15
- assert.equal(service.environment.POSTGRES_USER, descriptor.ci.environment.DB_USER);
16
- assert.equal(service.environment.POSTGRES_PASSWORD, descriptor.ci.environment.DB_PASSWORD);
17
- assert.deepEqual(service.ports, ["54320:5432"]);
18
- assert.match(service.healthCheck.command, /pg_isready/u);
19
-
20
- const clientMutation = descriptor.mutations.text.find((entry) => entry.key === "DB_CLIENT");
21
- assert.equal(clientMutation.value, DIALECT_ID);
22
- });