@embrace-ai/infra-api-schema-sync 1.0.5 → 1.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/CHANGELOG.md CHANGED
@@ -1,5 +1,19 @@
1
1
  # Changelog
2
2
 
3
+ ## [1.0.7](https://github.com/Embrace-AI/infra-api-schema-sync/compare/v1.0.6...v1.0.7) (2025-10-15)
4
+
5
+
6
+ ### Bug Fixes
7
+
8
+ * **workflow:** add cli to update repo files, add test to veriify behavior ([#24](https://github.com/Embrace-AI/infra-api-schema-sync/issues/24)) ([27e9e53](https://github.com/Embrace-AI/infra-api-schema-sync/commit/27e9e539b6f79bfc7172ca97cc4725872818d4c0))
9
+
10
+ ## [1.0.6](https://github.com/Embrace-AI/infra-api-schema-sync/compare/v1.0.5...v1.0.6) (2025-10-14)
11
+
12
+
13
+ ### Bug Fixes
14
+
15
+ * **fetch:** remove explicit region passing ([#22](https://github.com/Embrace-AI/infra-api-schema-sync/issues/22)) ([6103289](https://github.com/Embrace-AI/infra-api-schema-sync/commit/61032896230c2edd746eda57a92d6a8aa9ee8a6f))
16
+
3
17
  ## [1.0.5](https://github.com/Embrace-AI/infra-api-schema-sync/compare/v1.0.4...v1.0.5) (2025-10-14)
4
18
 
5
19
 
@@ -1 +1 @@
1
- {"version":3,"file":"fetch-schema.d.ts","sourceRoot":"","sources":["../../src/fetch-schema.js"],"names":[],"mappings":"AAOO;;;kBAqCN"}
1
+ {"version":3,"file":"fetch-schema.d.ts","sourceRoot":"","sources":["../../src/fetch-schema.js"],"names":[],"mappings":"AAKO;;;kBAqCN"}
@@ -1,4 +1,3 @@
1
- import { AWS_REGION } from "@embrace-ai/common-sst-app-utils";
2
1
  import { createSignedFetch } from "@scaldwell77/aws-signed-fetch";
3
2
  import fs from "fs";
4
3
  import fse from "fs-extra";
@@ -8,7 +7,6 @@ export const fetchSchema = async ({ url, output }) => {
8
7
  console.log(`🔄 Fetching GraphQL schema from ${url}...`);
9
8
  const signedFetch = createSignedFetch({
10
9
  service: "execute-api",
11
- awsRegion: AWS_REGION,
12
10
  });
13
11
  const response = await signedFetch(url, {
14
12
  method: "GET",
@@ -1 +1 @@
1
- {"version":3,"file":"fetch-schema.js","sourceRoot":"","sources":["../../src/fetch-schema.js"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,kCAAkC,CAAC;AAE9D,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,GAAG,MAAM,UAAU,CAAC;AAC3B,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,MAAM,CAAC,MAAM,WAAW,GAAG,KAAK,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE;IACnD,IAAI,CAAC;QACH,OAAO,CAAC,GAAG,CAAC,mCAAmC,GAAG,KAAK,CAAC,CAAC;QAGzD,MAAM,WAAW,GAAG,iBAAiB,CAAC;YACpC,OAAO,EAAE,aAAa;YACtB,SAAS,EAAE,UAAU;SACtB,CAAC,CAAC;QAGH,MAAM,QAAQ,GAAG,MAAM,WAAW,CAAC,GAAG,EAAE;YACtC,MAAM,EAAE,KAAK;YACb,OAAO,EAAE;gBACP,MAAM,EAAE,iCAAiC;aAC1C;SACF,CAAC,CAAC;QAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,MAAM,IAAI,KAAK,CAAC,QAAQ,QAAQ,CAAC,MAAM,KAAK,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC;QACrE,CAAC;QAGD,MAAM,SAAS,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;QAGxC,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QACvC,GAAG,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;QAG7B,EAAE,CAAC,aAAa,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;QAE5C,OAAO,CAAC,GAAG,CAAC,kCAAkC,MAAM,EAAE,CAAC,CAAC;IAC1D,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,6BAA6B,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QAC5D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC,CAAC;AAGF,eAAe,WAAW,CAAC"}
1
+ {"version":3,"file":"fetch-schema.js","sourceRoot":"","sources":["../../src/fetch-schema.js"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,GAAG,MAAM,UAAU,CAAC;AAC3B,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,MAAM,CAAC,MAAM,WAAW,GAAG,KAAK,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE;IACnD,IAAI,CAAC;QACH,OAAO,CAAC,GAAG,CAAC,mCAAmC,GAAG,KAAK,CAAC,CAAC;QAIzD,MAAM,WAAW,GAAG,iBAAiB,CAAC;YACpC,OAAO,EAAE,aAAa;SACvB,CAAC,CAAC;QAGH,MAAM,QAAQ,GAAG,MAAM,WAAW,CAAC,GAAG,EAAE;YACtC,MAAM,EAAE,KAAK;YACb,OAAO,EAAE;gBACP,MAAM,EAAE,iCAAiC;aAC1C;SACF,CAAC,CAAC;QAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,MAAM,IAAI,KAAK,CAAC,QAAQ,QAAQ,CAAC,MAAM,KAAK,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC;QACrE,CAAC;QAGD,MAAM,SAAS,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;QAGxC,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QACvC,GAAG,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;QAG7B,EAAE,CAAC,aAAa,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;QAE5C,OAAO,CAAC,GAAG,CAAC,kCAAkC,MAAM,EAAE,CAAC,CAAC;IAC1D,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,6BAA6B,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QAC5D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC,CAAC;AAGF,eAAe,WAAW,CAAC"}
@@ -3,6 +3,7 @@ export function buildSchemaUrl({ stage, service, repo }: {
3
3
  service: string;
4
4
  repo: string;
5
5
  }): string;
6
+ export function extractServiceFromUrl(url: string): string | null;
6
7
  export function generateSchemaUrl(opts: any): string;
7
8
  export default generateSchemaUrl;
8
9
  //# sourceMappingURL=generate-schema-url.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"generate-schema-url.d.ts","sourceRoot":"","sources":["../../src/generate-schema-url.js"],"names":[],"mappings":"AAYO,yDALJ;IAAwB,KAAK,EAArB,MAAM;IACU,OAAO,EAAvB,MAAM;IACU,IAAI,EAApB,MAAM;CACd,GAAU,MAAM,CAwBlB;AAkGM,qDA2CN"}
1
+ {"version":3,"file":"generate-schema-url.d.ts","sourceRoot":"","sources":["../../src/generate-schema-url.js"],"names":[],"mappings":"AAYO,yDALJ;IAAwB,KAAK,EAArB,MAAM;IACU,OAAO,EAAvB,MAAM;IACU,IAAI,EAApB,MAAM;CACd,GAAU,MAAM,CAwBlB;AAuGM,2CANI,MAAM,GACJ,MAAM,GAAC,IAAI,CAuBvB;AAKM,qDA2CN"}
@@ -65,6 +65,16 @@ const extractServiceName = (repo) => {
65
65
  }
66
66
  return serviceName;
67
67
  };
68
+ export const extractServiceFromUrl = (url) => {
69
+ const serviceMatch = url.match(/api\.([^.]+)\.(?:pr-\d+\.)?services\./);
70
+ if (serviceMatch) {
71
+ return serviceMatch[1];
72
+ }
73
+ if (url.includes("/v2/graphql/schema")) {
74
+ return null;
75
+ }
76
+ return null;
77
+ };
68
78
  export const generateSchemaUrl = (opts) => {
69
79
  try {
70
80
  const { stage, service, repo } = opts;
@@ -1 +1 @@
1
- {"version":3,"file":"generate-schema-url.js","sourceRoot":"","sources":["../../src/generate-schema-url.js"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"generate-schema-url.js","sourceRoot":"","sources":["../../src/generate-schema-url.js"],"names":[],"mappings":"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"}
package/dist/src/index.js CHANGED
@@ -43,6 +43,16 @@ program
43
43
  const { default: generateSchemaUrl } = await import("./generate-schema-url.js");
44
44
  return generateSchemaUrl(opts);
45
45
  });
46
+ program
47
+ .command("update-local-schema")
48
+ .description("Find and update local schema files based on schema URL")
49
+ .requiredOption("--schema-url <url>", "Schema URL to extract service name from")
50
+ .requiredOption("--schema-file <file>", "Path to the new schema file")
51
+ .requiredOption("--output <file>", "JSON output file with update results")
52
+ .action(async (opts) => {
53
+ const { default: updateLocalSchema } = await import("./update-local-schema.js");
54
+ return updateLocalSchema(opts);
55
+ });
46
56
  program
47
57
  .command("dispatch-update")
48
58
  .description("Dispatch schema update events to organization repositories")
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.js"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.js"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ export function updateLocalSchema({ schemaUrl, schemaFile, output }: {
2
+ schemaUrl: string;
3
+ schemaFile: string;
4
+ output: string;
5
+ }): Promise<{
6
+ serviceName: string;
7
+ updatedFiles: string[];
8
+ hasChanges: boolean;
9
+ message: string;
10
+ }>;
11
+ export default updateLocalSchema;
12
+ //# sourceMappingURL=update-local-schema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"update-local-schema.d.ts","sourceRoot":"","sources":["../../src/update-local-schema.js"],"names":[],"mappings":"AA8GO,qEAJJ;IAAwB,SAAS,EAAzB,MAAM;IACU,UAAU,EAA1B,MAAM;IACU,MAAM,EAAtB,MAAM;CAChB;;;;;GAuGA"}
@@ -0,0 +1,144 @@
1
+ import { execSync } from "child_process";
2
+ import fs from "fs";
3
+ import fse from "fs-extra";
4
+ import path from "path";
5
+ import { extractServiceFromUrl } from "./generate-schema-url.js";
6
+ const findSchemaFiles = (serviceName, rootDir = process.cwd()) => {
7
+ if (!serviceName) {
8
+ console.log("⚠️ No service name provided, skipping schema file search");
9
+ return [];
10
+ }
11
+ console.log(`🔍 Searching for schema files in directories matching: ${serviceName}`);
12
+ try {
13
+ const findCommand = `find . -type d -name "*${serviceName}*" -exec find {} -maxdepth 10 -name "schema.graphql" \\; 2>/dev/null || true`;
14
+ const output = execSync(findCommand, {
15
+ cwd: rootDir,
16
+ encoding: "utf8",
17
+ maxBuffer: 10 * 1024 * 1024,
18
+ });
19
+ const files = output
20
+ .split("\n")
21
+ .map((line) => line.trim())
22
+ .filter((line) => line.length > 0)
23
+ .map((line) => line.replace(/^\.\//, ""))
24
+ .filter((file) => !file.includes("node_modules") &&
25
+ !file.includes("/dist/") &&
26
+ !file.includes("/.git/") &&
27
+ !file.includes("/build/") &&
28
+ !file.includes("/coverage/"));
29
+ const uniqueFiles = [...new Set(files)];
30
+ if (uniqueFiles.length > 0) {
31
+ console.log(`✅ Found ${uniqueFiles.length} schema file(s):`);
32
+ uniqueFiles.forEach((file) => console.log(` - ${file}`));
33
+ }
34
+ else {
35
+ console.log(`ℹ️ No schema files found in directories matching: ${serviceName}`);
36
+ }
37
+ return uniqueFiles;
38
+ }
39
+ catch (error) {
40
+ console.warn(`⚠️ Error searching for schema files: ${error.message}`);
41
+ return [];
42
+ }
43
+ };
44
+ const updateSchemaFile = (filePath, newContent) => {
45
+ try {
46
+ let currentContent = "";
47
+ if (fs.existsSync(filePath)) {
48
+ currentContent = fs.readFileSync(filePath, "utf8");
49
+ }
50
+ if (currentContent.trim() === newContent.trim()) {
51
+ console.log(` ℹ️ No changes needed for: ${filePath}`);
52
+ return false;
53
+ }
54
+ const dir = path.dirname(filePath);
55
+ fse.ensureDirSync(dir);
56
+ fs.writeFileSync(filePath, newContent, "utf8");
57
+ console.log(` ✅ Updated: ${filePath}`);
58
+ return true;
59
+ }
60
+ catch (error) {
61
+ console.error(` ❌ Failed to update ${filePath}: ${error.message}`);
62
+ return false;
63
+ }
64
+ };
65
+ export const updateLocalSchema = async ({ schemaUrl, schemaFile, output }) => {
66
+ try {
67
+ console.log("🔧 Starting local schema update process...");
68
+ console.log(`📡 Schema URL: ${schemaUrl}`);
69
+ console.log(`📄 New schema file: ${schemaFile}`);
70
+ const serviceName = extractServiceFromUrl(schemaUrl);
71
+ if (!serviceName) {
72
+ console.log("ℹ️ This is the main embrace API - no service-specific schema files to update");
73
+ const result = {
74
+ serviceName: "embrace",
75
+ updatedFiles: [],
76
+ hasChanges: false,
77
+ message: "Main embrace API - no service-specific schema files to update",
78
+ };
79
+ if (output) {
80
+ fse.ensureDirSync(path.dirname(output));
81
+ fs.writeFileSync(output, JSON.stringify(result, null, 2), "utf8");
82
+ console.log(`📊 Result written to: ${output}`);
83
+ }
84
+ return result;
85
+ }
86
+ console.log(`🎯 Service name: ${serviceName}`);
87
+ if (!fs.existsSync(schemaFile)) {
88
+ throw new Error(`Schema file not found: ${schemaFile}`);
89
+ }
90
+ const newSchemaContent = fs.readFileSync(schemaFile, "utf8");
91
+ const schemaFiles = findSchemaFiles(serviceName);
92
+ if (schemaFiles.length === 0) {
93
+ console.log("⚠️ No schema files found to update");
94
+ const result = {
95
+ serviceName,
96
+ updatedFiles: [],
97
+ hasChanges: false,
98
+ message: `No schema files found in directories matching: ${serviceName}`,
99
+ };
100
+ if (output) {
101
+ fse.ensureDirSync(path.dirname(output));
102
+ fs.writeFileSync(output, JSON.stringify(result, null, 2), "utf8");
103
+ console.log(`📊 Result written to: ${output}`);
104
+ }
105
+ return result;
106
+ }
107
+ console.log(`\n📝 Updating schema files...`);
108
+ const updatedFiles = [];
109
+ for (const file of schemaFiles) {
110
+ const wasUpdated = updateSchemaFile(file, newSchemaContent);
111
+ if (wasUpdated) {
112
+ updatedFiles.push(file);
113
+ }
114
+ }
115
+ const hasChanges = updatedFiles.length > 0;
116
+ console.log("");
117
+ if (hasChanges) {
118
+ console.log(`✅ Successfully updated ${updatedFiles.length} file(s)`);
119
+ }
120
+ else {
121
+ console.log(`ℹ️ All schema files are already up to date`);
122
+ }
123
+ const result = {
124
+ serviceName,
125
+ updatedFiles,
126
+ hasChanges,
127
+ message: hasChanges
128
+ ? `Updated ${updatedFiles.length} schema file(s)`
129
+ : "All schema files are already up to date",
130
+ };
131
+ if (output) {
132
+ fse.ensureDirSync(path.dirname(output));
133
+ fs.writeFileSync(output, JSON.stringify(result, null, 2), "utf8");
134
+ console.log(`📊 Result written to: ${output}`);
135
+ }
136
+ return result;
137
+ }
138
+ catch (error) {
139
+ console.error(`❌ Failed to update local schema: ${error.message}`);
140
+ throw error;
141
+ }
142
+ };
143
+ export default updateLocalSchema;
144
+ //# sourceMappingURL=update-local-schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"update-local-schema.js","sourceRoot":"","sources":["../../src/update-local-schema.js"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=update-local-schema.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"update-local-schema.test.d.ts","sourceRoot":"","sources":["../../src/update-local-schema.test.js"],"names":[],"mappings":""}
@@ -0,0 +1,143 @@
1
+ import fs from "fs";
2
+ import fse from "fs-extra";
3
+ import path from "path";
4
+ import { afterEach, beforeEach, describe, expect, it } from "vitest";
5
+ import { extractServiceFromUrl } from "./generate-schema-url.js";
6
+ import { updateLocalSchema } from "./update-local-schema.js";
7
+ describe("extractServiceFromUrl", () => {
8
+ it("should extract service name from dev service URL", () => {
9
+ const url = "https://api.integrations-plugins.services.dev.embrace.ai/graphql/schema";
10
+ expect(extractServiceFromUrl(url)).toBe("integrations-plugins");
11
+ });
12
+ it("should extract service name from prod service URL", () => {
13
+ const url = "https://api.integrations-plugins.services.embrace.ai/graphql/schema";
14
+ expect(extractServiceFromUrl(url)).toBe("integrations-plugins");
15
+ });
16
+ it("should extract service name from PR service URL", () => {
17
+ const url = "https://api.integrations-plugins.pr-123.services.dev.embrace.ai/graphql/schema";
18
+ expect(extractServiceFromUrl(url)).toBe("integrations-plugins");
19
+ });
20
+ it("should return null for main embrace API dev URL", () => {
21
+ const url = "https://api.dev.embrace.ai/v2/graphql/schema";
22
+ expect(extractServiceFromUrl(url)).toBe(null);
23
+ });
24
+ it("should return null for main embrace API PR URL", () => {
25
+ const url = "https://api.pr-123.dev.embrace.ai/v2/graphql/schema";
26
+ expect(extractServiceFromUrl(url)).toBe(null);
27
+ });
28
+ it("should handle multi-part service names", () => {
29
+ const url = "https://api.orgs-core.services.dev.embrace.ai/graphql/schema";
30
+ expect(extractServiceFromUrl(url)).toBe("orgs-core");
31
+ });
32
+ });
33
+ describe("updateLocalSchema", () => {
34
+ const testDir = path.join(process.cwd(), "test-temp-schema-update");
35
+ const schemaContent = `
36
+ type Query {
37
+ hello: String
38
+ }
39
+ `.trim();
40
+ const updatedSchemaContent = `
41
+ type Query {
42
+ hello: String
43
+ world: String
44
+ }
45
+ `.trim();
46
+ beforeEach(() => {
47
+ fse.ensureDirSync(testDir);
48
+ });
49
+ afterEach(() => {
50
+ if (fs.existsSync(testDir)) {
51
+ fse.removeSync(testDir);
52
+ }
53
+ });
54
+ it("should find and update schema files in matching directories", async () => {
55
+ const serviceName = "integrations-plugins";
56
+ const schemaDir = path.join(testDir, "packages/core/src/services", serviceName);
57
+ const schemaFile = path.join(schemaDir, "schema.graphql");
58
+ fse.ensureDirSync(schemaDir);
59
+ fs.writeFileSync(schemaFile, schemaContent, "utf8");
60
+ const newSchemaFile = path.join(testDir, "new-schema.graphql");
61
+ fs.writeFileSync(newSchemaFile, updatedSchemaContent, "utf8");
62
+ const outputFile = path.join(testDir, "result.json");
63
+ const result = await updateLocalSchema({
64
+ schemaUrl: `https://api.${serviceName}.services.dev.embrace.ai/graphql/schema`,
65
+ schemaFile: newSchemaFile,
66
+ output: outputFile,
67
+ });
68
+ expect(result.serviceName).toBe(serviceName);
69
+ expect(result.hasChanges).toBe(true);
70
+ expect(result.updatedFiles.length).toBeGreaterThan(0);
71
+ const updatedContent = fs.readFileSync(schemaFile, "utf8");
72
+ expect(updatedContent.trim()).toBe(updatedSchemaContent);
73
+ expect(fs.existsSync(outputFile)).toBe(true);
74
+ const outputData = JSON.parse(fs.readFileSync(outputFile, "utf8"));
75
+ expect(outputData.hasChanges).toBe(true);
76
+ expect(fs.existsSync(schemaFile)).toBe(true);
77
+ expect(fs.existsSync(newSchemaFile)).toBe(true);
78
+ });
79
+ it("should detect when no changes are needed", async () => {
80
+ const serviceName = "integrations-plugins";
81
+ const schemaDir = path.join(testDir, "packages/core/src/services", serviceName);
82
+ const schemaFile = path.join(schemaDir, "schema.graphql");
83
+ fse.ensureDirSync(schemaDir);
84
+ fs.writeFileSync(schemaFile, schemaContent, "utf8");
85
+ const newSchemaFile = path.join(testDir, "new-schema.graphql");
86
+ fs.writeFileSync(newSchemaFile, schemaContent, "utf8");
87
+ const outputFile = path.join(testDir, "result.json");
88
+ const result = await updateLocalSchema({
89
+ schemaUrl: `https://api.${serviceName}.services.dev.embrace.ai/graphql/schema`,
90
+ schemaFile: newSchemaFile,
91
+ output: outputFile,
92
+ });
93
+ expect(result.serviceName).toBe(serviceName);
94
+ expect(result.hasChanges).toBe(false);
95
+ expect(result.updatedFiles.length).toBe(0);
96
+ expect(fs.existsSync(schemaFile)).toBe(true);
97
+ expect(fs.existsSync(newSchemaFile)).toBe(true);
98
+ });
99
+ it("should handle main embrace API (no service name)", async () => {
100
+ const newSchemaFile = path.join(testDir, "new-schema.graphql");
101
+ fs.writeFileSync(newSchemaFile, schemaContent, "utf8");
102
+ const outputFile = path.join(testDir, "result.json");
103
+ const result = await updateLocalSchema({
104
+ schemaUrl: "https://api.dev.embrace.ai/v2/graphql/schema",
105
+ schemaFile: newSchemaFile,
106
+ output: outputFile,
107
+ });
108
+ expect(result.serviceName).toBe("embrace");
109
+ expect(result.hasChanges).toBe(false);
110
+ expect(result.updatedFiles.length).toBe(0);
111
+ expect(fs.existsSync(newSchemaFile)).toBe(true);
112
+ });
113
+ it("should handle multiple schema files in different directories", async () => {
114
+ const serviceName = "integrations-plugins";
115
+ const schemaDir1 = path.join(testDir, "packages/core/src/services", serviceName);
116
+ const schemaFile1 = path.join(schemaDir1, "schema.graphql");
117
+ const schemaDir2 = path.join(testDir, "apps", serviceName, "graphql");
118
+ const schemaFile2 = path.join(schemaDir2, "schema.graphql");
119
+ fse.ensureDirSync(schemaDir1);
120
+ fse.ensureDirSync(schemaDir2);
121
+ fs.writeFileSync(schemaFile1, schemaContent, "utf8");
122
+ fs.writeFileSync(schemaFile2, schemaContent, "utf8");
123
+ const newSchemaFile = path.join(testDir, "new-schema.graphql");
124
+ fs.writeFileSync(newSchemaFile, updatedSchemaContent, "utf8");
125
+ const outputFile = path.join(testDir, "result.json");
126
+ const result = await updateLocalSchema({
127
+ schemaUrl: `https://api.${serviceName}.services.dev.embrace.ai/graphql/schema`,
128
+ schemaFile: newSchemaFile,
129
+ output: outputFile,
130
+ });
131
+ expect(result.serviceName).toBe(serviceName);
132
+ expect(result.hasChanges).toBe(true);
133
+ expect(result.updatedFiles.length).toBeGreaterThanOrEqual(1);
134
+ const updatedContent1 = fs.readFileSync(schemaFile1, "utf8");
135
+ const updatedContent2 = fs.readFileSync(schemaFile2, "utf8");
136
+ expect(updatedContent1.trim()).toBe(updatedSchemaContent);
137
+ expect(updatedContent2.trim()).toBe(updatedSchemaContent);
138
+ expect(fs.existsSync(schemaFile1)).toBe(true);
139
+ expect(fs.existsSync(schemaFile2)).toBe(true);
140
+ expect(fs.existsSync(newSchemaFile)).toBe(true);
141
+ });
142
+ });
143
+ //# sourceMappingURL=update-local-schema.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"update-local-schema.test.js","sourceRoot":"","sources":["../../src/update-local-schema.test.js"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,GAAG,MAAM,UAAU,CAAC;AAC3B,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAErE,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAE7D,QAAQ,CAAC,uBAAuB,EAAE,GAAG,EAAE;IACrC,EAAE,CAAC,kDAAkD,EAAE,GAAG,EAAE;QAC1D,MAAM,GAAG,GACP,yEAAyE,CAAC;QAC5E,MAAM,CAAC,qBAAqB,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;IAClE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mDAAmD,EAAE,GAAG,EAAE;QAC3D,MAAM,GAAG,GACP,qEAAqE,CAAC;QACxE,MAAM,CAAC,qBAAqB,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;IAClE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iDAAiD,EAAE,GAAG,EAAE;QACzD,MAAM,GAAG,GACP,gFAAgF,CAAC;QACnF,MAAM,CAAC,qBAAqB,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;IAClE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iDAAiD,EAAE,GAAG,EAAE;QACzD,MAAM,GAAG,GAAG,8CAA8C,CAAC;QAC3D,MAAM,CAAC,qBAAqB,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAChD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gDAAgD,EAAE,GAAG,EAAE;QACxD,MAAM,GAAG,GAAG,qDAAqD,CAAC;QAClE,MAAM,CAAC,qBAAqB,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAChD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wCAAwC,EAAE,GAAG,EAAE;QAChD,MAAM,GAAG,GAAG,8DAA8D,CAAC;QAC3E,MAAM,CAAC,qBAAqB,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IACvD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,mBAAmB,EAAE,GAAG,EAAE;IACjC,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,yBAAyB,CAAC,CAAC;IACpE,MAAM,aAAa,GAAG;;;;CAIvB,CAAC,IAAI,EAAE,CAAC;IAEP,MAAM,oBAAoB,GAAG;;;;;CAK9B,CAAC,IAAI,EAAE,CAAC;IAEP,UAAU,CAAC,GAAG,EAAE;QAEd,GAAG,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;IAC7B,CAAC,CAAC,CAAC;IAEH,SAAS,CAAC,GAAG,EAAE;QAEb,IAAI,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;YAC3B,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QAC1B,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6DAA6D,EAAE,KAAK,IAAI,EAAE;QAE3E,MAAM,WAAW,GAAG,sBAAsB,CAAC;QAC3C,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CACzB,OAAO,EACP,4BAA4B,EAC5B,WAAW,CACZ,CAAC;QACF,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,gBAAgB,CAAC,CAAC;QAE1D,GAAG,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;QAC7B,EAAE,CAAC,aAAa,CAAC,UAAU,EAAE,aAAa,EAAE,MAAM,CAAC,CAAC;QAGpD,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,oBAAoB,CAAC,CAAC;QAC/D,EAAE,CAAC,aAAa,CAAC,aAAa,EAAE,oBAAoB,EAAE,MAAM,CAAC,CAAC;QAG9D,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;QAGrD,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAAC;YACrC,SAAS,EAAE,eAAe,WAAW,yCAAyC;YAC9E,UAAU,EAAE,aAAa;YACzB,MAAM,EAAE,UAAU;SACnB,CAAC,CAAC;QAGH,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAC7C,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACrC,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;QAGtD,MAAM,cAAc,GAAG,EAAE,CAAC,YAAY,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;QAC3D,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;QAGzD,MAAM,CAAC,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC7C,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC;QACnE,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAGzC,MAAM,CAAC,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAG7C,MAAM,CAAC,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAClD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,0CAA0C,EAAE,KAAK,IAAI,EAAE;QAExD,MAAM,WAAW,GAAG,sBAAsB,CAAC;QAC3C,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CACzB,OAAO,EACP,4BAA4B,EAC5B,WAAW,CACZ,CAAC;QACF,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,gBAAgB,CAAC,CAAC;QAE1D,GAAG,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;QAC7B,EAAE,CAAC,aAAa,CAAC,UAAU,EAAE,aAAa,EAAE,MAAM,CAAC,CAAC;QAGpD,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,oBAAoB,CAAC,CAAC;QAC/D,EAAE,CAAC,aAAa,CAAC,aAAa,EAAE,aAAa,EAAE,MAAM,CAAC,CAAC;QAGvD,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;QAGrD,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAAC;YACrC,SAAS,EAAE,eAAe,WAAW,yCAAyC;YAC9E,UAAU,EAAE,aAAa;YACzB,MAAM,EAAE,UAAU;SACnB,CAAC,CAAC;QAGH,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAC7C,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACtC,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAG3C,MAAM,CAAC,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAG7C,MAAM,CAAC,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAClD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kDAAkD,EAAE,KAAK,IAAI,EAAE;QAEhE,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,oBAAoB,CAAC,CAAC;QAC/D,EAAE,CAAC,aAAa,CAAC,aAAa,EAAE,aAAa,EAAE,MAAM,CAAC,CAAC;QAGvD,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;QAGrD,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAAC;YACrC,SAAS,EAAE,8CAA8C;YACzD,UAAU,EAAE,aAAa;YACzB,MAAM,EAAE,UAAU;SACnB,CAAC,CAAC;QAGH,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC3C,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACtC,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAG3C,MAAM,CAAC,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAClD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,8DAA8D,EAAE,KAAK,IAAI,EAAE;QAE5E,MAAM,WAAW,GAAG,sBAAsB,CAAC;QAE3C,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAC1B,OAAO,EACP,4BAA4B,EAC5B,WAAW,CACZ,CAAC;QACF,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,gBAAgB,CAAC,CAAC;QAE5D,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,SAAS,CAAC,CAAC;QACtE,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,gBAAgB,CAAC,CAAC;QAE5D,GAAG,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;QAC9B,GAAG,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;QAC9B,EAAE,CAAC,aAAa,CAAC,WAAW,EAAE,aAAa,EAAE,MAAM,CAAC,CAAC;QACrD,EAAE,CAAC,aAAa,CAAC,WAAW,EAAE,aAAa,EAAE,MAAM,CAAC,CAAC;QAGrD,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,oBAAoB,CAAC,CAAC;QAC/D,EAAE,CAAC,aAAa,CAAC,aAAa,EAAE,oBAAoB,EAAE,MAAM,CAAC,CAAC;QAG9D,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;QAGrD,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAAC;YACrC,SAAS,EAAE,eAAe,WAAW,yCAAyC;YAC9E,UAAU,EAAE,aAAa;YACzB,MAAM,EAAE,UAAU;SACnB,CAAC,CAAC;QAGH,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAC7C,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACrC,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC;QAG7D,MAAM,eAAe,GAAG,EAAE,CAAC,YAAY,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;QAC7D,MAAM,eAAe,GAAG,EAAE,CAAC,YAAY,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;QAC7D,MAAM,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;QAC1D,MAAM,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;QAG1D,MAAM,CAAC,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC9C,MAAM,CAAC,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAG9C,MAAM,CAAC,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAClD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@embrace-ai/infra-api-schema-sync",
3
- "version": "1.0.5",
3
+ "version": "1.0.7",
4
4
  "bin": {
5
5
  "api-tool": "./dist/src/index.js"
6
6
  },
@@ -22,7 +22,6 @@
22
22
  "keywords": [],
23
23
  "type": "module",
24
24
  "dependencies": {
25
- "@embrace-ai/common-sst-app-utils": "^1.8.2",
26
25
  "@graphql-codegen/cli": "^5.0.7",
27
26
  "@graphql-codegen/typescript": "^4.1.6",
28
27
  "@graphql-inspector/cli": "^5.0.8",
@@ -1,5 +1,3 @@
1
- import { AWS_REGION } from "@embrace-ai/common-sst-app-utils";
2
-
3
1
  import { createSignedFetch } from "@scaldwell77/aws-signed-fetch";
4
2
  import fs from "fs";
5
3
  import fse from "fs-extra";
@@ -10,9 +8,9 @@ export const fetchSchema = async ({ url, output }) => {
10
8
  console.log(`🔄 Fetching GraphQL schema from ${url}...`);
11
9
 
12
10
  // Create AWS signed fetch for API Gateway authentication
11
+ // Region is automatically picked up from AWS_REGION environment variable
13
12
  const signedFetch = createSignedFetch({
14
13
  service: "execute-api",
15
- awsRegion: AWS_REGION,
16
14
  });
17
15
 
18
16
  // Fetch schema SDL directly via GET
@@ -127,6 +127,34 @@ const extractServiceName = (repo) => {
127
127
  return serviceName;
128
128
  };
129
129
 
130
+ /**
131
+ * Extract service name from a schema URL (reverse of building URL)
132
+ * @param {string} url - Schema URL
133
+ * @returns {string|null} Service name or null if it's the main embrace API
134
+ * @example
135
+ * extractServiceFromUrl('https://api.integrations-plugins.services.dev.embrace.ai/graphql/schema')
136
+ * // returns 'integrations-plugins'
137
+ */
138
+ export const extractServiceFromUrl = (url) => {
139
+ // Match patterns like:
140
+ // https://api.integrations-plugins.services.dev.embrace.ai/graphql/schema
141
+ // https://api.integrations-plugins.services.embrace.ai/graphql/schema
142
+ // https://api.integrations-plugins.pr-123.services.dev.embrace.ai/graphql/schema
143
+ const serviceMatch = url.match(/api\.([^.]+)\.(?:pr-\d+\.)?services\./);
144
+ if (serviceMatch) {
145
+ return serviceMatch[1]; // e.g., "integrations-plugins"
146
+ }
147
+
148
+ // If it's the main embrace API, return null
149
+ // https://api.dev.embrace.ai/v2/graphql/schema
150
+ // https://api.pr-123.dev.embrace.ai/v2/graphql/schema
151
+ if (url.includes("/v2/graphql/schema")) {
152
+ return null;
153
+ }
154
+
155
+ return null;
156
+ };
157
+
130
158
  /**
131
159
  * CLI command handler
132
160
  */
package/src/index.js CHANGED
@@ -58,6 +58,22 @@ program
58
58
  return generateSchemaUrl(opts);
59
59
  });
60
60
 
61
+ program
62
+ .command("update-local-schema")
63
+ .description("Find and update local schema files based on schema URL")
64
+ .requiredOption(
65
+ "--schema-url <url>",
66
+ "Schema URL to extract service name from",
67
+ )
68
+ .requiredOption("--schema-file <file>", "Path to the new schema file")
69
+ .requiredOption("--output <file>", "JSON output file with update results")
70
+ .action(async (opts) => {
71
+ const { default: updateLocalSchema } = await import(
72
+ "./update-local-schema.js"
73
+ );
74
+ return updateLocalSchema(opts);
75
+ });
76
+
61
77
  program
62
78
  .command("dispatch-update")
63
79
  .description("Dispatch schema update events to organization repositories")