@zuplo/cli 6.62.16 → 6.63.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 (70) hide show
  1. package/dist/__tests__/integration/deploy.integration.test.js +59 -2
  2. package/dist/__tests__/integration/deploy.integration.test.js.map +1 -1
  3. package/dist/__tests__/integration/jest-mocks-setup.js +3 -6
  4. package/dist/__tests__/integration/jest-mocks-setup.js.map +1 -1
  5. package/dist/__tests__/integration/link.integration.test.js +11 -51
  6. package/dist/__tests__/integration/link.integration.test.js.map +1 -1
  7. package/dist/cli.js +0 -2
  8. package/dist/cli.js.map +1 -1
  9. package/dist/cmds/compile.d.ts +1 -0
  10. package/dist/cmds/compile.d.ts.map +1 -1
  11. package/dist/cmds/compile.js +1 -0
  12. package/dist/cmds/compile.js.map +1 -1
  13. package/dist/cmds/delete.d.ts.map +1 -1
  14. package/dist/cmds/delete.js +14 -0
  15. package/dist/cmds/delete.js.map +1 -1
  16. package/dist/cmds/deploy.d.ts.map +1 -1
  17. package/dist/cmds/deploy.js +22 -0
  18. package/dist/cmds/deploy.js.map +1 -1
  19. package/dist/cmds/dev.d.ts.map +1 -1
  20. package/dist/cmds/dev.js +15 -0
  21. package/dist/cmds/dev.js.map +1 -1
  22. package/dist/cmds/link.d.ts.map +1 -1
  23. package/dist/cmds/link.js +19 -1
  24. package/dist/cmds/link.js.map +1 -1
  25. package/dist/cmds/list.d.ts.map +1 -1
  26. package/dist/cmds/list.js +15 -1
  27. package/dist/cmds/list.js.map +1 -1
  28. package/dist/cmds/test.d.ts.map +1 -1
  29. package/dist/cmds/test.js +18 -0
  30. package/dist/cmds/test.js.map +1 -1
  31. package/dist/common/middleware/user-configuration.js +3 -3
  32. package/dist/common/middleware/user-configuration.js.map +1 -1
  33. package/dist/common/populate.js +3 -3
  34. package/dist/common/populate.js.map +1 -1
  35. package/dist/deploy/archive.d.ts.map +1 -1
  36. package/dist/deploy/archive.js +11 -6
  37. package/dist/deploy/archive.js.map +1 -1
  38. package/dist/deploy/archive.test.d.ts +2 -0
  39. package/dist/deploy/archive.test.d.ts.map +1 -0
  40. package/dist/deploy/archive.test.js +245 -0
  41. package/dist/deploy/archive.test.js.map +1 -0
  42. package/dist/editor/handler.d.ts.map +1 -1
  43. package/dist/editor/handler.js +2 -1
  44. package/dist/editor/handler.js.map +1 -1
  45. package/dist/list/handler.js +2 -2
  46. package/dist/list/handler.js.map +1 -1
  47. package/dist/source/migrate/dev-portal/handler.js +1 -0
  48. package/dist/source/migrate/dev-portal/handler.js.map +1 -1
  49. package/dist/tsconfig.tsbuildinfo +1 -1
  50. package/package.json +4 -4
  51. package/dist/__tests__/engine.test.d.ts +0 -2
  52. package/dist/__tests__/engine.test.d.ts.map +0 -1
  53. package/dist/__tests__/engine.test.js +0 -299
  54. package/dist/__tests__/engine.test.js.map +0 -1
  55. package/dist/cmds/convert.d.ts +0 -9
  56. package/dist/cmds/convert.d.ts.map +0 -1
  57. package/dist/cmds/convert.js +0 -24
  58. package/dist/cmds/convert.js.map +0 -1
  59. package/dist/convert/engine.d.ts +0 -14
  60. package/dist/convert/engine.d.ts.map +0 -1
  61. package/dist/convert/engine.js +0 -73
  62. package/dist/convert/engine.js.map +0 -1
  63. package/dist/convert/handler.d.ts +0 -5
  64. package/dist/convert/handler.d.ts.map +0 -1
  65. package/dist/convert/handler.js +0 -35
  66. package/dist/convert/handler.js.map +0 -1
  67. package/dist/convert/routes.legacy.d.ts +0 -88
  68. package/dist/convert/routes.legacy.d.ts.map +0 -1
  69. package/dist/convert/routes.legacy.js +0 -2
  70. package/dist/convert/routes.legacy.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"engine.test.js","sourceRoot":"","sources":["../../src/__tests__/engine.test.ts"],"names":[],"mappings":"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","sourcesContent":["import { describe, it } from \"node:test\";\nimport { expect } from \"chai\";\nimport { convertRoutes } from \"../convert/engine.js\";\nimport { RouteConfigFile } from \"../convert/routes.legacy.js\";\n\ndescribe(\"Routes.json Conversion Engine\", () => {\n it(\"should handle simple route conversion (no version)\", () => {\n const routesConfig: RouteConfigFile = {\n versions: [\n {\n name: \"v1\",\n pathPrefix: \"/v1\",\n },\n {\n name: \"none\",\n pathPrefix: \"\",\n },\n ],\n routes: [\n {\n methods: [\"GET\"],\n path: \"/test\",\n summary: \"Test route\",\n version: \"none\",\n corsPolicy: \"anything-goes\",\n description: \"This is a test route\",\n operationId: \"random\",\n handler: {\n export: \"urlRewriteHandler\",\n module: \"$import(@zuplo/runtime)\",\n options: {\n rewritePattern: \"https://jsonplaceholder.typicode.com/todos\",\n forwardSearch: true,\n },\n },\n },\n ],\n };\n const expected = {\n openapi: \"3.1.0\",\n info: {\n title: \"Converted from config/routes.json\",\n version: \"1.0.0\",\n },\n paths: {\n \"/test\": {\n get: {\n summary: \"Test route\",\n description: \"This is a test route\",\n operationId: \"random\",\n \"x-zuplo-route\": {\n corsPolicy: \"anything-goes\",\n handler: {\n export: \"urlRewriteHandler\",\n module: \"$import(@zuplo/runtime)\",\n options: {\n rewritePattern: \"https://jsonplaceholder.typicode.com/todos\",\n forwardSearch: true,\n },\n },\n },\n },\n \"x-zuplo-path\": {\n pathMode: \"url-pattern\",\n },\n },\n },\n };\n const actual = convertRoutes(routesConfig);\n expect(actual).to.deep.equal(expected);\n });\n\n it(\"should handle simple route conversion (with version)\", () => {\n const routesConfig: RouteConfigFile = {\n versions: [\n {\n name: \"v1\",\n pathPrefix: \"/v1\",\n },\n {\n name: \"none\",\n pathPrefix: \"\",\n },\n ],\n routes: [\n {\n methods: [\"GET\"],\n path: \"/test\",\n summary: \"Test route\",\n version: \"v1\",\n corsPolicy: \"anything-goes\",\n description: \"This is a test route\",\n operationId: \"random\",\n handler: {\n export: \"urlRewriteHandler\",\n module: \"$import(@zuplo/runtime)\",\n options: {\n rewritePattern: \"https://jsonplaceholder.typicode.com/todos\",\n forwardSearch: true,\n },\n },\n },\n ],\n };\n const expected = {\n openapi: \"3.1.0\",\n info: {\n title: \"Converted from config/routes.json\",\n version: \"1.0.0\",\n },\n paths: {\n \"/v1/test\": {\n get: {\n summary: \"Test route\",\n description: \"This is a test route\",\n operationId: \"random\",\n \"x-zuplo-route\": {\n corsPolicy: \"anything-goes\",\n handler: {\n export: \"urlRewriteHandler\",\n module: \"$import(@zuplo/runtime)\",\n options: {\n rewritePattern: \"https://jsonplaceholder.typicode.com/todos\",\n forwardSearch: true,\n },\n },\n },\n },\n \"x-zuplo-path\": {\n pathMode: \"url-pattern\",\n },\n },\n },\n };\n const actual = convertRoutes(routesConfig);\n expect(actual).to.deep.equal(expected);\n });\n\n it(\"should handle single route with multiple methods\", () => {\n const routesConfig: RouteConfigFile = {\n versions: [\n {\n name: \"v1\",\n pathPrefix: \"/v1\",\n },\n {\n name: \"none\",\n pathPrefix: \"\",\n },\n ],\n routes: [\n {\n methods: [\"GET\", \"POST\", \"HEAD\"],\n path: \"/test\",\n summary: \"Test route\",\n version: \"v1\",\n corsPolicy: \"anything-goes\",\n description: \"This is a test route\",\n operationId: \"random\",\n handler: {\n export: \"urlRewriteHandler\",\n module: \"$import(@zuplo/runtime)\",\n options: {\n rewritePattern: \"https://jsonplaceholder.typicode.com/todos\",\n forwardSearch: true,\n },\n },\n },\n ],\n };\n const expected = {\n openapi: \"3.1.0\",\n info: {\n title: \"Converted from config/routes.json\",\n version: \"1.0.0\",\n },\n paths: {\n \"/v1/test\": {\n \"get,post,head\": {\n summary: \"Test route\",\n description: \"This is a test route\",\n operationId: \"random\",\n \"x-zuplo-route\": {\n corsPolicy: \"anything-goes\",\n handler: {\n export: \"urlRewriteHandler\",\n module: \"$import(@zuplo/runtime)\",\n options: {\n rewritePattern: \"https://jsonplaceholder.typicode.com/todos\",\n forwardSearch: true,\n },\n },\n },\n },\n \"x-zuplo-path\": {\n pathMode: \"url-pattern\",\n },\n },\n },\n };\n const actual = convertRoutes(routesConfig);\n expect(actual).to.deep.equal(expected);\n });\n\n it(\"should handle single route with different methods\", () => {\n const routesConfig: RouteConfigFile = {\n versions: [\n {\n name: \"v1\",\n pathPrefix: \"/v1\",\n },\n {\n name: \"none\",\n pathPrefix: \"\",\n },\n ],\n routes: [\n {\n methods: [\"GET\"],\n path: \"/test\",\n summary: \"Test route\",\n description: \"This is a test route\",\n version: \"v1\",\n corsPolicy: \"anything-goes\",\n handler: {\n export: \"urlRewriteHandler\",\n module: \"$import(@zuplo/runtime)\",\n options: {\n rewritePattern: \"https://welcome.zuplo.io/\",\n forwardSearch: true,\n },\n },\n operationId: \"random1\",\n },\n {\n methods: [\"POST\"],\n path: \"/test\",\n summary: \"Test route\",\n description: \"This is a test route\",\n version: \"v1\",\n corsPolicy: \"anything-goes\",\n handler: {\n export: \"urlRewriteHandler\",\n module: \"$import(@zuplo/runtime)\",\n options: {\n rewritePattern: \"https://welcome.zuplo.io/\",\n forwardSearch: true,\n },\n },\n operationId: \"random2\",\n },\n ],\n };\n const expected = {\n openapi: \"3.1.0\",\n info: {\n title: \"Converted from config/routes.json\",\n version: \"1.0.0\",\n },\n paths: {\n \"/v1/test\": {\n get: {\n summary: \"Test route\",\n description: \"This is a test route\",\n operationId: \"random1\",\n \"x-zuplo-route\": {\n corsPolicy: \"anything-goes\",\n handler: {\n export: \"urlRewriteHandler\",\n module: \"$import(@zuplo/runtime)\",\n options: {\n rewritePattern: \"https://welcome.zuplo.io/\",\n forwardSearch: true,\n },\n },\n },\n },\n post: {\n summary: \"Test route\",\n description: \"This is a test route\",\n operationId: \"random2\",\n \"x-zuplo-route\": {\n corsPolicy: \"anything-goes\",\n handler: {\n export: \"urlRewriteHandler\",\n module: \"$import(@zuplo/runtime)\",\n options: {\n rewritePattern: \"https://welcome.zuplo.io/\",\n forwardSearch: true,\n },\n },\n },\n },\n \"x-zuplo-path\": {\n pathMode: \"url-pattern\",\n },\n },\n },\n };\n const actual = convertRoutes(routesConfig);\n expect(actual).to.deep.equal(expected);\n });\n});\n"]}
@@ -1,9 +0,0 @@
1
- import { Argv } from "yargs";
2
- declare const _default: {
3
- desc: string;
4
- command: string;
5
- builder: (yargs: Argv) => Argv<unknown>;
6
- handler: (argv: unknown) => Promise<void>;
7
- };
8
- export default _default;
9
- //# sourceMappingURL=convert.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"convert.d.ts","sourceRoot":"","sources":["../../src/cmds/convert.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,OAAO,CAAC;;;;qBASV,IAAI,KAAG,IAAI,CAAC,OAAO,CAAC;oBAWf,OAAO;;AAd/B,wBAkBE"}
@@ -1,24 +0,0 @@
1
- import { captureEvent } from "../common/analytics/lib.js";
2
- import { identify } from "../common/middleware/user-identification.js";
3
- import setBlocking from "../common/output.js";
4
- import { convert } from "../convert/handler.js";
5
- export default {
6
- desc: "Converts routes.json to routes.oas.json",
7
- command: "convert",
8
- builder: (yargs) => {
9
- return yargs
10
- .option("dir", {
11
- type: "string",
12
- describe: "The directory containing your config/routes.json",
13
- default: ".",
14
- normalize: true,
15
- hidden: true,
16
- })
17
- .middleware([setBlocking, identify]);
18
- },
19
- handler: async (argv) => {
20
- await captureEvent({ argv, event: "zuplo convert" });
21
- await convert(argv);
22
- },
23
- };
24
- //# sourceMappingURL=convert.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"convert.js","sourceRoot":"","sources":["../../src/cmds/convert.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAAE,QAAQ,EAAE,MAAM,6CAA6C,CAAC;AACvE,OAAO,WAAW,MAAM,qBAAqB,CAAC;AAC9C,OAAO,EAAa,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAE3D,eAAe;IACb,IAAI,EAAE,yCAAyC;IAC/C,OAAO,EAAE,SAAS;IAClB,OAAO,EAAE,CAAC,KAAW,EAAiB,EAAE;QACtC,OAAO,KAAK;aACT,MAAM,CAAC,KAAK,EAAE;YACb,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,kDAAkD;YAC5D,OAAO,EAAE,GAAG;YACZ,SAAS,EAAE,IAAI;YACf,MAAM,EAAE,IAAI;SACb,CAAC;aACD,UAAU,CAAC,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC,CAAC;IACzC,CAAC;IACD,OAAO,EAAE,KAAK,EAAE,IAAa,EAAE,EAAE;QAC/B,MAAM,YAAY,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,eAAe,EAAE,CAAC,CAAC;QACrD,MAAM,OAAO,CAAC,IAAiB,CAAC,CAAC;IACnC,CAAC;CACF,CAAC","sourcesContent":["import { Argv } from \"yargs\";\nimport { captureEvent } from \"../common/analytics/lib.js\";\nimport { identify } from \"../common/middleware/user-identification.js\";\nimport setBlocking from \"../common/output.js\";\nimport { Arguments, convert } from \"../convert/handler.js\";\n\nexport default {\n desc: \"Converts routes.json to routes.oas.json\",\n command: \"convert\",\n builder: (yargs: Argv): Argv<unknown> => {\n return yargs\n .option(\"dir\", {\n type: \"string\",\n describe: \"The directory containing your config/routes.json\",\n default: \".\",\n normalize: true,\n hidden: true,\n })\n .middleware([setBlocking, identify]);\n },\n handler: async (argv: unknown) => {\n await captureEvent({ argv, event: \"zuplo convert\" });\n await convert(argv as Arguments);\n },\n};\n"]}
@@ -1,14 +0,0 @@
1
- import { RouteConfigFile } from "./routes.legacy.js";
2
- export declare function convertRoutes(routesConfig: RouteConfigFile): {
3
- openapi: string;
4
- info: {
5
- title: string;
6
- version: string;
7
- };
8
- paths: {};
9
- };
10
- export declare function convertPolicies(routes: RouteConfigFile): {
11
- policies: import("./routes.legacy.js").PolicyConfigurationFragment[];
12
- corsPolicies: import("./routes.legacy.js").CorsPolicyConfiguration[];
13
- };
14
- //# sourceMappingURL=engine.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../../src/convert/engine.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAErD,wBAAgB,aAAa,CAAC,YAAY,EAAE,eAAe;;;;;;;EAsE1D;AAED,wBAAgB,eAAe,CAAC,MAAM,EAAE,eAAe;;;EAQtD"}
@@ -1,73 +0,0 @@
1
- import { join } from "node:path";
2
- export function convertRoutes(routesConfig) {
3
- const base = generateBaseOpenAPIConfig();
4
- const paths = base.paths;
5
- routesConfig.routes.forEach((route) => {
6
- const pathObjectKey = fullPath(route, routesConfig);
7
- let pathObject;
8
- if (!paths[pathObjectKey]) {
9
- pathObject = {};
10
- pathObject["x-zuplo-path"] = {
11
- pathMode: "url-pattern",
12
- };
13
- paths[pathObjectKey] = pathObject;
14
- }
15
- pathObject = paths[pathObjectKey];
16
- const operationKey = route.methods.map((m) => m.toLowerCase()).join(",");
17
- const operation = {};
18
- if (route.excludeFromOpenApi) {
19
- operation["x-internal"] = true;
20
- }
21
- operation["summary"] = route.summary;
22
- operation["description"] = route.description;
23
- operation["operationId"] = route.operationId;
24
- const routeWithOpenApi = route;
25
- if (routeWithOpenApi.parameters) {
26
- operation["parameters"] = routeWithOpenApi.parameters;
27
- }
28
- if (routeWithOpenApi.responses) {
29
- operation["responses"] = routeWithOpenApi.responses;
30
- }
31
- if (routeWithOpenApi.tags) {
32
- operation["tags"] = routeWithOpenApi.tags;
33
- }
34
- const xZuploRoute = {};
35
- if (route.corsPolicy)
36
- xZuploRoute["corsPolicy"] = route.corsPolicy;
37
- if (route.custom)
38
- xZuploRoute["custom"] = route.custom;
39
- if (route.policies)
40
- xZuploRoute["policies"] = route.policies;
41
- if (route.key)
42
- xZuploRoute["key"] = route.key;
43
- if (route.label)
44
- xZuploRoute["label"] = route.label;
45
- xZuploRoute["handler"] = route.handler;
46
- operation["x-zuplo-route"] = xZuploRoute;
47
- pathObject[operationKey] = operation;
48
- });
49
- return base;
50
- }
51
- export function convertPolicies(routes) {
52
- const policies = routes.policies;
53
- const corsPolicies = routes.corsPolicies;
54
- return {
55
- policies: policies ? [...policies] : [],
56
- corsPolicies: corsPolicies ? [...corsPolicies] : [],
57
- };
58
- }
59
- function generateBaseOpenAPIConfig() {
60
- return {
61
- openapi: "3.1.0",
62
- info: {
63
- title: "Converted from config/routes.json",
64
- version: "1.0.0",
65
- },
66
- paths: {},
67
- };
68
- }
69
- function fullPath(path, context) {
70
- const versionPrefix = context.versions.filter((v) => v.name === path.version)[0].pathPrefix;
71
- return join(versionPrefix, path.path);
72
- }
73
- //# sourceMappingURL=engine.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"engine.js","sourceRoot":"","sources":["../../src/convert/engine.ts"],"names":[],"mappings":"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","sourcesContent":["import { join } from \"node:path\";\nimport { RouteConfigFile } from \"./routes.legacy.js\";\n\nexport function convertRoutes(routesConfig: RouteConfigFile) {\n const base = generateBaseOpenAPIConfig();\n // biome-ignore lint/suspicious/noExplicitAny: Migrated from ESLint\n const paths = base.paths as any;\n\n routesConfig.routes.forEach((route) => {\n const pathObjectKey = fullPath(route, routesConfig);\n\n // biome-ignore lint/suspicious/noExplicitAny: Migrated from ESLint\n let pathObject: any;\n if (!paths[pathObjectKey]) {\n // biome-ignore lint/suspicious/noExplicitAny: Migrated from ESLint\n pathObject = {} as any;\n // Default the path to url-pattern\n pathObject[\"x-zuplo-path\"] = {\n pathMode: \"url-pattern\",\n };\n paths[pathObjectKey] = pathObject;\n }\n\n pathObject = paths[pathObjectKey];\n\n const operationKey = route.methods.map((m) => m.toLowerCase()).join(\",\");\n // biome-ignore lint/suspicious/noExplicitAny: Migrated from ESLint\n const operation = {} as any;\n\n if (route.excludeFromOpenApi) {\n operation[\"x-internal\"] = true;\n }\n\n operation[\"summary\"] = route.summary;\n operation[\"description\"] = route.description;\n operation[\"operationId\"] = route.operationId;\n\n // Support for openapi types we supported for a short time\n // for a while that some customers are actually using\n const routeWithOpenApi = route as {\n // biome-ignore lint/suspicious/noExplicitAny: Migrated from ESLint\n responses?: any;\n // biome-ignore lint/suspicious/noExplicitAny: Migrated from ESLint\n parameters?: any;\n // biome-ignore lint/suspicious/noExplicitAny: Migrated from ESLint\n tags?: any;\n };\n if (routeWithOpenApi.parameters) {\n operation[\"parameters\"] = routeWithOpenApi.parameters;\n }\n if (routeWithOpenApi.responses) {\n operation[\"responses\"] = routeWithOpenApi.responses;\n }\n if (routeWithOpenApi.tags) {\n operation[\"tags\"] = routeWithOpenApi.tags;\n }\n\n // biome-ignore lint/suspicious/noExplicitAny: Migrated from ESLint\n const xZuploRoute = {} as any;\n if (route.corsPolicy) xZuploRoute[\"corsPolicy\"] = route.corsPolicy;\n if (route.custom) xZuploRoute[\"custom\"] = route.custom;\n if (route.policies) xZuploRoute[\"policies\"] = route.policies;\n if (route.key) xZuploRoute[\"key\"] = route.key;\n if (route.label) xZuploRoute[\"label\"] = route.label;\n\n xZuploRoute[\"handler\"] = route.handler;\n\n operation[\"x-zuplo-route\"] = xZuploRoute;\n\n pathObject[operationKey] = operation;\n });\n\n return base;\n}\n\nexport function convertPolicies(routes: RouteConfigFile) {\n const policies = routes.policies;\n const corsPolicies = routes.corsPolicies;\n\n return {\n policies: policies ? [...policies] : [],\n corsPolicies: corsPolicies ? [...corsPolicies] : [],\n };\n}\n\n// Utilities\n////////////\n\nfunction generateBaseOpenAPIConfig() {\n return {\n openapi: \"3.1.0\",\n info: {\n title: \"Converted from config/routes.json\",\n version: \"1.0.0\",\n },\n paths: {},\n };\n}\n\nfunction fullPath(\n path: { path: string; version: string },\n context: RouteConfigFile\n) {\n const versionPrefix = context.versions.filter(\n (v) => v.name === path.version\n )[0].pathPrefix;\n return join(versionPrefix, path.path);\n}\n"]}
@@ -1,5 +0,0 @@
1
- export interface Arguments {
2
- dir: string;
3
- }
4
- export declare function convert(argv: Arguments): Promise<void>;
5
- //# sourceMappingURL=handler.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"handler.d.ts","sourceRoot":"","sources":["../../src/convert/handler.ts"],"names":[],"mappings":"AASA,MAAM,WAAW,SAAS;IACxB,GAAG,EAAE,MAAM,CAAC;CACb;AAED,wBAAsB,OAAO,CAAC,IAAI,EAAE,SAAS,iBAoC5C"}
@@ -1,35 +0,0 @@
1
- import { writeFileSync } from "node:fs";
2
- import { readFile } from "node:fs/promises";
3
- import { join, resolve } from "node:path";
4
- import { format } from "prettier";
5
- import { logger } from "../common/logger.js";
6
- import { printCriticalFailureToConsoleAndExit } from "../common/output.js";
7
- import { convertPolicies, convertRoutes } from "./engine.js";
8
- export async function convert(argv) {
9
- try {
10
- const normalizedDir = resolve(argv.dir);
11
- const rawRoutes = await readFile(join(normalizedDir, "config", "routes.json"));
12
- const routes = JSON.parse(rawRoutes.toString());
13
- const openApi = convertRoutes(routes);
14
- const openAPIFilePath = join(normalizedDir, "config", "routes.oas.json");
15
- const formattedOpenAPI = await format(JSON.stringify(openApi), {
16
- parser: "json-stringify",
17
- });
18
- writeFileSync(openAPIFilePath, formattedOpenAPI, {
19
- flag: "w",
20
- });
21
- const policies = convertPolicies(routes);
22
- const policiesFilePath = join(normalizedDir, "config", "policies.json");
23
- const formattedPolicies = await format(JSON.stringify(policies), {
24
- parser: "json-stringify",
25
- });
26
- writeFileSync(policiesFilePath, formattedPolicies, {
27
- flag: "w",
28
- });
29
- }
30
- catch (err) {
31
- logger.error(err);
32
- await printCriticalFailureToConsoleAndExit(err);
33
- }
34
- }
35
- //# sourceMappingURL=handler.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"handler.js","sourceRoot":"","sources":["../../src/convert/handler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACxC,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC7C,OAAO,EAAE,oCAAoC,EAAE,MAAM,qBAAqB,CAAC;AAC3E,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAO7D,MAAM,CAAC,KAAK,UAAU,OAAO,CAAC,IAAe;IAC3C,IAAI,CAAC;QAEH,MAAM,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACxC,MAAM,SAAS,GAAG,MAAM,QAAQ,CAC9B,IAAI,CAAC,aAAa,EAAE,QAAQ,EAAE,aAAa,CAAC,CAC7C,CAAC;QACF,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAoB,CAAC;QAGnE,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;QAGtC,MAAM,eAAe,GAAG,IAAI,CAAC,aAAa,EAAE,QAAQ,EAAE,iBAAiB,CAAC,CAAC;QACzE,MAAM,gBAAgB,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE;YAC7D,MAAM,EAAE,gBAAgB;SACzB,CAAC,CAAC;QACH,aAAa,CAAC,eAAe,EAAE,gBAAgB,EAAE;YAC/C,IAAI,EAAE,GAAG;SACV,CAAC,CAAC;QAGH,MAAM,QAAQ,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;QAGzC,MAAM,gBAAgB,GAAG,IAAI,CAAC,aAAa,EAAE,QAAQ,EAAE,eAAe,CAAC,CAAC;QACxE,MAAM,iBAAiB,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE;YAC/D,MAAM,EAAE,gBAAgB;SACzB,CAAC,CAAC;QACH,aAAa,CAAC,gBAAgB,EAAE,iBAAiB,EAAE;YACjD,IAAI,EAAE,GAAG;SACV,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAClB,MAAM,oCAAoC,CAAC,GAAG,CAAC,CAAC;IAClD,CAAC;AACH,CAAC","sourcesContent":["import { writeFileSync } from \"node:fs\";\nimport { readFile } from \"node:fs/promises\";\nimport { join, resolve } from \"node:path\";\nimport { format } from \"prettier\";\nimport { logger } from \"../common/logger.js\";\nimport { printCriticalFailureToConsoleAndExit } from \"../common/output.js\";\nimport { convertPolicies, convertRoutes } from \"./engine.js\";\nimport { RouteConfigFile } from \"./routes.legacy.js\";\n\nexport interface Arguments {\n dir: string;\n}\n\nexport async function convert(argv: Arguments) {\n try {\n // 1. Read the routes.json\n const normalizedDir = resolve(argv.dir);\n const rawRoutes = await readFile(\n join(normalizedDir, \"config\", \"routes.json\")\n );\n const routes = JSON.parse(rawRoutes.toString()) as RouteConfigFile;\n\n // 2. Convert to OpenAPI\n const openApi = convertRoutes(routes);\n\n // 3. Write to routes.oas.json\n const openAPIFilePath = join(normalizedDir, \"config\", \"routes.oas.json\");\n const formattedOpenAPI = await format(JSON.stringify(openApi), {\n parser: \"json-stringify\",\n });\n writeFileSync(openAPIFilePath, formattedOpenAPI, {\n flag: \"w\",\n });\n\n // 4. Extract policies\n const policies = convertPolicies(routes);\n\n // 5. Write policies\n const policiesFilePath = join(normalizedDir, \"config\", \"policies.json\");\n const formattedPolicies = await format(JSON.stringify(policies), {\n parser: \"json-stringify\",\n });\n writeFileSync(policiesFilePath, formattedPolicies, {\n flag: \"w\",\n });\n } catch (err) {\n logger.error(err);\n await printCriticalFailureToConsoleAndExit(err);\n }\n}\n"]}
@@ -1,88 +0,0 @@
1
- export interface RouteConfigFile {
2
- $schema?: string;
3
- versions: [VersionData, ...VersionData[]];
4
- routes: RouteConfigurationFragment[];
5
- policies?: PolicyConfigurationFragment[];
6
- corsPolicies?: CorsPolicyConfiguration[];
7
- }
8
- export interface VersionData {
9
- name: string;
10
- pathPrefix: string;
11
- info?: Info;
12
- openApiFile?: string;
13
- excludeFromOpenApi?: boolean;
14
- enforceOpenApi?: boolean;
15
- }
16
- export interface Info {
17
- title: string;
18
- summary?: string;
19
- description?: string;
20
- termsOfService?: string;
21
- version: string;
22
- [k: string]: unknown;
23
- }
24
- export interface RouteConfigurationFragment {
25
- operationId?: string;
26
- path: string;
27
- methods: (
28
- | "GET"
29
- | "HEAD"
30
- | "POST"
31
- | "PUT"
32
- | "DELETE"
33
- | "CONNECT"
34
- | "OPTIONS"
35
- | "TRACE"
36
- | "PATCH"
37
- )[];
38
- label?: string;
39
- enforceOpenApi?: boolean;
40
- key?: string;
41
- handler: HandlerDefinition;
42
- corsPolicy?: string;
43
- custom?: unknown;
44
- version: string;
45
- policies?: {
46
- inbound?: string[];
47
- outbound?: string[];
48
- };
49
- summary?: string;
50
- description?: string;
51
- excludeFromOpenApi?: boolean;
52
- tags?: string[];
53
- }
54
- export interface HandlerDefinition {
55
- module: string;
56
- export: string;
57
- options?: {
58
- [k: string]: unknown;
59
- };
60
- }
61
- export interface PolicyConfigurationFragment {
62
- name: string;
63
- policyType: string;
64
- handler: HandlerDefinition;
65
- options?: {
66
- [k: string]: unknown;
67
- };
68
- }
69
- export interface CorsPolicyConfiguration {
70
- name: string;
71
- allowCredentials?: boolean;
72
- maxAge?: number;
73
- allowedOrigins: string[];
74
- allowedMethods?: (
75
- | "GET"
76
- | "HEAD"
77
- | "POST"
78
- | "PUT"
79
- | "DELETE"
80
- | "CONNECT"
81
- | "OPTIONS"
82
- | "TRACE"
83
- | "PATCH"
84
- )[];
85
- allowedHeaders?: string[];
86
- exposeHeaders?: string[];
87
- }
88
- //# sourceMappingURL=routes.legacy.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"routes.legacy.d.ts","sourceRoot":"","sources":["../../src/convert/routes.legacy.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,eAAe;IAC9B,OAAO,CAAC,EAAE,MAAM,CAAC;IAIjB,QAAQ,EAAE,CAAC,WAAW,EAAE,GAAG,WAAW,EAAE,CAAC,CAAC;IAI1C,MAAM,EAAE,0BAA0B,EAAE,CAAC;IACrC,QAAQ,CAAC,EAAE,2BAA2B,EAAE,CAAC;IACzC,YAAY,CAAC,EAAE,uBAAuB,EAAE,CAAC;CAC1C;AAMD,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,IAAI,CAAC;IAIZ,WAAW,CAAC,EAAE,MAAM,CAAC;IAIrB,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAI7B,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAMD,MAAM,WAAW,IAAI;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;CACtB;AAMD,MAAM,WAAW,0BAA0B;IACzC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,CACL,KAAK,GACL,MAAM,GACN,MAAM,GACN,KAAK,GACL,QAAQ,GACR,SAAS,GACT,SAAS,GACT,OAAO,GACP,OAAO,CACV,EAAE,CAAC;IAIJ,KAAK,CAAC,EAAE,MAAM,CAAC;IAIf,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,iBAAiB,CAAC;IAC3B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE;QACT,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;QACnB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;KACrB,CAAC;IACF,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;CACjB;AAMD,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE;QACR,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;KACtB,CAAC;CACH;AAMD,MAAM,WAAW,2BAA2B;IAC1C,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,iBAAiB,CAAC;IAC3B,OAAO,CAAC,EAAE;QACR,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;KACtB,CAAC;CACH;AAMD,MAAM,WAAW,uBAAuB;IACtC,IAAI,EAAE,MAAM,CAAC;IACb,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,cAAc,CAAC,EAAE,CACb,KAAK,GACL,MAAM,GACN,MAAM,GACN,KAAK,GACL,QAAQ,GACR,SAAS,GACT,SAAS,GACT,OAAO,GACP,OAAO,CACV,EAAE,CAAC;IACJ,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;CAC1B"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=routes.legacy.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"routes.legacy.js","sourceRoot":"","sources":["../../src/convert/routes.legacy.ts"],"names":[],"mappings":"","sourcesContent":["/**\n * @deprecated This is the legacy route.json format, it should only be\n * used for conversion purposes.\n */\nexport interface RouteConfigFile {\n $schema?: string;\n /**\n * @minItems 1\n */\n versions: [VersionData, ...VersionData[]];\n /**\n * @minItems 0\n */\n routes: RouteConfigurationFragment[];\n policies?: PolicyConfigurationFragment[];\n corsPolicies?: CorsPolicyConfiguration[];\n}\n\n/**\n * @deprecated This is the legacy route.json format, it should only be\n * used for conversion purposes.\n */\nexport interface VersionData {\n name: string;\n pathPrefix: string;\n info?: Info;\n /**\n * The project relative path to the OpenAPI spec.\n */\n openApiFile?: string;\n /**\n * If false, OpenAPI documentation will not be generated for this version. If openApiFile is set this setting is ignored.\n */\n excludeFromOpenApi?: boolean;\n /**\n * If true, schema validation found in the OpenAPI spec will be enforced on requests/responses.\n */\n enforceOpenApi?: boolean;\n}\n\n/**\n * @deprecated This is the legacy route.json format, it should only be\n * used for conversion purposes.\n */\nexport interface Info {\n title: string;\n summary?: string;\n description?: string;\n termsOfService?: string;\n version: string;\n [k: string]: unknown;\n}\n\n/**\n * @deprecated This is the legacy route.json format, it should only be\n * used for conversion purposes.\n */\nexport interface RouteConfigurationFragment {\n operationId?: string;\n path: string;\n methods: (\n | \"GET\"\n | \"HEAD\"\n | \"POST\"\n | \"PUT\"\n | \"DELETE\"\n | \"CONNECT\"\n | \"OPTIONS\"\n | \"TRACE\"\n | \"PATCH\"\n )[];\n /**\n * An internal user-friendly identifier of the route.\n */\n label?: string;\n /**\n * If true, schema validation found in the OpenAPI spec will be enforced on requests/responses.\n */\n enforceOpenApi?: boolean;\n key?: string;\n handler: HandlerDefinition;\n corsPolicy?: string;\n custom?: unknown;\n version: string;\n policies?: {\n inbound?: string[];\n outbound?: string[];\n };\n summary?: string;\n description?: string;\n excludeFromOpenApi?: boolean;\n tags?: string[];\n}\n\n/**\n * @deprecated This is the legacy route.json format, it should only be\n * used for conversion purposes.\n */\nexport interface HandlerDefinition {\n module: string;\n export: string;\n options?: {\n [k: string]: unknown;\n };\n}\n\n/**\n * @deprecated This is the legacy route.json format, it should only be\n * used for conversion purposes.\n */\nexport interface PolicyConfigurationFragment {\n name: string;\n policyType: string;\n handler: HandlerDefinition;\n options?: {\n [k: string]: unknown;\n };\n}\n\n/**\n * @deprecated This is the legacy route.json format, it should only be\n * used for conversion purposes.\n */\nexport interface CorsPolicyConfiguration {\n name: string;\n allowCredentials?: boolean;\n maxAge?: number;\n allowedOrigins: string[];\n allowedMethods?: (\n | \"GET\"\n | \"HEAD\"\n | \"POST\"\n | \"PUT\"\n | \"DELETE\"\n | \"CONNECT\"\n | \"OPTIONS\"\n | \"TRACE\"\n | \"PATCH\"\n )[];\n allowedHeaders?: string[];\n exposeHeaders?: string[];\n}\n"]}