@fias/plugin-dev-harness 1.2.0 → 1.3.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 (55) hide show
  1. package/dist/cli/check-auth.d.ts +3 -3
  2. package/dist/cli/check-auth.d.ts.map +1 -1
  3. package/dist/cli/check-auth.js +19 -8
  4. package/dist/cli/check-auth.js.map +1 -1
  5. package/dist/cli/check-auth.test.d.ts +2 -0
  6. package/dist/cli/check-auth.test.d.ts.map +1 -0
  7. package/dist/cli/check-auth.test.js +49 -0
  8. package/dist/cli/check-auth.test.js.map +1 -0
  9. package/dist/cli/dev.d.ts +2 -2
  10. package/dist/cli/dev.d.ts.map +1 -1
  11. package/dist/cli/dev.js +4 -20
  12. package/dist/cli/dev.js.map +1 -1
  13. package/dist/cli/dev.test.js +10 -38
  14. package/dist/cli/dev.test.js.map +1 -1
  15. package/dist/cli/entities.d.ts.map +1 -1
  16. package/dist/cli/entities.js +8 -6
  17. package/dist/cli/entities.js.map +1 -1
  18. package/dist/cli/entities.test.js +15 -24
  19. package/dist/cli/entities.test.js.map +1 -1
  20. package/dist/cli/index.test.js +2 -2
  21. package/dist/cli/login.d.ts +2 -0
  22. package/dist/cli/login.d.ts.map +1 -1
  23. package/dist/cli/login.js +19 -14
  24. package/dist/cli/login.js.map +1 -1
  25. package/dist/cli/login.test.js +46 -24
  26. package/dist/cli/login.test.js.map +1 -1
  27. package/dist/cli/submit.d.ts.map +1 -1
  28. package/dist/cli/submit.js +13 -11
  29. package/dist/cli/submit.js.map +1 -1
  30. package/dist/cli/submit.test.js +13 -22
  31. package/dist/cli/submit.test.js.map +1 -1
  32. package/dist/config/config-loader.d.ts +6 -0
  33. package/dist/config/config-loader.d.ts.map +1 -1
  34. package/dist/config/config-loader.js +12 -0
  35. package/dist/config/config-loader.js.map +1 -1
  36. package/dist/config/credentials.d.ts +19 -1
  37. package/dist/config/credentials.d.ts.map +1 -1
  38. package/dist/config/credentials.js +46 -6
  39. package/dist/config/credentials.js.map +1 -1
  40. package/dist/config/credentials.test.js +72 -27
  41. package/dist/config/credentials.test.js.map +1 -1
  42. package/dist/index.js +0 -0
  43. package/dist/server/harness-server.d.ts +2 -3
  44. package/dist/server/harness-server.d.ts.map +1 -1
  45. package/dist/server/harness-server.js +233 -41
  46. package/dist/server/harness-server.js.map +1 -1
  47. package/dist/server/harness-server.test.js +60 -3
  48. package/dist/server/harness-server.test.js.map +1 -1
  49. package/dist/server/static/harness.css +58 -0
  50. package/dist/server/static/harness.html +20 -7
  51. package/dist/server/static/harness.js +162 -6
  52. package/package.json +10 -10
  53. package/dist/server/static/static/harness.css +0 -332
  54. package/dist/server/static/static/harness.html +0 -53
  55. package/dist/server/static/static/harness.js +0 -569
@@ -1 +1 @@
1
- {"version":3,"file":"config-loader.js","sourceRoot":"","sources":["../../src/config/config-loader.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAyDH,gCA6BC;AApFD,uCAAyB;AACzB,2CAA6B;AAsB7B;;;GAGG;AACH,SAAS,iBAAiB,CAAC,MAAc;IACvC,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC;QAC5B,6CAA6C;QAC7C,GAAG,CAAC,QAAQ,GAAG,EAAE,CAAC;QAClB,GAAG,CAAC,QAAQ,GAAG,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;QAClD,OAAO,GAAG,CAAC,MAAM,CAAC;IACpB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,kBAAkB,CAAC;IAC5B,CAAC;AACH,CAAC;AAED,MAAM,eAAe,GAAG,gCAAgC,CAAC;AAEzD,MAAM,cAAc,GAAkB;IACpC,SAAS,EAAE,uBAAuB;IAClC,IAAI,EAAE,IAAI;IACV,WAAW,EAAE,CAAC,YAAY,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,mBAAmB,CAAC;IACtF,QAAQ,EAAE;QACR,MAAM,EAAE,cAAc;QACtB,WAAW,EAAE,UAAU;QACvB,MAAM,EAAE,IAAI;KACb;IACD,SAAS,EAAE,MAAM;IACjB,MAAM,EAAE,eAAe;IACvB,WAAW,EAAE,iBAAiB,CAAC,eAAe,CAAC;CAChD,CAAC;AAEF,SAAgB,UAAU;IACxB,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,sBAAsB,CAAC,CAAC;IAExD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC/B,OAAO,EAAE,GAAG,cAAc,EAAE,CAAC;IAC/B,CAAC;IAED,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;QACrD,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAEvC,MAAM,MAAM,GAAG;YACb,GAAG,cAAc;YACjB,GAAG,UAAU;YACb,QAAQ,EAAE;gBACR,GAAG,cAAc,CAAC,QAAQ;gBAC1B,GAAG,CAAC,UAAU,CAAC,QAAQ,IAAI,EAAE,CAAC;aAC/B;SACF,CAAC;QAEF,uDAAuD;QACvD,IAAI,CAAC,UAAU,CAAC,WAAW,IAAI,UAAU,CAAC,MAAM,EAAE,CAAC;YACjD,MAAM,CAAC,WAAW,GAAG,iBAAiB,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACxD,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,GAAG,cAAc,EAAE,CAAC;IAC/B,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"config-loader.js","sourceRoot":"","sources":["../../src/config/config-loader.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAsEH,gCA6BC;AAjGD,uCAAyB;AACzB,2CAA6B;AAuB7B;;;GAGG;AACH,SAAS,iBAAiB,CAAC,MAAc;IACvC,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC;QAC5B,6CAA6C;QAC7C,GAAG,CAAC,QAAQ,GAAG,EAAE,CAAC;QAClB,GAAG,CAAC,QAAQ,GAAG,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;QAClD,OAAO,GAAG,CAAC,MAAM,CAAC;IACpB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,kBAAkB,CAAC;IAC5B,CAAC;AACH,CAAC;AAED,iDAAiD;AACpC,QAAA,gBAAgB,GAAiE;IAC5F,OAAO,EAAE;QACP,MAAM,EAAE,gCAAgC;QACxC,WAAW,EAAE,yBAAyB;KACvC;IACD,UAAU,EAAE;QACV,MAAM,EAAE,wBAAwB;QAChC,WAAW,EAAE,iBAAiB;KAC/B;CACF,CAAC;AAEF,MAAM,eAAe,GAAG,gCAAgC,CAAC;AAEzD,MAAM,cAAc,GAAkB;IACpC,SAAS,EAAE,uBAAuB;IAClC,IAAI,EAAE,IAAI;IACV,WAAW,EAAE,CAAC,YAAY,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,mBAAmB,CAAC;IACtF,QAAQ,EAAE;QACR,MAAM,EAAE,cAAc;QACtB,WAAW,EAAE,UAAU;QACvB,MAAM,EAAE,IAAI;KACb;IACD,SAAS,EAAE,MAAM;IACjB,MAAM,EAAE,eAAe;IACvB,WAAW,EAAE,iBAAiB,CAAC,eAAe,CAAC;CAChD,CAAC;AAEF,SAAgB,UAAU;IACxB,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,sBAAsB,CAAC,CAAC;IAExD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC/B,OAAO,EAAE,GAAG,cAAc,EAAE,CAAC;IAC/B,CAAC;IAED,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;QACrD,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAEvC,MAAM,MAAM,GAAG;YACb,GAAG,cAAc;YACjB,GAAG,UAAU;YACb,QAAQ,EAAE;gBACR,GAAG,cAAc,CAAC,QAAQ;gBAC1B,GAAG,CAAC,UAAU,CAAC,QAAQ,IAAI,EAAE,CAAC;aAC/B;SACF,CAAC;QAEF,uDAAuD;QACvD,IAAI,CAAC,UAAU,CAAC,WAAW,IAAI,UAAU,CAAC,MAAM,EAAE,CAAC;YACjD,MAAM,CAAC,WAAW,GAAG,iBAAiB,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACxD,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,GAAG,cAAc,EAAE,CAAC;IAC/B,CAAC;AACH,CAAC"}
@@ -2,10 +2,28 @@
2
2
  * Credentials Manager
3
3
  *
4
4
  * Manages the ~/.fias/credentials file for storing API keys.
5
+ * Supports per-environment keys (staging, production).
5
6
  */
7
+ export type Environment = 'staging' | 'production';
6
8
  export interface Credentials {
7
- apiKey: string;
9
+ /** Per-environment API keys */
10
+ environments?: {
11
+ staging?: string;
12
+ production?: string;
13
+ };
14
+ /** @deprecated Legacy single-key field — migrated to environments.staging on save */
15
+ apiKey?: string;
8
16
  }
9
17
  export declare function loadCredentials(): Credentials;
18
+ /**
19
+ * Returns the API key for a specific environment.
20
+ * Handles backward compat: old `{ apiKey }` format is treated as staging.
21
+ */
22
+ export declare function loadApiKeyForEnvironment(env: Environment): string;
23
+ /**
24
+ * Saves an API key for a specific environment.
25
+ * Preserves keys for other environments. Migrates legacy format on first save.
26
+ */
27
+ export declare function saveApiKeyForEnvironment(env: Environment, apiKey: string): void;
10
28
  export declare function saveCredentials(credentials: Credentials): void;
11
29
  //# sourceMappingURL=credentials.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"credentials.d.ts","sourceRoot":"","sources":["../../src/config/credentials.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,MAAM,CAAC;CAChB;AAKD,wBAAgB,eAAe,IAAI,WAAW,CAc7C;AAED,wBAAgB,eAAe,CAAC,WAAW,EAAE,WAAW,GAAG,IAAI,CAQ9D"}
1
+ {"version":3,"file":"credentials.d.ts","sourceRoot":"","sources":["../../src/config/credentials.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH,MAAM,MAAM,WAAW,GAAG,SAAS,GAAG,YAAY,CAAC;AAEnD,MAAM,WAAW,WAAW;IAC1B,+BAA+B;IAC/B,YAAY,CAAC,EAAE;QACb,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,UAAU,CAAC,EAAE,MAAM,CAAC;KACrB,CAAC;IACF,qFAAqF;IACrF,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAKD,wBAAgB,eAAe,IAAI,WAAW,CAW7C;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,WAAW,GAAG,MAAM,CAcjE;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAsB/E;AAED,wBAAgB,eAAe,CAAC,WAAW,EAAE,WAAW,GAAG,IAAI,CAQ9D"}
@@ -3,6 +3,7 @@
3
3
  * Credentials Manager
4
4
  *
5
5
  * Manages the ~/.fias/credentials file for storing API keys.
6
+ * Supports per-environment keys (staging, production).
6
7
  */
7
8
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
8
9
  if (k2 === undefined) k2 = k;
@@ -39,6 +40,8 @@ var __importStar = (this && this.__importStar) || (function () {
39
40
  })();
40
41
  Object.defineProperty(exports, "__esModule", { value: true });
41
42
  exports.loadCredentials = loadCredentials;
43
+ exports.loadApiKeyForEnvironment = loadApiKeyForEnvironment;
44
+ exports.saveApiKeyForEnvironment = saveApiKeyForEnvironment;
42
45
  exports.saveCredentials = saveCredentials;
43
46
  const fs = __importStar(require("fs"));
44
47
  const path = __importStar(require("path"));
@@ -47,18 +50,55 @@ const CREDENTIALS_DIR = path.join(os.homedir(), '.fias');
47
50
  const CREDENTIALS_PATH = path.join(CREDENTIALS_DIR, 'credentials');
48
51
  function loadCredentials() {
49
52
  if (!fs.existsSync(CREDENTIALS_PATH)) {
50
- return { apiKey: '' };
53
+ return {};
51
54
  }
52
55
  try {
53
56
  const content = fs.readFileSync(CREDENTIALS_PATH, 'utf-8');
54
- const parsed = JSON.parse(content);
55
- return {
56
- apiKey: parsed.apiKey || '',
57
- };
57
+ return JSON.parse(content);
58
58
  }
59
59
  catch {
60
- return { apiKey: '' };
60
+ return {};
61
+ }
62
+ }
63
+ /**
64
+ * Returns the API key for a specific environment.
65
+ * Handles backward compat: old `{ apiKey }` format is treated as staging.
66
+ */
67
+ function loadApiKeyForEnvironment(env) {
68
+ const creds = loadCredentials();
69
+ // New format
70
+ if (creds.environments?.[env]) {
71
+ return creds.environments[env];
72
+ }
73
+ // Legacy format — treat as staging
74
+ if (env === 'staging' && creds.apiKey) {
75
+ return creds.apiKey;
76
+ }
77
+ return '';
78
+ }
79
+ /**
80
+ * Saves an API key for a specific environment.
81
+ * Preserves keys for other environments. Migrates legacy format on first save.
82
+ */
83
+ function saveApiKeyForEnvironment(env, apiKey) {
84
+ const creds = loadCredentials();
85
+ // Build new environments map, migrating legacy apiKey if present
86
+ const environments = {};
87
+ // Carry forward legacy apiKey as staging if it exists
88
+ if (creds.apiKey) {
89
+ environments.staging = creds.apiKey;
90
+ }
91
+ // Carry forward existing per-env keys
92
+ if (creds.environments) {
93
+ if (creds.environments.staging)
94
+ environments.staging = creds.environments.staging;
95
+ if (creds.environments.production)
96
+ environments.production = creds.environments.production;
61
97
  }
98
+ // Set the new key
99
+ environments[env] = apiKey;
100
+ // Write in new format only (drop legacy apiKey field)
101
+ saveCredentials({ environments });
62
102
  }
63
103
  function saveCredentials(credentials) {
64
104
  if (!fs.existsSync(CREDENTIALS_DIR)) {
@@ -1 +1 @@
1
- {"version":3,"file":"credentials.js","sourceRoot":"","sources":["../../src/config/credentials.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAaH,0CAcC;AAED,0CAQC;AAnCD,uCAAyB;AACzB,2CAA6B;AAC7B,uCAAyB;AAMzB,MAAM,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,OAAO,CAAC,CAAC;AACzD,MAAM,gBAAgB,GAAG,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,aAAa,CAAC,CAAC;AAEnE,SAAgB,eAAe;IAC7B,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,gBAAgB,CAAC,EAAE,CAAC;QACrC,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;IACxB,CAAC;IAED,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,gBAAgB,EAAE,OAAO,CAAC,CAAC;QAC3D,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACnC,OAAO;YACL,MAAM,EAAE,MAAM,CAAC,MAAM,IAAI,EAAE;SAC5B,CAAC;IACJ,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;IACxB,CAAC;AACH,CAAC;AAED,SAAgB,eAAe,CAAC,WAAwB;IACtD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,eAAe,CAAC,EAAE,CAAC;QACpC,EAAE,CAAC,SAAS,CAAC,eAAe,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IAClE,CAAC;IAED,EAAE,CAAC,aAAa,CAAC,gBAAgB,EAAE,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,EAAE;QAC9E,IAAI,EAAE,KAAK;KACZ,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"credentials.js","sourceRoot":"","sources":["../../src/config/credentials.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAqBH,0CAWC;AAMD,4DAcC;AAMD,4DAsBC;AAED,0CAQC;AAxFD,uCAAyB;AACzB,2CAA6B;AAC7B,uCAAyB;AAczB,MAAM,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,OAAO,CAAC,CAAC;AACzD,MAAM,gBAAgB,GAAG,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,aAAa,CAAC,CAAC;AAEnE,SAAgB,eAAe;IAC7B,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,gBAAgB,CAAC,EAAE,CAAC;QACrC,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,gBAAgB,EAAE,OAAO,CAAC,CAAC;QAC3D,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAC7B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,SAAgB,wBAAwB,CAAC,GAAgB;IACvD,MAAM,KAAK,GAAG,eAAe,EAAE,CAAC;IAEhC,aAAa;IACb,IAAI,KAAK,CAAC,YAAY,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC;QAC9B,OAAO,KAAK,CAAC,YAAY,CAAC,GAAG,CAAE,CAAC;IAClC,CAAC;IAED,mCAAmC;IACnC,IAAI,GAAG,KAAK,SAAS,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;QACtC,OAAO,KAAK,CAAC,MAAM,CAAC;IACtB,CAAC;IAED,OAAO,EAAE,CAAC;AACZ,CAAC;AAED;;;GAGG;AACH,SAAgB,wBAAwB,CAAC,GAAgB,EAAE,MAAc;IACvE,MAAM,KAAK,GAAG,eAAe,EAAE,CAAC;IAEhC,iEAAiE;IACjE,MAAM,YAAY,GAA2B,EAAE,CAAC;IAEhD,sDAAsD;IACtD,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;QACjB,YAAY,CAAC,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC;IACtC,CAAC;IAED,sCAAsC;IACtC,IAAI,KAAK,CAAC,YAAY,EAAE,CAAC;QACvB,IAAI,KAAK,CAAC,YAAY,CAAC,OAAO;YAAE,YAAY,CAAC,OAAO,GAAG,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC;QAClF,IAAI,KAAK,CAAC,YAAY,CAAC,UAAU;YAAE,YAAY,CAAC,UAAU,GAAG,KAAK,CAAC,YAAY,CAAC,UAAU,CAAC;IAC7F,CAAC;IAED,kBAAkB;IAClB,YAAY,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC;IAE3B,sDAAsD;IACtD,eAAe,CAAC,EAAE,YAAY,EAAE,CAAC,CAAC;AACpC,CAAC;AAED,SAAgB,eAAe,CAAC,WAAwB;IACtD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,eAAe,CAAC,EAAE,CAAC;QACpC,EAAE,CAAC,SAAS,CAAC,eAAe,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IAClE,CAAC;IAED,EAAE,CAAC,aAAa,CAAC,gBAAgB,EAAE,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,EAAE;QAC9E,IAAI,EAAE,KAAK;KACZ,CAAC,CAAC;AACL,CAAC"}
@@ -42,70 +42,115 @@ describe('config/credentials', () => {
42
42
  jest.resetAllMocks();
43
43
  });
44
44
  describe('loadCredentials()', () => {
45
- it('returns empty apiKey when credentials file does not exist', () => {
45
+ it('returns empty object when credentials file does not exist', () => {
46
46
  mockedFs.existsSync.mockReturnValue(false);
47
47
  const creds = (0, credentials_1.loadCredentials)();
48
- expect(creds).toEqual({ apiKey: '' });
48
+ expect(creds).toEqual({});
49
49
  });
50
- it('loads apiKey from credentials file', () => {
50
+ it('loads new format with environments', () => {
51
51
  mockedFs.existsSync.mockReturnValue(true);
52
- mockedFs.readFileSync.mockReturnValue(JSON.stringify({ apiKey: 'fias_sk_test_12345' }));
52
+ mockedFs.readFileSync.mockReturnValue(JSON.stringify({ environments: { staging: 'fias_sk_stg', production: 'fias_sk_prod' } }));
53
53
  const creds = (0, credentials_1.loadCredentials)();
54
- expect(creds.apiKey).toBe('fias_sk_test_12345');
54
+ expect(creds.environments?.staging).toBe('fias_sk_stg');
55
+ expect(creds.environments?.production).toBe('fias_sk_prod');
55
56
  });
56
- it('returns empty apiKey when file has no apiKey property', () => {
57
+ it('loads legacy format with apiKey', () => {
57
58
  mockedFs.existsSync.mockReturnValue(true);
58
- mockedFs.readFileSync.mockReturnValue(JSON.stringify({}));
59
+ mockedFs.readFileSync.mockReturnValue(JSON.stringify({ apiKey: 'fias_sk_legacy' }));
59
60
  const creds = (0, credentials_1.loadCredentials)();
60
- expect(creds.apiKey).toBe('');
61
+ expect(creds.apiKey).toBe('fias_sk_legacy');
61
62
  });
62
- it('returns empty apiKey when file has invalid JSON', () => {
63
+ it('returns empty object when file has invalid JSON', () => {
63
64
  mockedFs.existsSync.mockReturnValue(true);
64
65
  mockedFs.readFileSync.mockReturnValue('not json');
65
66
  const creds = (0, credentials_1.loadCredentials)();
66
- expect(creds.apiKey).toBe('');
67
+ expect(creds).toEqual({});
67
68
  });
68
- it('returns empty apiKey when readFileSync throws', () => {
69
+ it('returns empty object when readFileSync throws', () => {
69
70
  mockedFs.existsSync.mockReturnValue(true);
70
71
  mockedFs.readFileSync.mockImplementation(() => {
71
72
  throw new Error('EACCES');
72
73
  });
73
74
  const creds = (0, credentials_1.loadCredentials)();
74
- expect(creds.apiKey).toBe('');
75
+ expect(creds).toEqual({});
75
76
  });
76
- it('returns empty apiKey when apiKey is null in file', () => {
77
+ });
78
+ describe('loadApiKeyForEnvironment()', () => {
79
+ it('returns staging key from new format', () => {
77
80
  mockedFs.existsSync.mockReturnValue(true);
78
- mockedFs.readFileSync.mockReturnValue(JSON.stringify({ apiKey: null }));
79
- const creds = (0, credentials_1.loadCredentials)();
80
- expect(creds.apiKey).toBe('');
81
+ mockedFs.readFileSync.mockReturnValue(JSON.stringify({ environments: { staging: 'fias_sk_stg' } }));
82
+ expect((0, credentials_1.loadApiKeyForEnvironment)('staging')).toBe('fias_sk_stg');
83
+ });
84
+ it('returns production key from new format', () => {
85
+ mockedFs.existsSync.mockReturnValue(true);
86
+ mockedFs.readFileSync.mockReturnValue(JSON.stringify({ environments: { production: 'fias_sk_prod' } }));
87
+ expect((0, credentials_1.loadApiKeyForEnvironment)('production')).toBe('fias_sk_prod');
88
+ });
89
+ it('returns staging key from legacy apiKey field', () => {
90
+ mockedFs.existsSync.mockReturnValue(true);
91
+ mockedFs.readFileSync.mockReturnValue(JSON.stringify({ apiKey: 'fias_sk_old' }));
92
+ expect((0, credentials_1.loadApiKeyForEnvironment)('staging')).toBe('fias_sk_old');
93
+ });
94
+ it('returns empty string for production with legacy format', () => {
95
+ mockedFs.existsSync.mockReturnValue(true);
96
+ mockedFs.readFileSync.mockReturnValue(JSON.stringify({ apiKey: 'fias_sk_old' }));
97
+ expect((0, credentials_1.loadApiKeyForEnvironment)('production')).toBe('');
98
+ });
99
+ it('returns empty string when no credentials file exists', () => {
100
+ mockedFs.existsSync.mockReturnValue(false);
101
+ expect((0, credentials_1.loadApiKeyForEnvironment)('staging')).toBe('');
102
+ });
103
+ });
104
+ describe('saveApiKeyForEnvironment()', () => {
105
+ it('saves staging key in new format', () => {
106
+ // First call: existsSync for loadCredentials (file doesn't exist)
107
+ // Second call: existsSync for saveCredentials (dir exists)
108
+ mockedFs.existsSync.mockReturnValueOnce(false).mockReturnValue(true);
109
+ (0, credentials_1.saveApiKeyForEnvironment)('staging', 'fias_sk_new_stg');
110
+ const writtenContent = mockedFs.writeFileSync.mock.calls[0][1];
111
+ const parsed = JSON.parse(writtenContent.trim());
112
+ expect(parsed.environments.staging).toBe('fias_sk_new_stg');
113
+ expect(parsed.apiKey).toBeUndefined();
114
+ });
115
+ it('preserves existing keys when saving another environment', () => {
116
+ mockedFs.existsSync.mockReturnValue(true);
117
+ mockedFs.readFileSync.mockReturnValue(JSON.stringify({ environments: { staging: 'fias_sk_stg' } }));
118
+ (0, credentials_1.saveApiKeyForEnvironment)('production', 'fias_sk_prod');
119
+ const writtenContent = mockedFs.writeFileSync.mock.calls[0][1];
120
+ const parsed = JSON.parse(writtenContent.trim());
121
+ expect(parsed.environments.staging).toBe('fias_sk_stg');
122
+ expect(parsed.environments.production).toBe('fias_sk_prod');
123
+ });
124
+ it('migrates legacy apiKey to staging on save', () => {
125
+ mockedFs.existsSync.mockReturnValue(true);
126
+ mockedFs.readFileSync.mockReturnValue(JSON.stringify({ apiKey: 'fias_sk_legacy' }));
127
+ (0, credentials_1.saveApiKeyForEnvironment)('production', 'fias_sk_prod');
128
+ const writtenContent = mockedFs.writeFileSync.mock.calls[0][1];
129
+ const parsed = JSON.parse(writtenContent.trim());
130
+ expect(parsed.environments.staging).toBe('fias_sk_legacy');
131
+ expect(parsed.environments.production).toBe('fias_sk_prod');
132
+ expect(parsed.apiKey).toBeUndefined();
81
133
  });
82
134
  });
83
135
  describe('saveCredentials()', () => {
84
136
  it('creates directory if it does not exist and writes file', () => {
85
137
  mockedFs.existsSync.mockReturnValue(false);
86
- (0, credentials_1.saveCredentials)({ apiKey: 'fias_sk_test_67890' });
138
+ (0, credentials_1.saveCredentials)({ environments: { staging: 'fias_sk_test' } });
87
139
  expect(mockedFs.mkdirSync).toHaveBeenCalledWith(expect.stringContaining('.fias'), {
88
140
  recursive: true,
89
141
  mode: 0o700,
90
142
  });
91
- expect(mockedFs.writeFileSync).toHaveBeenCalledWith(expect.stringContaining('credentials'), expect.stringContaining('fias_sk_test_67890'), { mode: 0o600 });
143
+ expect(mockedFs.writeFileSync).toHaveBeenCalledWith(expect.stringContaining('credentials'), expect.stringContaining('fias_sk_test'), { mode: 0o600 });
92
144
  });
93
145
  it('does not create directory if it already exists', () => {
94
146
  mockedFs.existsSync.mockReturnValue(true);
95
- (0, credentials_1.saveCredentials)({ apiKey: 'fias_sk_test_abc' });
147
+ (0, credentials_1.saveCredentials)({ environments: { staging: 'fias_sk_abc' } });
96
148
  expect(mockedFs.mkdirSync).not.toHaveBeenCalled();
97
149
  expect(mockedFs.writeFileSync).toHaveBeenCalled();
98
150
  });
99
- it('writes valid JSON to the file', () => {
100
- mockedFs.existsSync.mockReturnValue(true);
101
- (0, credentials_1.saveCredentials)({ apiKey: 'fias_sk_test_json' });
102
- const writtenContent = mockedFs.writeFileSync.mock.calls[0][1];
103
- const parsed = JSON.parse(writtenContent.trim());
104
- expect(parsed).toEqual({ apiKey: 'fias_sk_test_json' });
105
- });
106
151
  it('writes file with restricted permissions (0o600)', () => {
107
152
  mockedFs.existsSync.mockReturnValue(true);
108
- (0, credentials_1.saveCredentials)({ apiKey: 'fias_sk_test' });
153
+ (0, credentials_1.saveCredentials)({ environments: { staging: 'fias_sk_test' } });
109
154
  expect(mockedFs.writeFileSync).toHaveBeenCalledWith(expect.any(String), expect.any(String), {
110
155
  mode: 0o600,
111
156
  });
@@ -1 +1 @@
1
- {"version":3,"file":"credentials.test.js","sourceRoot":"","sources":["../../src/config/credentials.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"credentials.test.js","sourceRoot":"","sources":["../../src/config/credentials.test.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
File without changes
@@ -5,12 +5,11 @@
5
5
  * bridge API calls from the harness JavaScript.
6
6
  */
7
7
  import type { MockEntityConfig } from '../config/config-loader';
8
+ import { type Environment } from '../config/credentials';
8
9
  export interface HarnessServerOptions {
9
10
  port: number;
10
11
  pluginUrl: string;
11
- isLive: boolean;
12
- apiKey: string;
13
- apiUrl: string;
12
+ defaultEnvironment: Environment;
14
13
  permissions: string[];
15
14
  mockUser: {
16
15
  userId: string;
@@ -1 +1 @@
1
- {"version":3,"file":"harness-server.d.ts","sourceRoot":"","sources":["../../src/server/harness-server.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAMhE,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,OAAO,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,QAAQ,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAC;IACzE,SAAS,EAAE,OAAO,GAAG,MAAM,CAAC;IAC5B,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;CACjD;AAED,wBAAsB,kBAAkB,CAAC,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,IAAI,CAAC,CA8LrF"}
1
+ {"version":3,"file":"harness-server.d.ts","sourceRoot":"","sources":["../../src/server/harness-server.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAOH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAKhE,OAAO,EAGL,KAAK,WAAW,EACjB,MAAM,uBAAuB,CAAC;AAE/B,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,kBAAkB,EAAE,WAAW,CAAC;IAChC,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,QAAQ,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAC;IACzE,SAAS,EAAE,OAAO,GAAG,MAAM,CAAC;IAC5B,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;CACjD;AAED,wBAAsB,kBAAkB,CAAC,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,IAAI,CAAC,CAqRrF"}