@renv/node 0.0.6 → 0.0.7

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/README.md ADDED
@@ -0,0 +1,14 @@
1
+ # Renv Client
2
+ This is [Renv](https://renv-web.vercel.app)'s client project.
3
+
4
+ ## How to use
5
+ ```bash
6
+ npm install @renv/node
7
+ ```
8
+ ```typescript
9
+ import { Renv } from "@renv/node"
10
+ const client = new Renv("your_renv_token_here")
11
+ await client.load("branch_name")
12
+
13
+ client.get("API_TOKEN") // -> AAABBBCCC...
14
+ ```
package/dist/base.d.ts CHANGED
@@ -1,14 +1,18 @@
1
1
  import { RenvClient } from './types';
2
2
  declare class Renv implements RenvClient {
3
3
  private readonly token;
4
+ private readonly logEnabled;
4
5
  private projectId?;
5
6
  private branch;
6
7
  private scopes;
7
8
  private data;
8
- constructor(token: string);
9
+ constructor(token: string, logEnabled?: boolean);
9
10
  private config;
10
11
  private branches;
12
+ private variables;
11
13
  load(branch?: string): Promise<void>;
14
+ get(key: string): string | undefined;
15
+ getAll(): Record<string, string>;
12
16
  }
13
17
  export { Renv };
14
18
  //# sourceMappingURL=base.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../src/base.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAA0D,MAAM,SAAS,CAAC;AAI7F,cAAM,IAAK,YAAW,UAAU;IAC5B,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAS;IAC/B,OAAO,CAAC,SAAS,CAAC,CAAS;IAC3B,OAAO,CAAC,MAAM,CAAkB;IAChC,OAAO,CAAC,MAAM,CAAgB;IAC9B,OAAO,CAAC,IAAI,CAA8B;gBAE9B,KAAK,EAAE,MAAM;YAIX,MAAM;YAaN,QAAQ;IAgBhB,IAAI,CAAC,MAAM,GAAE,MAAe,GAAG,OAAO,CAAC,IAAI,CAAC;CASrD;AAED,OAAO,EAAE,IAAI,EAAE,CAAC"}
1
+ {"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../src/base.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAgF,MAAM,SAAS,CAAC;AAInH,cAAM,IAAK,YAAW,UAAU;IAC5B,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAS;IAC/B,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAiB;IAC5C,OAAO,CAAC,SAAS,CAAC,CAAS;IAC3B,OAAO,CAAC,MAAM,CAAkB;IAChC,OAAO,CAAC,MAAM,CAAgB;IAC9B,OAAO,CAAC,IAAI,CAA8B;gBAE9B,KAAK,EAAE,MAAM,EAAE,UAAU,GAAE,OAAe;YAKxC,MAAM;YAaN,QAAQ;YAgBR,SAAS;IAgBjB,IAAI,CAAC,MAAM,GAAE,MAAe,GAAG,OAAO,CAAC,IAAI,CAAC;IAyBlD,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAIpC,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;CAGnC;AAED,OAAO,EAAE,IAAI,EAAE,CAAC"}
package/dist/base.js CHANGED
@@ -3,11 +3,13 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.Renv = void 0;
4
4
  const BASE_ENDPOINT = 'https://renv-web.vercel.app/api';
5
5
  class Renv {
6
- constructor(token) {
6
+ constructor(token, logEnabled = false) {
7
+ this.logEnabled = true;
7
8
  this.branch = 'main';
8
9
  this.scopes = [];
9
10
  this.data = {};
10
11
  this.token = token;
12
+ this.logEnabled = logEnabled;
11
13
  }
12
14
  async config() {
13
15
  const config = await fetch(`${BASE_ENDPOINT}/keys`, {
@@ -36,13 +38,49 @@ class Renv {
36
38
  }
37
39
  return branches.json();
38
40
  }
41
+ async variables() {
42
+ if (!this.projectId) {
43
+ throw new Error('Project ID is not set. Please load the configuration first.');
44
+ }
45
+ const varsResponse = await fetch(`${BASE_ENDPOINT}/projects/${this.projectId}/branches/${this.branch}/envs`, {
46
+ method: 'GET',
47
+ headers: {
48
+ Authorization: `Bearer ${this.token}`,
49
+ }
50
+ });
51
+ if (!varsResponse.ok) {
52
+ throw new Error(`Failed to load variables: ${varsResponse.statusText}`);
53
+ }
54
+ return varsResponse.json();
55
+ }
39
56
  async load(branch = 'main') {
40
57
  const config = await this.config();
41
58
  const tokenData = config.data.token;
42
59
  this.projectId = tokenData.projectId;
43
60
  this.scopes = tokenData.scopes;
44
61
  const branches = await this.branches(branch);
45
- console.log(branches.data.branches[0]);
62
+ if (branches.data.branches.length === 0) {
63
+ throw new Error(`Branch "${branch}" not found.`);
64
+ }
65
+ else if (branches.data.branches.length > 1) {
66
+ throw new Error(`Multiple branches found with the name "${branch}".`);
67
+ }
68
+ this.branch = branches.data.branches[0].id;
69
+ if (this.logEnabled)
70
+ console.log(`Loaded configuration for branch "${branch}" (ID: ${this.branch})`);
71
+ const vars = await this.variables();
72
+ this.data = vars.data.map(({ key, value }) => ({ key, value })).reduce((acc, { key, value }) => {
73
+ acc[key] = value;
74
+ return acc;
75
+ }, {});
76
+ if (this.logEnabled)
77
+ console.log(`Loaded ${Object.keys(this.data).length} environment variables.`);
78
+ }
79
+ get(key) {
80
+ return this.data[key];
81
+ }
82
+ getAll() {
83
+ return this.data;
46
84
  }
47
85
  }
48
86
  exports.Renv = Renv;
package/dist/base.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"base.js","sourceRoot":"","sources":["../src/base.ts"],"names":[],"mappings":";;;AAEA,MAAM,aAAa,GAAG,iCAAiC,CAAC;AAExD,MAAM,IAAI;IAON,YAAY,KAAa;QAJjB,WAAM,GAAW,MAAM,CAAC;QACxB,WAAM,GAAa,EAAE,CAAC;QACtB,SAAI,GAA2B,EAAE,CAAC;QAGtC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACvB,CAAC;IAEO,KAAK,CAAC,MAAM;QAChB,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,GAAG,aAAa,OAAO,EAAE;YAChD,MAAM,EAAE,KAAK;YACb,OAAO,EAAE;gBACL,aAAa,EAAE,UAAU,IAAI,CAAC,KAAK,EAAE;aACxC;SACJ,CAAC,CAAC;QACH,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CAAC,iCAAiC,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC;QAC1E,CAAC;QACD,OAAO,MAAM,CAAC,IAAI,EAAE,CAAC;IACzB,CAAC;IAEO,KAAK,CAAC,QAAQ,CAAC,MAAc;QACjC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YAClB,MAAM,IAAI,KAAK,CAAC,6DAA6D,CAAC,CAAC;QACnF,CAAC;QACD,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,aAAa,aAAa,IAAI,CAAC,SAAS,kBAAkB,MAAM,EAAE,EAAE;YAChG,MAAM,EAAE,KAAK;YACb,OAAO,EAAE;gBACL,aAAa,EAAE,UAAU,IAAI,CAAC,KAAK,EAAE;aACxC;SACJ,CAAC,CAAC;QACH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CAAC,4BAA4B,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC;QACvE,CAAC;QACD,OAAO,QAAQ,CAAC,IAAI,EAAE,CAAC;IAC3B,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,SAAiB,MAAM;QAC9B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC;QACnC,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;QACpC,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC,SAAS,CAAC;QACrC,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC;QAE/B,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QAC7C,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;IAC3C,CAAC;CACJ;AAEQ,oBAAI"}
1
+ {"version":3,"file":"base.js","sourceRoot":"","sources":["../src/base.ts"],"names":[],"mappings":";;;AAEA,MAAM,aAAa,GAAG,iCAAiC,CAAC;AAExD,MAAM,IAAI;IAQN,YAAY,KAAa,EAAE,aAAsB,KAAK;QANrC,eAAU,GAAY,IAAI,CAAC;QAEpC,WAAM,GAAW,MAAM,CAAC;QACxB,WAAM,GAAa,EAAE,CAAC;QACtB,SAAI,GAA2B,EAAE,CAAC;QAGtC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;IACjC,CAAC;IAEO,KAAK,CAAC,MAAM;QAChB,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,GAAG,aAAa,OAAO,EAAE;YAChD,MAAM,EAAE,KAAK;YACb,OAAO,EAAE;gBACL,aAAa,EAAE,UAAU,IAAI,CAAC,KAAK,EAAE;aACxC;SACJ,CAAC,CAAC;QACH,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CAAC,iCAAiC,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC;QAC1E,CAAC;QACD,OAAO,MAAM,CAAC,IAAI,EAAE,CAAC;IACzB,CAAC;IAEO,KAAK,CAAC,QAAQ,CAAC,MAAc;QACjC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YAClB,MAAM,IAAI,KAAK,CAAC,6DAA6D,CAAC,CAAC;QACnF,CAAC;QACD,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,aAAa,aAAa,IAAI,CAAC,SAAS,kBAAkB,MAAM,EAAE,EAAE;YAChG,MAAM,EAAE,KAAK;YACb,OAAO,EAAE;gBACL,aAAa,EAAE,UAAU,IAAI,CAAC,KAAK,EAAE;aACxC;SACJ,CAAC,CAAC;QACH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CAAC,4BAA4B,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC;QACvE,CAAC;QACD,OAAO,QAAQ,CAAC,IAAI,EAAE,CAAC;IAC3B,CAAC;IAEO,KAAK,CAAC,SAAS;QACnB,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YAClB,MAAM,IAAI,KAAK,CAAC,6DAA6D,CAAC,CAAC;QACnF,CAAC;QACD,MAAM,YAAY,GAAG,MAAM,KAAK,CAAC,GAAG,aAAa,aAAa,IAAI,CAAC,SAAS,aAAa,IAAI,CAAC,MAAM,OAAO,EAAE;YACzG,MAAM,EAAE,KAAK;YACb,OAAO,EAAE;gBACL,aAAa,EAAE,UAAU,IAAI,CAAC,KAAK,EAAE;aACxC;SACJ,CAAC,CAAC;QACH,IAAI,CAAC,YAAY,CAAC,EAAE,EAAE,CAAC;YACnB,MAAM,IAAI,KAAK,CAAC,6BAA6B,YAAY,CAAC,UAAU,EAAE,CAAC,CAAC;QAC5E,CAAC;QACD,OAAO,YAAY,CAAC,IAAI,EAAE,CAAC;IAC/B,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,SAAiB,MAAM;QAC9B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC;QACnC,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;QACpC,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC,SAAS,CAAC;QACrC,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC;QAE/B,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QAC7C,IAAI,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACtC,MAAM,IAAI,KAAK,CAAC,WAAW,MAAM,cAAc,CAAC,CAAC;QACrD,CAAC;aAAM,IAAI,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC3C,MAAM,IAAI,KAAK,CAAC,0CAA0C,MAAM,IAAI,CAAC,CAAC;QAC1E,CAAC;QAED,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3C,IAAI,IAAI,CAAC,UAAU;YAAE,OAAO,CAAC,GAAG,CAAC,oCAAoC,MAAM,UAAU,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;QAErG,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC;QACpC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE;YAC3F,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;YACjB,OAAO,GAAG,CAAC;QACf,CAAC,EAAE,EAA4B,CAAC,CAAC;QAEjC,IAAI,IAAI,CAAC,UAAU;YAAE,OAAO,CAAC,GAAG,CAAC,UAAU,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,yBAAyB,CAAC,CAAC;IACvG,CAAC;IAED,GAAG,CAAC,GAAW;QACX,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC1B,CAAC;IAED,MAAM;QACF,OAAO,IAAI,CAAC,IAAI,CAAC;IACrB,CAAC;CACJ;AAEQ,oBAAI"}
@@ -1,26 +1,38 @@
1
1
  import { Scopes } from './';
2
- type APIConfigResponse = {
2
+ type APIResponseBase<T> = {
3
3
  success: boolean;
4
4
  message: string;
5
- data: {
6
- token: {
7
- id: string;
8
- userId: string;
9
- token: string;
10
- projectId: string;
11
- expiredAt: string;
12
- scopes: Scopes[];
13
- createdAt: string;
14
- updatedAt: string;
15
- };
16
- };
5
+ data: T;
17
6
  };
18
- type APIBranchesResponse = {
19
- success: boolean;
20
- message: string;
21
- data: {
22
- branches: Array<{}>;
7
+ type APIConfigResponse = APIResponseBase<{
8
+ token: {
9
+ id: string;
10
+ userId: string;
11
+ token: string;
12
+ projectId: string;
13
+ expiredAt: string;
14
+ scopes: Scopes[];
15
+ createdAt: string;
16
+ updatedAt: string;
23
17
  };
24
- };
25
- export { APIConfigResponse, APIBranchesResponse };
18
+ }>;
19
+ type APIBranchesResponse = APIResponseBase<{
20
+ branches: Array<{
21
+ id: string;
22
+ name: string;
23
+ projectId: string;
24
+ isMain: boolean;
25
+ createdAt: string;
26
+ updatedAt: string;
27
+ }>;
28
+ }>;
29
+ type APIVariablesResponse = APIResponseBase<Array<{
30
+ id: string;
31
+ key: string;
32
+ value: string;
33
+ branchId: string;
34
+ createdAt: string;
35
+ updatedAt: string;
36
+ }>>;
37
+ export { APIConfigResponse, APIBranchesResponse, APIVariablesResponse };
26
38
  //# sourceMappingURL=api.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../src/types/api.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,IAAI,CAAC;AAE5B,KAAK,iBAAiB,GAAG;IACrB,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE;QACF,KAAK,EAAE;YACH,EAAE,EAAS,MAAM,CAAC;YAClB,MAAM,EAAK,MAAM,CAAC;YAClB,KAAK,EAAM,MAAM,CAAC;YAClB,SAAS,EAAE,MAAM,CAAC;YAClB,SAAS,EAAE,MAAM,CAAC;YAClB,MAAM,EAAK,MAAM,EAAE,CAAC;YACpB,SAAS,EAAE,MAAM,CAAC;YAClB,SAAS,EAAE,MAAM,CAAC;SACrB,CAAA;KACJ,CAAA;CACJ,CAAA;AAED,KAAK,mBAAmB,GAAG;IACvB,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE;QACF,QAAQ,EAAE,KAAK,CAAC,EAEf,CAAC,CAAC;KACN,CAAA;CACJ,CAAA;AAED,OAAO,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,CAAC"}
1
+ {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../src/types/api.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,IAAI,CAAC;AAE5B,KAAK,eAAe,CAAC,CAAC,IAAI;IACtB,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,CAAC,CAAC;CACX,CAAA;AAED,KAAK,iBAAiB,GAAG,eAAe,CAAC;IACrC,KAAK,EAAE;QACH,EAAE,EAAU,MAAM,CAAC;QACnB,MAAM,EAAM,MAAM,CAAC;QACnB,KAAK,EAAO,MAAM,CAAC;QACnB,SAAS,EAAG,MAAM,CAAC;QACnB,SAAS,EAAG,MAAM,CAAC;QACnB,MAAM,EAAM,MAAM,EAAE,CAAC;QACrB,SAAS,EAAG,MAAM,CAAC;QACnB,SAAS,EAAG,MAAM,CAAC;KACtB,CAAA;CACJ,CAAC,CAAC;AAEH,KAAK,mBAAmB,GAAG,eAAe,CAAC;IACvC,QAAQ,EAAE,KAAK,CAAC;QACZ,EAAE,EAAU,MAAM,CAAC;QACnB,IAAI,EAAQ,MAAM,CAAC;QACnB,SAAS,EAAG,MAAM,CAAC;QACnB,MAAM,EAAM,OAAO,CAAC;QACpB,SAAS,EAAG,MAAM,CAAC;QACnB,SAAS,EAAG,MAAM,CAAC;KACtB,CAAC,CAAC;CACN,CAAC,CAAC;AAEH,KAAK,oBAAoB,GAAG,eAAe,CAAC,KAAK,CAAC;IAC9C,EAAE,EAAU,MAAM,CAAC;IACnB,GAAG,EAAS,MAAM,CAAC;IACnB,KAAK,EAAO,MAAM,CAAC;IACnB,QAAQ,EAAI,MAAM,CAAC;IACnB,SAAS,EAAG,MAAM,CAAC;IACnB,SAAS,EAAG,MAAM,CAAC;CACtB,CAAC,CAAC,CAAC;AAEJ,OAAO,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@renv/node",
3
- "version": "0.0.6",
3
+ "version": "0.0.7",
4
4
  "description": "@renv/node client program",
5
5
  "private": false,
6
6
  "keywords": [
@@ -27,9 +27,9 @@
27
27
  ],
28
28
  "scripts": {
29
29
  "build": "tsc",
30
- "deploy": "npm run build && npm publish",
30
+ "deploy": "node ./scripts/deploy.js",
31
31
  "docs": "typedoc",
32
- "test": "build && node ./test/index.js"
32
+ "test": "tsc && cd test && node ./src/index.js && cd ../"
33
33
  },
34
34
  "devDependencies": {
35
35
  "@types/node": "^25.0.3",