@seamapi/nextlove-sdk-generator 1.14.5 → 1.14.9
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/lib/generate-php-sdk/utils/deep-extract-resource-object-schemas.js +18 -3
- package/lib/generate-php-sdk/utils/deep-extract-resource-object-schemas.js.map +1 -1
- package/lib/generate-php-sdk/utils/generate-resource-object-class.js +13 -0
- package/lib/generate-php-sdk/utils/generate-resource-object-class.js.map +1 -1
- package/lib/generate-ruby-sdk/generate-ruby-sdk.js +6 -2
- package/lib/generate-ruby-sdk/generate-ruby-sdk.js.map +1 -1
- package/lib/generate-ruby-sdk/lib/get-entity-imports-template.d.ts +5 -1
- package/lib/generate-ruby-sdk/lib/get-entity-imports-template.js +4 -3
- package/lib/generate-ruby-sdk/lib/get-entity-imports-template.js.map +1 -1
- package/package.json +2 -2
- package/src/lib/generate-php-sdk/utils/deep-extract-resource-object-schemas.ts +25 -3
- package/src/lib/generate-php-sdk/utils/generate-resource-object-class.ts +20 -0
- package/src/lib/generate-ruby-sdk/generate-ruby-sdk.ts +6 -2
- package/src/lib/generate-ruby-sdk/lib/get-entity-imports-template.ts +14 -3
|
@@ -27,7 +27,9 @@ export function deepExtractResourceObjectSchemas({ schema_name, schema_body, })
|
|
|
27
27
|
const is_array_non_primitive_schema = !is_all_of_or_one_of_schema &&
|
|
28
28
|
property_schema.type === "array" &&
|
|
29
29
|
"items" in property_schema &&
|
|
30
|
-
"properties" in property_schema.items
|
|
30
|
+
("properties" in property_schema.items ||
|
|
31
|
+
"allOf" in property_schema.items ||
|
|
32
|
+
"oneOf" in property_schema.items);
|
|
31
33
|
const is_nullable_set = "nullable" in property_schema;
|
|
32
34
|
if (is_object_schema) {
|
|
33
35
|
property_schemas_with_type_references[property_name] = {
|
|
@@ -51,10 +53,23 @@ export function deepExtractResourceObjectSchemas({ schema_name, schema_body, })
|
|
|
51
53
|
nullable: property_schema.nullable,
|
|
52
54
|
}),
|
|
53
55
|
};
|
|
56
|
+
let schema_properties = property_schema.items?.properties;
|
|
57
|
+
let required_schema_property_names = property_schema.items
|
|
58
|
+
?.required;
|
|
59
|
+
if ("allOf" in property_schema.items ||
|
|
60
|
+
"oneOf" in property_schema.items) {
|
|
61
|
+
const flattened_schema = deepFlattenOneOfAndAllOfSchema(property_schema.items);
|
|
62
|
+
schema_properties =
|
|
63
|
+
"properties" in flattened_schema
|
|
64
|
+
? flattened_schema.properties
|
|
65
|
+
: flattened_schema;
|
|
66
|
+
required_schema_property_names =
|
|
67
|
+
"required" in flattened_schema ? flattened_schema.required : [];
|
|
68
|
+
}
|
|
54
69
|
createResourceSchema({
|
|
55
70
|
name: reference_object_type_name,
|
|
56
|
-
properties:
|
|
57
|
-
required_property_names:
|
|
71
|
+
properties: schema_properties,
|
|
72
|
+
required_property_names: required_schema_property_names,
|
|
58
73
|
});
|
|
59
74
|
}
|
|
60
75
|
else if (is_all_of_or_one_of_schema) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deep-extract-resource-object-schemas.js","sourceRoot":"","sources":["../../../src/lib/generate-php-sdk/utils/deep-extract-resource-object-schemas.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,8BAA8B,EAAE,MAAM,4CAA4C,CAAA;AAC3F,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AA8BxC,MAAM,UAAU,gCAAgC,CAAC,EAC/C,WAAW,EACX,WAAW,GAC4B;IACvC,MAAM,kCAAkC,GAGpC,EAAE,CAAA;IAEN,SAAS,oBAAoB,CAAC,EAC5B,IAAI,EACJ,UAAU,EACV,uBAAuB,GAAG,EAAE,GACD;QAC3B,IAAI,CAAC,kCAAkC,CAAC,IAAI,CAAC,EAAE;YAC7C,kCAAkC,CAAC,IAAI,CAAC,GAAG;gBACzC,IAAI,EAAE,UAAU,CAAC,IAAI,CAAC;gBACtB,UAAU,EAAE,sBAAsB,CAAC,UAAU,CAAC;gBAC9C,uBAAuB,EAAE,uBAAuB;aACjD,CAAA;SACF;IACH,CAAC;IAED,SAAS,sBAAsB,CAC7B,gBAA0C;QAE1C,MAAM,qCAAqC,GAGvC,EAAE,CAAA;QAEN,KAAK,MAAM,aAAa,IAAI,gBAAgB,EAAE;YAC5C,MAAM,eAAe,GAAG,gBAAgB,CAAC,aAAa,CAAmB,CAAA;YACzE,MAAM,0BAA0B,GAAG,UAAU,CAC3C,GAAG,WAAW,IAAI,aAAa,EAAE,CAClC,CAAA;YACD,IAAI,MAAM,IAAI,eAAe,EAAE;gBAC7B,OAAO,CAAC,KAAK,CAAC,sDAAsD,CAAC,CAAA;gBACrE,SAAQ;aACT;YAED,MAAM,0BAA0B,GAC9B,OAAO,IAAI,eAAe,IAAI,OAAO,IAAI,eAAe,CAAA;YAC1D,MAAM,gBAAgB,GACpB,CAAC,0BAA0B;gBAC3B,eAAe,CAAC,IAAI,KAAK,QAAQ;gBACjC,YAAY,IAAI,eAAe,CAAA;YACjC,MAAM,6BAA6B,GACjC,CAAC,0BAA0B;gBAC3B,eAAe,CAAC,IAAI,KAAK,OAAO;gBAChC,OAAO,IAAI,eAAe;gBAC1B,YAAY,IAAI,eAAe,CAAC,KAAK,CAAA;
|
|
1
|
+
{"version":3,"file":"deep-extract-resource-object-schemas.js","sourceRoot":"","sources":["../../../src/lib/generate-php-sdk/utils/deep-extract-resource-object-schemas.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,15 @@
|
|
|
1
1
|
import { getPhpType } from "./get-php-type.js";
|
|
2
|
+
const compareProperties = ([propA, schemaA], [propB, schemaB], required_property_names) => {
|
|
3
|
+
const aRequired = required_property_names.includes(propA);
|
|
4
|
+
const bRequired = required_property_names.includes(propB);
|
|
5
|
+
const aNullable = "nullable" in schemaA && schemaA.nullable;
|
|
6
|
+
const bNullable = "nullable" in schemaB && schemaB.nullable;
|
|
7
|
+
if (!aNullable !== !bNullable)
|
|
8
|
+
return !aNullable ? -1 : 1;
|
|
9
|
+
if (aRequired !== bRequired)
|
|
10
|
+
return aRequired ? -1 : 1;
|
|
11
|
+
return propA.localeCompare(propB);
|
|
12
|
+
};
|
|
2
13
|
export const generateResourceObjectClass = ({ resource_name, resource_properties, required_property_names, }) => {
|
|
3
14
|
// TODO: remove this when seam-connect is patched
|
|
4
15
|
if (resource_name.endsWith("Errors") || resource_name.endsWith("Warnings")) {
|
|
@@ -36,6 +47,7 @@ export const generateResourceObjectClass = ({ resource_name, resource_properties
|
|
|
36
47
|
}
|
|
37
48
|
return new self(
|
|
38
49
|
${Object.entries(resource_properties)
|
|
50
|
+
.sort((propA, propB) => compareProperties(propA, propB, required_property_names))
|
|
39
51
|
.map(([prop, prop_schema]) => generateTypeDefinition(prop, prop_schema))
|
|
40
52
|
.join("\n ")}
|
|
41
53
|
);
|
|
@@ -46,6 +58,7 @@ export const generateResourceObjectClass = ({ resource_name, resource_properties
|
|
|
46
58
|
return `
|
|
47
59
|
public function __construct(
|
|
48
60
|
${Object.entries(resource_properties)
|
|
61
|
+
.sort((propA, propB) => compareProperties(propA, propB, required_property_names))
|
|
49
62
|
.map(([prop_name, prop_schema]) => {
|
|
50
63
|
const is_object_referencing_resource = "type" in prop_schema &&
|
|
51
64
|
prop_schema.type === "object" &&
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generate-resource-object-class.js","sourceRoot":"","sources":["../../../src/lib/generate-php-sdk/utils/generate-resource-object-class.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;
|
|
1
|
+
{"version":3,"file":"generate-resource-object-class.js","sourceRoot":"","sources":["../../../src/lib/generate-php-sdk/utils/generate-resource-object-class.ts"],"names":[],"mappings":"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"}
|
|
@@ -111,9 +111,13 @@ export const generateRubySDK = async (options = {}) => {
|
|
|
111
111
|
const client_file_paths = Object.keys(fs).filter((f) => f.startsWith(lib_route_clients_path));
|
|
112
112
|
const imports_file_name = "index";
|
|
113
113
|
fs[`${lib_route_resources_path}/${imports_file_name}.rb`] =
|
|
114
|
-
generateEntityImportsTemplate(resource_file_paths
|
|
114
|
+
generateEntityImportsTemplate(resource_file_paths, {
|
|
115
|
+
custom_imports: ['require "seam/base_resource"'],
|
|
116
|
+
});
|
|
115
117
|
fs[`${lib_route_clients_path}/${imports_file_name}.rb`] =
|
|
116
|
-
generateEntityImportsTemplate(client_file_paths
|
|
118
|
+
generateEntityImportsTemplate(client_file_paths, {
|
|
119
|
+
custom_imports: ['require "seam/base_client"'],
|
|
120
|
+
});
|
|
117
121
|
fs[`${lib_routes_path}/routes.rb`] = routesRbTemplate(Object.keys(parent_to_child_resources_map));
|
|
118
122
|
return fs;
|
|
119
123
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generate-ruby-sdk.js","sourceRoot":"","sources":["../../src/lib/generate-ruby-sdk/generate-ruby-sdk.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"generate-ruby-sdk.js","sourceRoot":"","sources":["../../src/lib/generate-ruby-sdk/generate-ruby-sdk.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1,5 @@
|
|
|
1
|
-
|
|
1
|
+
interface ImportConfig {
|
|
2
|
+
custom_imports?: string[];
|
|
3
|
+
}
|
|
4
|
+
export declare const generateEntityImportsTemplate: (entity_file_paths: string[], config?: ImportConfig) => string;
|
|
5
|
+
export {};
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
export const generateEntityImportsTemplate = (entity_file_paths) => {
|
|
1
|
+
export const generateEntityImportsTemplate = (entity_file_paths, config) => {
|
|
2
2
|
const entity_names = extractEntityNamesFromFilePaths(entity_file_paths);
|
|
3
|
-
const imports_template = generateImportStatements(entity_names);
|
|
3
|
+
const imports_template = generateImportStatements(entity_names, config);
|
|
4
4
|
return imports_template;
|
|
5
5
|
};
|
|
6
6
|
const extractEntityNamesFromFilePaths = (entity_file_paths) => {
|
|
@@ -10,8 +10,9 @@ const extractEntityNamesFromFilePaths = (entity_file_paths) => {
|
|
|
10
10
|
return file_name ? file_name.replace(".rb", "") : "";
|
|
11
11
|
});
|
|
12
12
|
};
|
|
13
|
-
const generateImportStatements = (entity_names) => {
|
|
13
|
+
const generateImportStatements = (entity_names, config) => {
|
|
14
14
|
return `# frozen_string_literal: true\n
|
|
15
|
+
${config?.custom_imports ? `${config?.custom_imports.join("\n")}` : ""}
|
|
15
16
|
${entity_names.map((n) => `require_relative '${n}'`).join("\n")}`;
|
|
16
17
|
};
|
|
17
18
|
//# sourceMappingURL=get-entity-imports-template.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-entity-imports-template.js","sourceRoot":"","sources":["../../../src/lib/generate-ruby-sdk/lib/get-entity-imports-template.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"get-entity-imports-template.js","sourceRoot":"","sources":["../../../src/lib/generate-ruby-sdk/lib/get-entity-imports-template.ts"],"names":[],"mappings":"AAIA,MAAM,CAAC,MAAM,6BAA6B,GAAG,CAC3C,iBAA2B,EAC3B,MAAqB,EACrB,EAAE;IACF,MAAM,YAAY,GAAG,+BAA+B,CAAC,iBAAiB,CAAC,CAAA;IACvE,MAAM,gBAAgB,GAAG,wBAAwB,CAAC,YAAY,EAAE,MAAM,CAAC,CAAA;IAEvE,OAAO,gBAAgB,CAAA;AACzB,CAAC,CAAA;AAED,MAAM,+BAA+B,GAAG,CAAC,iBAA2B,EAAE,EAAE;IACtE,OAAO,iBAAiB,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE;QACzC,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;QAClC,MAAM,SAAS,GAAG,KAAK,CAAC,GAAG,EAAE,CAAA;QAE7B,OAAO,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;IACtD,CAAC,CAAC,CAAA;AACJ,CAAC,CAAA;AAED,MAAM,wBAAwB,GAAG,CAC/B,YAAsB,EACtB,MAAqB,EACrB,EAAE;IACF,OAAO;IACL,MAAM,EAAE,cAAc,CAAC,CAAC,CAAC,GAAG,MAAM,EAAE,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE;IACpE,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,qBAAqB,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAA;AACnE,CAAC,CAAA"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@seamapi/nextlove-sdk-generator",
|
|
3
|
-
"version": "1.14.
|
|
3
|
+
"version": "1.14.9",
|
|
4
4
|
"description": "Utilities for building NextLove SDK Generators",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "index.js",
|
|
@@ -21,7 +21,7 @@
|
|
|
21
21
|
],
|
|
22
22
|
"homepage": "https://github.com/seamapi/nextlove-sdk-generator",
|
|
23
23
|
"bugs": "https://github.com/seamapi/nextlove-sdk-generator/issues",
|
|
24
|
-
"repository": "seamapi/nextlove-sdk-generator",
|
|
24
|
+
"repository": "github:seamapi/nextlove-sdk-generator",
|
|
25
25
|
"license": "MIT",
|
|
26
26
|
"author": {
|
|
27
27
|
"name": "Seam Labs, Inc.",
|
|
@@ -81,7 +81,9 @@ export function deepExtractResourceObjectSchemas({
|
|
|
81
81
|
!is_all_of_or_one_of_schema &&
|
|
82
82
|
property_schema.type === "array" &&
|
|
83
83
|
"items" in property_schema &&
|
|
84
|
-
"properties" in property_schema.items
|
|
84
|
+
("properties" in property_schema.items ||
|
|
85
|
+
"allOf" in property_schema.items ||
|
|
86
|
+
"oneOf" in property_schema.items)
|
|
85
87
|
const is_nullable_set = "nullable" in property_schema
|
|
86
88
|
|
|
87
89
|
if (is_object_schema) {
|
|
@@ -107,10 +109,30 @@ export function deepExtractResourceObjectSchemas({
|
|
|
107
109
|
}),
|
|
108
110
|
}
|
|
109
111
|
|
|
112
|
+
let schema_properties = (property_schema.items as any)?.properties
|
|
113
|
+
let required_schema_property_names = (property_schema.items as any)
|
|
114
|
+
?.required
|
|
115
|
+
|
|
116
|
+
if (
|
|
117
|
+
"allOf" in property_schema.items ||
|
|
118
|
+
"oneOf" in property_schema.items
|
|
119
|
+
) {
|
|
120
|
+
const flattened_schema = deepFlattenOneOfAndAllOfSchema(
|
|
121
|
+
property_schema.items
|
|
122
|
+
)
|
|
123
|
+
|
|
124
|
+
schema_properties =
|
|
125
|
+
"properties" in flattened_schema
|
|
126
|
+
? flattened_schema.properties
|
|
127
|
+
: flattened_schema
|
|
128
|
+
required_schema_property_names =
|
|
129
|
+
"required" in flattened_schema ? flattened_schema.required : []
|
|
130
|
+
}
|
|
131
|
+
|
|
110
132
|
createResourceSchema({
|
|
111
133
|
name: reference_object_type_name,
|
|
112
|
-
properties:
|
|
113
|
-
required_property_names:
|
|
134
|
+
properties: schema_properties,
|
|
135
|
+
required_property_names: required_schema_property_names,
|
|
114
136
|
})
|
|
115
137
|
} else if (is_all_of_or_one_of_schema) {
|
|
116
138
|
const flattened_schema = deepFlattenOneOfAndAllOfSchema(property_schema)
|
|
@@ -1,6 +1,20 @@
|
|
|
1
1
|
import type { PropertySchemaWithReferenceObject } from "./deep-extract-resource-object-schemas.js"
|
|
2
2
|
import { getPhpType } from "./get-php-type.js"
|
|
3
3
|
|
|
4
|
+
const compareProperties = (
|
|
5
|
+
[propA, schemaA]: [string, PropertySchemaWithReferenceObject],
|
|
6
|
+
[propB, schemaB]: [string, PropertySchemaWithReferenceObject],
|
|
7
|
+
required_property_names: string[]
|
|
8
|
+
): number => {
|
|
9
|
+
const aRequired = required_property_names.includes(propA)
|
|
10
|
+
const bRequired = required_property_names.includes(propB)
|
|
11
|
+
const aNullable = "nullable" in schemaA && schemaA.nullable
|
|
12
|
+
const bNullable = "nullable" in schemaB && schemaB.nullable
|
|
13
|
+
|
|
14
|
+
if (!aNullable !== !bNullable) return !aNullable ? -1 : 1
|
|
15
|
+
if (aRequired !== bRequired) return aRequired ? -1 : 1
|
|
16
|
+
return propA.localeCompare(propB)
|
|
17
|
+
}
|
|
4
18
|
interface Params {
|
|
5
19
|
resource_name: string
|
|
6
20
|
resource_properties: Record<string, PropertySchemaWithReferenceObject>
|
|
@@ -65,6 +79,9 @@ export const generateResourceObjectClass = ({
|
|
|
65
79
|
}
|
|
66
80
|
return new self(
|
|
67
81
|
${Object.entries(resource_properties)
|
|
82
|
+
.sort((propA, propB) =>
|
|
83
|
+
compareProperties(propA, propB, required_property_names)
|
|
84
|
+
)
|
|
68
85
|
.map(([prop, prop_schema]) =>
|
|
69
86
|
generateTypeDefinition(prop, prop_schema)
|
|
70
87
|
)
|
|
@@ -78,6 +95,9 @@ export const generateResourceObjectClass = ({
|
|
|
78
95
|
return `
|
|
79
96
|
public function __construct(
|
|
80
97
|
${Object.entries(resource_properties)
|
|
98
|
+
.sort((propA, propB) =>
|
|
99
|
+
compareProperties(propA, propB, required_property_names)
|
|
100
|
+
)
|
|
81
101
|
.map(([prop_name, prop_schema]) => {
|
|
82
102
|
const is_object_referencing_resource =
|
|
83
103
|
"type" in prop_schema &&
|
|
@@ -146,9 +146,13 @@ export const generateRubySDK = async (options: SdkGeneratorOptions = {}) => {
|
|
|
146
146
|
const imports_file_name = "index"
|
|
147
147
|
|
|
148
148
|
fs[`${lib_route_resources_path}/${imports_file_name}.rb`] =
|
|
149
|
-
generateEntityImportsTemplate(resource_file_paths
|
|
149
|
+
generateEntityImportsTemplate(resource_file_paths, {
|
|
150
|
+
custom_imports: ['require "seam/base_resource"'],
|
|
151
|
+
})
|
|
150
152
|
fs[`${lib_route_clients_path}/${imports_file_name}.rb`] =
|
|
151
|
-
generateEntityImportsTemplate(client_file_paths
|
|
153
|
+
generateEntityImportsTemplate(client_file_paths, {
|
|
154
|
+
custom_imports: ['require "seam/base_client"'],
|
|
155
|
+
})
|
|
152
156
|
fs[`${lib_routes_path}/routes.rb`] = routesRbTemplate(
|
|
153
157
|
Object.keys(parent_to_child_resources_map)
|
|
154
158
|
)
|
|
@@ -1,6 +1,13 @@
|
|
|
1
|
-
|
|
1
|
+
interface ImportConfig {
|
|
2
|
+
custom_imports?: string[]
|
|
3
|
+
}
|
|
4
|
+
|
|
5
|
+
export const generateEntityImportsTemplate = (
|
|
6
|
+
entity_file_paths: string[],
|
|
7
|
+
config?: ImportConfig
|
|
8
|
+
) => {
|
|
2
9
|
const entity_names = extractEntityNamesFromFilePaths(entity_file_paths)
|
|
3
|
-
const imports_template = generateImportStatements(entity_names)
|
|
10
|
+
const imports_template = generateImportStatements(entity_names, config)
|
|
4
11
|
|
|
5
12
|
return imports_template
|
|
6
13
|
}
|
|
@@ -14,7 +21,11 @@ const extractEntityNamesFromFilePaths = (entity_file_paths: string[]) => {
|
|
|
14
21
|
})
|
|
15
22
|
}
|
|
16
23
|
|
|
17
|
-
const generateImportStatements = (
|
|
24
|
+
const generateImportStatements = (
|
|
25
|
+
entity_names: string[],
|
|
26
|
+
config?: ImportConfig
|
|
27
|
+
) => {
|
|
18
28
|
return `# frozen_string_literal: true\n
|
|
29
|
+
${config?.custom_imports ? `${config?.custom_imports.join("\n")}` : ""}
|
|
19
30
|
${entity_names.map((n) => `require_relative '${n}'`).join("\n")}`
|
|
20
31
|
}
|