@stardeck-customer-apps/data-store-sdk 0.5.0 → 0.6.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.
@@ -2,6 +2,11 @@ import {
2
2
  AuthenticationError,
3
3
  DataStoreError
4
4
  } from "../chunk-7YN3WP4H.mjs";
5
+ import {
6
+ legacyDataStoreEnvName,
7
+ listDataStores,
8
+ resolveDataStore
9
+ } from "../chunk-FEKROS4B.mjs";
5
10
 
6
11
  // src/server/hmac.ts
7
12
  import crypto from "crypto";
@@ -20,66 +25,6 @@ function signDeploymentRequest(deploymentSecret, payload) {
20
25
  return `${payloadB64}.${signature}`;
21
26
  }
22
27
 
23
- // src/server/manifest.ts
24
- var STARDECK_DATA_STORES_ENV = "STARDECK_DATA_STORES";
25
- function readEnv(key) {
26
- if (typeof process !== "undefined" && process.env?.[key]) {
27
- return process.env[key];
28
- }
29
- return void 0;
30
- }
31
- function dataStoreSlug(name) {
32
- const slug = name.toLowerCase().replace(/[^a-z0-9]+/g, "_").replace(/^_+|_+$/g, "");
33
- return slug || "store";
34
- }
35
- function legacyDataStoreEnvName(name) {
36
- return name.toUpperCase().replace(/[^A-Z0-9]/g, "_");
37
- }
38
- function readDataStoreManifest() {
39
- const raw = readEnv(STARDECK_DATA_STORES_ENV);
40
- if (!raw) return [];
41
- try {
42
- const parsed = JSON.parse(raw);
43
- if (!Array.isArray(parsed)) return [];
44
- return parsed.filter((e) => {
45
- if (typeof e !== "object" || e === null) return false;
46
- const entry = e;
47
- if (typeof entry.id !== "string" || typeof entry.name !== "string" || typeof entry.slug !== "string") {
48
- return false;
49
- }
50
- return entry.storeType === "storage" || typeof entry.url === "string";
51
- });
52
- } catch {
53
- return [];
54
- }
55
- }
56
- function resolveDataStore(ref) {
57
- return resolveManifestEntry(readDataStoreManifest(), ref);
58
- }
59
- function resolveManifestEntry(entries, ref) {
60
- if (ref.storeId) {
61
- const byId = entries.find((e) => e.id === ref.storeId);
62
- if (byId) return byId;
63
- }
64
- if (ref.storeName) {
65
- const target = ref.storeName;
66
- const byBindingKey = entries.find((e) => e.bindingKey === target);
67
- if (byBindingKey) return byBindingKey;
68
- const exact = entries.find((e) => e.slug === target || e.id === target || e.name === target);
69
- if (exact) return exact;
70
- const norm = dataStoreSlug(target);
71
- const byBindingKeyNorm = entries.find((e) => e.bindingKey === norm);
72
- if (byBindingKeyNorm) return byBindingKeyNorm;
73
- return entries.find(
74
- (e) => e.slug === norm || typeof e.name === "string" && dataStoreSlug(e.name) === norm
75
- );
76
- }
77
- return void 0;
78
- }
79
- function listDataStores() {
80
- return readDataStoreManifest();
81
- }
82
-
83
28
  // src/server/client.ts
84
29
  var DataStoreClient = class {
85
30
  baseUrl;
@@ -256,7 +201,7 @@ var DataStoreClient = class {
256
201
 
257
202
  // src/server/kysely.ts
258
203
  import "kysely";
259
- function readEnv2(key) {
204
+ function readEnv(key) {
260
205
  if (typeof process !== "undefined" && process.env?.[key]) {
261
206
  return process.env[key];
262
207
  }
@@ -270,10 +215,10 @@ function resolveConnectionString(options) {
270
215
  })?.url;
271
216
  if (fromManifest) return fromManifest;
272
217
  if (options?.storeName) {
273
- const legacy = readEnv2(`DATA_STORE_${legacyDataStoreEnvName(options.storeName)}_URL`);
218
+ const legacy = readEnv(`DATA_STORE_${legacyDataStoreEnvName(options.storeName)}_URL`);
274
219
  if (legacy) return legacy;
275
220
  }
276
- return readEnv2("DATA_STORE_URL");
221
+ return readEnv("DATA_STORE_URL");
277
222
  }
278
223
  async function createDataStore(options) {
279
224
  const connectionString = resolveConnectionString(options);
package/package.json CHANGED
@@ -1,6 +1,7 @@
1
1
  {
2
2
  "name": "@stardeck-customer-apps/data-store-sdk",
3
- "version": "0.5.0",
3
+ "version": "0.6.0",
4
+ "license": "MIT",
4
5
  "description": "SDK for accessing Stardeck data stores from deployed projects",
5
6
  "main": "dist/index.js",
6
7
  "module": "dist/index.mjs",
@@ -10,7 +11,7 @@
10
11
  "access": "public"
11
12
  },
12
13
  "bin": {
13
- "stardeck-data-store": "./dist/cli/generate-types.js"
14
+ "stardeck-data-store": "./dist/cli/bin.js"
14
15
  },
15
16
  "files": [
16
17
  "dist",
@@ -31,8 +32,8 @@
31
32
  }
32
33
  },
33
34
  "scripts": {
34
- "build": "tsup src/index.ts src/server/index.ts src/cli/generate-types.ts --format cjs,esm --dts",
35
- "dev": "tsup src/index.ts src/server/index.ts src/cli/generate-types.ts --format cjs,esm --dts --watch",
35
+ "build": "tsup src/index.ts src/server/index.ts src/cli/generate-types.ts src/cli/bin.ts --format cjs,esm --dts",
36
+ "dev": "tsup src/index.ts src/server/index.ts src/cli/generate-types.ts src/cli/bin.ts --format cjs,esm --dts --watch",
36
37
  "format": "prettier --write . && eslint . --fix",
37
38
  "typecheck": "tsc --noEmit",
38
39
  "lint": "eslint src/",
@@ -58,6 +59,7 @@
58
59
  "@neondatabase/serverless": "^1.1.0",
59
60
  "@stardeck-customer-apps/tsconfig": "*",
60
61
  "@types/node": "^24.10.1",
62
+ "globals": "^16.3.0",
61
63
  "kysely-neon": "^2.0.0",
62
64
  "tsup": "^8.0.0",
63
65
  "typescript": "^5.0.0",