@baseplate-dev/project-builder-server 0.5.0 → 0.5.1
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/dist/compiler/app-compiler.d.ts +1 -1
- package/dist/compiler/app-compiler.d.ts.map +1 -1
- package/dist/compiler/app-compiler.js +2 -3
- package/dist/compiler/app-compiler.js.map +1 -1
- package/dist/compiler/app-entry-builder.d.ts +2 -2
- package/dist/compiler/app-entry-builder.d.ts.map +1 -1
- package/dist/compiler/app-entry-builder.js +1 -1
- package/dist/compiler/app-entry-builder.js.map +1 -1
- package/dist/compiler/backend/backend-compiler.d.ts +1 -2
- package/dist/compiler/backend/backend-compiler.d.ts.map +1 -1
- package/dist/compiler/backend/backend-compiler.js +2 -2
- package/dist/compiler/backend/backend-compiler.js.map +1 -1
- package/dist/compiler/backend/fastify.d.ts.map +1 -1
- package/dist/compiler/backend/fastify.js +1 -2
- package/dist/compiler/backend/fastify.js.map +1 -1
- package/dist/compiler/backend/graphql.js +4 -4
- package/dist/compiler/backend/graphql.js.map +1 -1
- package/dist/compiler/backend/services.d.ts.map +1 -1
- package/dist/compiler/backend/services.js +6 -20
- package/dist/compiler/backend/services.js.map +1 -1
- package/dist/compiler/compile-packages.d.ts.map +1 -1
- package/dist/compiler/compile-packages.js +5 -24
- package/dist/compiler/compile-packages.js.map +1 -1
- package/dist/compiler/library/index.d.ts +1 -0
- package/dist/compiler/library/index.d.ts.map +1 -1
- package/dist/compiler/library/index.js +1 -0
- package/dist/compiler/library/index.js.map +1 -1
- package/dist/compiler/library/library-compiler.d.ts +2 -30
- package/dist/compiler/library/library-compiler.d.ts.map +1 -1
- package/dist/compiler/library/library-compiler.js +8 -63
- package/dist/compiler/library/library-compiler.js.map +1 -1
- package/dist/compiler/library/node-library-package-compiler.d.ts +3 -0
- package/dist/compiler/library/node-library-package-compiler.d.ts.map +1 -0
- package/dist/compiler/library/node-library-package-compiler.js +32 -0
- package/dist/compiler/library/node-library-package-compiler.js.map +1 -0
- package/dist/compiler/package-compiler.d.ts +0 -69
- package/dist/compiler/package-compiler.d.ts.map +1 -1
- package/dist/compiler/package-compiler.js +0 -51
- package/dist/compiler/package-compiler.js.map +1 -1
- package/dist/compiler/root/root-package-compiler.d.ts +2 -2
- package/dist/compiler/root/root-package-compiler.d.ts.map +1 -1
- package/dist/compiler/root/root-package-compiler.js +9 -7
- package/dist/compiler/root/root-package-compiler.js.map +1 -1
- package/dist/compiler/web/admin/crud/actions.d.ts.map +1 -1
- package/dist/compiler/web/admin/crud/actions.js +5 -29
- package/dist/compiler/web/admin/crud/actions.js.map +1 -1
- package/dist/compiler/web/admin/crud/columns.d.ts.map +1 -1
- package/dist/compiler/web/admin/crud/columns.js +9 -43
- package/dist/compiler/web/admin/crud/columns.js.map +1 -1
- package/dist/compiler/web/admin/crud/inputs.d.ts.map +1 -1
- package/dist/compiler/web/admin/crud/inputs.js +6 -150
- package/dist/compiler/web/admin/crud/inputs.js.map +1 -1
- package/dist/compiler/web/web-compiler.d.ts +1 -2
- package/dist/compiler/web/web-compiler.d.ts.map +1 -1
- package/dist/compiler/web/web-compiler.js.map +1 -1
- package/dist/core-modules/admin-crud-action-compiler.d.ts +4 -0
- package/dist/core-modules/admin-crud-action-compiler.d.ts.map +1 -0
- package/dist/core-modules/admin-crud-action-compiler.js +37 -0
- package/dist/core-modules/admin-crud-action-compiler.js.map +1 -0
- package/dist/core-modules/admin-crud-column-compiler.d.ts +4 -0
- package/dist/core-modules/admin-crud-column-compiler.d.ts.map +1 -0
- package/dist/core-modules/admin-crud-column-compiler.js +47 -0
- package/dist/core-modules/admin-crud-column-compiler.js.map +1 -0
- package/dist/core-modules/admin-crud-input-compiler.d.ts +4 -0
- package/dist/core-modules/admin-crud-input-compiler.d.ts.map +1 -0
- package/dist/core-modules/admin-crud-input-compiler.js +157 -0
- package/dist/core-modules/admin-crud-input-compiler.js.map +1 -0
- package/dist/core-modules/index.d.ts +3 -0
- package/dist/core-modules/index.d.ts.map +1 -0
- package/dist/core-modules/index.js +17 -0
- package/dist/core-modules/index.js.map +1 -0
- package/dist/core-modules/library-type-spec.d.ts +10 -0
- package/dist/core-modules/library-type-spec.d.ts.map +1 -0
- package/dist/core-modules/library-type-spec.js +18 -0
- package/dist/core-modules/library-type-spec.js.map +1 -0
- package/dist/core-modules/model-transformer-compiler.d.ts +4 -0
- package/dist/core-modules/model-transformer-compiler.d.ts.map +1 -0
- package/dist/core-modules/model-transformer-compiler.js +31 -0
- package/dist/core-modules/model-transformer-compiler.js.map +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.js +1 -0
- package/dist/plugins/node-plugin-store.d.ts.map +1 -1
- package/dist/plugins/node-plugin-store.js +3 -10
- package/dist/plugins/node-plugin-store.js.map +1 -1
- package/dist/project-definition/load-project-definition.js +3 -3
- package/dist/project-definition/load-project-definition.js.map +1 -1
- package/package.json +8 -8
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { adminCrudActionCompilerSpec, createPluginModule, } from '@baseplate-dev/project-builder-lib';
|
|
2
|
+
import { adminCrudDeleteActionGenerator, adminCrudEditActionGenerator, } from '@baseplate-dev/react-generators';
|
|
3
|
+
const adminCrudEditActionCompiler = {
|
|
4
|
+
name: 'edit',
|
|
5
|
+
compileAction: (definition, { order }) => adminCrudEditActionGenerator({
|
|
6
|
+
order,
|
|
7
|
+
position: definition.position,
|
|
8
|
+
}),
|
|
9
|
+
};
|
|
10
|
+
const adminCrudDeleteActionCompiler = {
|
|
11
|
+
name: 'delete',
|
|
12
|
+
compileAction: (definition, { order, model, modelCrudSection, definitionContainer }) => {
|
|
13
|
+
if (model.model.primaryKeyFieldRefs.length !== 1) {
|
|
14
|
+
throw new Error(`Model ${model.name} must have exactly one primary key field`);
|
|
15
|
+
}
|
|
16
|
+
return adminCrudDeleteActionGenerator({
|
|
17
|
+
order,
|
|
18
|
+
position: definition.position,
|
|
19
|
+
modelName: model.name,
|
|
20
|
+
nameField: definitionContainer.nameFromId(modelCrudSection.nameFieldRef),
|
|
21
|
+
idField: definitionContainer.nameFromId(model.model.primaryKeyFieldRefs[0]),
|
|
22
|
+
});
|
|
23
|
+
},
|
|
24
|
+
};
|
|
25
|
+
export const adminCrudActionCoreModule = createPluginModule({
|
|
26
|
+
name: 'admin-crud-action-compiler',
|
|
27
|
+
dependencies: {
|
|
28
|
+
adminCrudActionCompiler: adminCrudActionCompilerSpec,
|
|
29
|
+
},
|
|
30
|
+
initialize: ({ adminCrudActionCompiler }) => {
|
|
31
|
+
adminCrudActionCompiler.actions.addMany([
|
|
32
|
+
adminCrudEditActionCompiler,
|
|
33
|
+
adminCrudDeleteActionCompiler,
|
|
34
|
+
]);
|
|
35
|
+
},
|
|
36
|
+
});
|
|
37
|
+
//# sourceMappingURL=admin-crud-action-compiler.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"admin-crud-action-compiler.js","sourceRoot":"","sources":["../../src/core-modules/admin-crud-action-compiler.ts"],"names":[],"mappings":"AAMA,OAAO,EACL,2BAA2B,EAC3B,kBAAkB,GACnB,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EACL,8BAA8B,EAC9B,4BAA4B,GAC7B,MAAM,iCAAiC,CAAC;AAEzC,MAAM,2BAA2B,GAC/B;IACE,IAAI,EAAE,MAAM;IACZ,aAAa,EAAE,CAAC,UAAU,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CACvC,4BAA4B,CAAC;QAC3B,KAAK;QACL,QAAQ,EAAE,UAAU,CAAC,QAAQ;KAC9B,CAAC;CACL,CAAC;AAEJ,MAAM,6BAA6B,GACjC;IACE,IAAI,EAAE,QAAQ;IACd,aAAa,EAAE,CACb,UAAU,EACV,EAAE,KAAK,EAAE,KAAK,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,EACvD,EAAE;QACF,IAAI,KAAK,CAAC,KAAK,CAAC,mBAAmB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACjD,MAAM,IAAI,KAAK,CACb,SAAS,KAAK,CAAC,IAAI,0CAA0C,CAC9D,CAAC;QACJ,CAAC;QACD,OAAO,8BAA8B,CAAC;YACpC,KAAK;YACL,QAAQ,EAAE,UAAU,CAAC,QAAQ;YAC7B,SAAS,EAAE,KAAK,CAAC,IAAI;YACrB,SAAS,EAAE,mBAAmB,CAAC,UAAU,CACvC,gBAAgB,CAAC,YAAY,CAC9B;YACD,OAAO,EAAE,mBAAmB,CAAC,UAAU,CACrC,KAAK,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC,CAAC,CACnC;SACF,CAAC,CAAC;IACL,CAAC;CACF,CAAC;AAEJ,MAAM,CAAC,MAAM,yBAAyB,GAAG,kBAAkB,CAAC;IAC1D,IAAI,EAAE,4BAA4B;IAClC,YAAY,EAAE;QACZ,uBAAuB,EAAE,2BAA2B;KACrD;IACD,UAAU,EAAE,CAAC,EAAE,uBAAuB,EAAE,EAAE,EAAE;QAC1C,uBAAuB,CAAC,OAAO,CAAC,OAAO,CAAC;YACtC,2BAA2B;YAC3B,6BAA6B;SAC9B,CAAC,CAAC;IACL,CAAC;CACF,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"admin-crud-column-compiler.d.ts","sourceRoot":"","sources":["../../src/core-modules/admin-crud-column-compiler.ts"],"names":[],"mappings":"AAuEA,eAAO,MAAM,yBAAyB;;EAWpC,CAAC"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { adminCrudColumnCompilerSpec, createPluginModule, ModelFieldUtils, ModelUtils, } from '@baseplate-dev/project-builder-lib';
|
|
2
|
+
import { adminCrudForeignColumnGenerator, adminCrudTextColumnGenerator, } from '@baseplate-dev/react-generators';
|
|
3
|
+
const adminCrudTextColumnCompiler = {
|
|
4
|
+
name: 'text',
|
|
5
|
+
compileColumn: (column, options) => adminCrudTextColumnGenerator({
|
|
6
|
+
id: column.id,
|
|
7
|
+
label: column.label,
|
|
8
|
+
order: options.order,
|
|
9
|
+
modelField: options.definitionContainer.nameFromId(column.modelFieldRef),
|
|
10
|
+
}),
|
|
11
|
+
};
|
|
12
|
+
const adminCrudForeignColumnCompiler = {
|
|
13
|
+
name: 'foreign',
|
|
14
|
+
compileColumn: (column, { definitionContainer, model, order }) => {
|
|
15
|
+
const relation = model.model.relations?.find((r) => r.id === column.localRelationRef);
|
|
16
|
+
const localRelationName = definitionContainer.nameFromId(column.localRelationRef);
|
|
17
|
+
if (!relation) {
|
|
18
|
+
throw new Error(`Could not find relation ${localRelationName} in model ${model.name}`);
|
|
19
|
+
}
|
|
20
|
+
if (relation.references.length !== 1) {
|
|
21
|
+
throw new Error(`Only relations with a single reference are supported`);
|
|
22
|
+
}
|
|
23
|
+
const foreignModelIdFields = ModelUtils.byIdOrThrow(definitionContainer.definition, relation.modelRef).model.primaryKeyFieldRefs.map((ref) => definitionContainer.nameFromId(ref));
|
|
24
|
+
return adminCrudForeignColumnGenerator({
|
|
25
|
+
id: column.id,
|
|
26
|
+
label: column.label,
|
|
27
|
+
order,
|
|
28
|
+
relationName: localRelationName,
|
|
29
|
+
foreignModelIdFields,
|
|
30
|
+
isOptional: ModelFieldUtils.isRelationOptional(model, relation),
|
|
31
|
+
labelExpression: column.labelExpression,
|
|
32
|
+
});
|
|
33
|
+
},
|
|
34
|
+
};
|
|
35
|
+
export const adminCrudColumnCoreModule = createPluginModule({
|
|
36
|
+
name: 'admin-crud-column-compiler',
|
|
37
|
+
dependencies: {
|
|
38
|
+
adminCrudColumnCompiler: adminCrudColumnCompilerSpec,
|
|
39
|
+
},
|
|
40
|
+
initialize: ({ adminCrudColumnCompiler }) => {
|
|
41
|
+
adminCrudColumnCompiler.columns.addMany([
|
|
42
|
+
adminCrudTextColumnCompiler,
|
|
43
|
+
adminCrudForeignColumnCompiler,
|
|
44
|
+
]);
|
|
45
|
+
},
|
|
46
|
+
});
|
|
47
|
+
//# sourceMappingURL=admin-crud-column-compiler.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"admin-crud-column-compiler.js","sourceRoot":"","sources":["../../src/core-modules/admin-crud-column-compiler.ts"],"names":[],"mappings":"AAMA,OAAO,EACL,2BAA2B,EAC3B,kBAAkB,EAClB,eAAe,EACf,UAAU,GACX,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EACL,+BAA+B,EAC/B,4BAA4B,GAC7B,MAAM,iCAAiC,CAAC;AAEzC,MAAM,2BAA2B,GAC/B;IACE,IAAI,EAAE,MAAM;IACZ,aAAa,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE,CACjC,4BAA4B,CAAC;QAC3B,EAAE,EAAE,MAAM,CAAC,EAAE;QACb,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,UAAU,EAAE,OAAO,CAAC,mBAAmB,CAAC,UAAU,CAChD,MAAM,CAAC,aAAa,CACrB;KACF,CAAC;CACL,CAAC;AAEJ,MAAM,8BAA8B,GAClC;IACE,IAAI,EAAE,SAAS;IACf,aAAa,EAAE,CAAC,MAAM,EAAE,EAAE,mBAAmB,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE;QAC/D,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,SAAS,EAAE,IAAI,CAC1C,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,MAAM,CAAC,gBAAgB,CACxC,CAAC;QACF,MAAM,iBAAiB,GAAG,mBAAmB,CAAC,UAAU,CACtD,MAAM,CAAC,gBAAgB,CACxB,CAAC;QAEF,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,MAAM,IAAI,KAAK,CACb,2BAA2B,iBAAiB,aAAa,KAAK,CAAC,IAAI,EAAE,CACtE,CAAC;QACJ,CAAC;QAED,IAAI,QAAQ,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACrC,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAC;QAC1E,CAAC;QAED,MAAM,oBAAoB,GAAG,UAAU,CAAC,WAAW,CACjD,mBAAmB,CAAC,UAAU,EAC9B,QAAQ,CAAC,QAAQ,CAClB,CAAC,KAAK,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CACtC,mBAAmB,CAAC,UAAU,CAAC,GAAG,CAAC,CACpC,CAAC;QAEF,OAAO,+BAA+B,CAAC;YACrC,EAAE,EAAE,MAAM,CAAC,EAAE;YACb,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,KAAK;YACL,YAAY,EAAE,iBAAiB;YAC/B,oBAAoB;YACpB,UAAU,EAAE,eAAe,CAAC,kBAAkB,CAAC,KAAK,EAAE,QAAQ,CAAC;YAC/D,eAAe,EAAE,MAAM,CAAC,eAAe;SACxC,CAAC,CAAC;IACL,CAAC;CACF,CAAC;AAEJ,MAAM,CAAC,MAAM,yBAAyB,GAAG,kBAAkB,CAAC;IAC1D,IAAI,EAAE,4BAA4B;IAClC,YAAY,EAAE;QACZ,uBAAuB,EAAE,2BAA2B;KACrD;IACD,UAAU,EAAE,CAAC,EAAE,uBAAuB,EAAE,EAAE,EAAE;QAC1C,uBAAuB,CAAC,OAAO,CAAC,OAAO,CAAC;YACtC,2BAA2B;YAC3B,8BAA8B;SAC/B,CAAC,CAAC;IACL,CAAC;CACF,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"admin-crud-input-compiler.d.ts","sourceRoot":"","sources":["../../src/core-modules/admin-crud-input-compiler.ts"],"names":[],"mappings":"AAoPA,eAAO,MAAM,wBAAwB;;EAenC,CAAC"}
|
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
import { adminCrudInputCompilerSpec, createPluginModule, EnumUtils, ModelFieldUtils, ModelUtils, } from '@baseplate-dev/project-builder-lib';
|
|
2
|
+
import { adminCrudEmbeddedInputGenerator, adminCrudEnumInputGenerator, adminCrudForeignInputGenerator, adminCrudPasswordInputGenerator, adminCrudTextInputGenerator, } from '@baseplate-dev/react-generators';
|
|
3
|
+
const adminEnumInputCompiler = {
|
|
4
|
+
name: 'enum',
|
|
5
|
+
compileInput: (definition, { order, definitionContainer, model }) => {
|
|
6
|
+
const fieldConfig = model.model.fields.find((f) => f.id === definition.modelFieldRef);
|
|
7
|
+
if (fieldConfig?.type !== 'enum' || !fieldConfig.options.enumRef) {
|
|
8
|
+
throw new Error(`Admin enum input ${definition.modelFieldRef} is not an enum`);
|
|
9
|
+
}
|
|
10
|
+
const enumBlock = EnumUtils.byId(definitionContainer.definition, fieldConfig.options.enumRef);
|
|
11
|
+
if (!enumBlock) {
|
|
12
|
+
throw new Error(`Could not find enum type ${fieldConfig.options.enumRef ?? ''}`);
|
|
13
|
+
}
|
|
14
|
+
const fieldName = definitionContainer.nameFromId(definition.modelFieldRef);
|
|
15
|
+
return adminCrudEnumInputGenerator({
|
|
16
|
+
order,
|
|
17
|
+
modelField: fieldName,
|
|
18
|
+
label: definition.label,
|
|
19
|
+
isOptional: fieldConfig.isOptional,
|
|
20
|
+
options: enumBlock.values.map((v) => ({
|
|
21
|
+
label: v.friendlyName,
|
|
22
|
+
value: v.name,
|
|
23
|
+
})),
|
|
24
|
+
});
|
|
25
|
+
},
|
|
26
|
+
};
|
|
27
|
+
const adminForeignInputCompiler = {
|
|
28
|
+
name: 'foreign',
|
|
29
|
+
compileInput: (definition, { order, definitionContainer, model }) => {
|
|
30
|
+
const relation = model.model.relations?.find((r) => r.id === definition.localRelationRef);
|
|
31
|
+
if (!relation) {
|
|
32
|
+
throw new Error(`Could not find relation ${definition.localRelationRef} in model ${model.name}`);
|
|
33
|
+
}
|
|
34
|
+
if (relation.references.length !== 1) {
|
|
35
|
+
throw new Error(`Only relations with a single reference are supported`);
|
|
36
|
+
}
|
|
37
|
+
const localField = definitionContainer.nameFromId(relation.references[0].localRef);
|
|
38
|
+
const localFieldType = model.model.fields.find((f) => f.id === relation.references[0].localRef)?.type;
|
|
39
|
+
if (!localFieldType ||
|
|
40
|
+
(localFieldType !== 'string' && localFieldType !== 'uuid')) {
|
|
41
|
+
throw new Error(`Only string and uuid primary keys are supported for foreign inputs`);
|
|
42
|
+
}
|
|
43
|
+
return adminCrudForeignInputGenerator({
|
|
44
|
+
order,
|
|
45
|
+
label: definition.label,
|
|
46
|
+
localRelationName: relation.name,
|
|
47
|
+
isOptional: ModelFieldUtils.isRelationOptional(model, relation),
|
|
48
|
+
localField,
|
|
49
|
+
foreignModelName: definitionContainer.nameFromId(relation.modelRef),
|
|
50
|
+
labelExpression: definition.labelExpression,
|
|
51
|
+
valueExpression: definition.valueExpression,
|
|
52
|
+
valueType: localFieldType,
|
|
53
|
+
defaultLabel: definition.defaultLabel,
|
|
54
|
+
nullLabel: definition.nullLabel,
|
|
55
|
+
});
|
|
56
|
+
},
|
|
57
|
+
};
|
|
58
|
+
function getInputType(fieldConfig) {
|
|
59
|
+
switch (fieldConfig.type) {
|
|
60
|
+
case 'boolean': {
|
|
61
|
+
return 'checked';
|
|
62
|
+
}
|
|
63
|
+
case 'date': {
|
|
64
|
+
return 'date';
|
|
65
|
+
}
|
|
66
|
+
case 'dateTime': {
|
|
67
|
+
return 'dateTime';
|
|
68
|
+
}
|
|
69
|
+
default: {
|
|
70
|
+
return 'text';
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
function getIsNumber(fieldConfig) {
|
|
75
|
+
return fieldConfig.type === 'int' || fieldConfig.type === 'float';
|
|
76
|
+
}
|
|
77
|
+
const adminCrudTextInputCompiler = {
|
|
78
|
+
name: 'text',
|
|
79
|
+
compileInput: (definition, { order, definitionContainer, model }) => {
|
|
80
|
+
const fieldConfig = model.model.fields.find((f) => f.id === definition.modelFieldRef);
|
|
81
|
+
if (!fieldConfig) {
|
|
82
|
+
throw new Error(`Field ${definition.modelFieldRef} cannot be found in ${model.name}`);
|
|
83
|
+
}
|
|
84
|
+
const fieldName = definitionContainer.nameFromId(definition.modelFieldRef);
|
|
85
|
+
return adminCrudTextInputGenerator({
|
|
86
|
+
order,
|
|
87
|
+
label: definition.label,
|
|
88
|
+
modelField: fieldName,
|
|
89
|
+
type: getInputType(fieldConfig),
|
|
90
|
+
validation: definition.validation
|
|
91
|
+
? definition.validation
|
|
92
|
+
: ModelFieldUtils.getModelFieldValidation(definitionContainer.definition, model.id, fieldConfig.id, true),
|
|
93
|
+
isNumber: getIsNumber(fieldConfig),
|
|
94
|
+
});
|
|
95
|
+
},
|
|
96
|
+
};
|
|
97
|
+
const adminCrudEmbeddedInputCompiler = {
|
|
98
|
+
name: 'embedded',
|
|
99
|
+
compileInput: (definition, { order, definitionContainer, model }) => {
|
|
100
|
+
const relationName = definitionContainer.nameFromId(definition.modelRelationRef);
|
|
101
|
+
const relation = ModelUtils.getRelationsToModel(definitionContainer.definition, model.id).find((r) => r.relation.foreignId === definition.modelRelationRef);
|
|
102
|
+
if (!relation) {
|
|
103
|
+
throw new Error(`Could not find relation ${definition.modelRelationRef} in model ${model.name}`);
|
|
104
|
+
}
|
|
105
|
+
const idFields = ModelUtils.getPrimaryKeyFields(relation.model).map((f) => definitionContainer.nameFromId(f.id));
|
|
106
|
+
return adminCrudEmbeddedInputGenerator({
|
|
107
|
+
order,
|
|
108
|
+
id: definition.modelRelationRef,
|
|
109
|
+
idFields,
|
|
110
|
+
label: definition.label,
|
|
111
|
+
modelRelation: relationName,
|
|
112
|
+
embeddedFormRef: definition.embeddedFormRef,
|
|
113
|
+
});
|
|
114
|
+
},
|
|
115
|
+
};
|
|
116
|
+
const adminCrudEmbeddedLocalInputCompiler = {
|
|
117
|
+
name: 'embeddedLocal',
|
|
118
|
+
compileInput(definition, { order, definitionContainer, model }) {
|
|
119
|
+
const localRelation = ModelFieldUtils.relationByIdOrThrow(model, definition.localRelationRef);
|
|
120
|
+
const foreignModel = ModelUtils.byIdOrThrow(definitionContainer.definition, localRelation.modelRef);
|
|
121
|
+
const idFields = ModelUtils.getPrimaryKeyFields(foreignModel).map((f) => definitionContainer.nameFromId(f.id));
|
|
122
|
+
const localRelationName = definitionContainer.nameFromId(definition.localRelationRef);
|
|
123
|
+
return adminCrudEmbeddedInputGenerator({
|
|
124
|
+
order,
|
|
125
|
+
id: definition.localRelationRef,
|
|
126
|
+
idFields,
|
|
127
|
+
label: definition.label,
|
|
128
|
+
modelRelation: localRelationName,
|
|
129
|
+
isRequired: !ModelFieldUtils.isRelationOptional(model, localRelation),
|
|
130
|
+
embeddedFormRef: definition.embeddedFormRef,
|
|
131
|
+
});
|
|
132
|
+
},
|
|
133
|
+
};
|
|
134
|
+
const adminCrudPasswordInputCompiler = {
|
|
135
|
+
name: 'password',
|
|
136
|
+
compileInput: (definition, { order }) => adminCrudPasswordInputGenerator({
|
|
137
|
+
order,
|
|
138
|
+
label: definition.label,
|
|
139
|
+
}),
|
|
140
|
+
};
|
|
141
|
+
export const adminCrudInputCoreModule = createPluginModule({
|
|
142
|
+
name: 'admin-crud-input-compiler',
|
|
143
|
+
dependencies: {
|
|
144
|
+
adminCrudInputCompiler: adminCrudInputCompilerSpec,
|
|
145
|
+
},
|
|
146
|
+
initialize: ({ adminCrudInputCompiler }) => {
|
|
147
|
+
adminCrudInputCompiler.inputs.addMany([
|
|
148
|
+
adminEnumInputCompiler,
|
|
149
|
+
adminForeignInputCompiler,
|
|
150
|
+
adminCrudTextInputCompiler,
|
|
151
|
+
adminCrudEmbeddedInputCompiler,
|
|
152
|
+
adminCrudEmbeddedLocalInputCompiler,
|
|
153
|
+
adminCrudPasswordInputCompiler,
|
|
154
|
+
]);
|
|
155
|
+
},
|
|
156
|
+
});
|
|
157
|
+
//# sourceMappingURL=admin-crud-input-compiler.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"admin-crud-input-compiler.js","sourceRoot":"","sources":["../../src/core-modules/admin-crud-input-compiler.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/core-modules/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oCAAoC,CAAC;AAQ9E,eAAO,MAAM,mBAAmB,EAAE,mBAAmB,EAUlD,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { adminCrudActionCoreModule } from './admin-crud-action-compiler.js';
|
|
2
|
+
import { adminCrudColumnCoreModule } from './admin-crud-column-compiler.js';
|
|
3
|
+
import { adminCrudInputCoreModule } from './admin-crud-input-compiler.js';
|
|
4
|
+
import { libraryTypeCoreModule } from './library-type-spec.js';
|
|
5
|
+
import { modelTransformerCoreModule } from './model-transformer-compiler.js';
|
|
6
|
+
export const SERVER_CORE_MODULES = [
|
|
7
|
+
adminCrudActionCoreModule,
|
|
8
|
+
modelTransformerCoreModule,
|
|
9
|
+
adminCrudColumnCoreModule,
|
|
10
|
+
adminCrudInputCoreModule,
|
|
11
|
+
libraryTypeCoreModule,
|
|
12
|
+
].map((module) => ({
|
|
13
|
+
key: `core/server/${module.name}`,
|
|
14
|
+
pluginKey: 'core',
|
|
15
|
+
module,
|
|
16
|
+
}));
|
|
17
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/core-modules/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,yBAAyB,EAAE,MAAM,iCAAiC,CAAC;AAC5E,OAAO,EAAE,yBAAyB,EAAE,MAAM,iCAAiC,CAAC;AAC5E,OAAO,EAAE,wBAAwB,EAAE,MAAM,gCAAgC,CAAC;AAC1E,OAAO,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,EAAE,0BAA0B,EAAE,MAAM,iCAAiC,CAAC;AAE7E,MAAM,CAAC,MAAM,mBAAmB,GAA0B;IACxD,yBAAyB;IACzB,0BAA0B;IAC1B,yBAAyB;IACzB,wBAAwB;IACxB,qBAAqB;CACtB,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IACjB,GAAG,EAAE,eAAe,MAAM,CAAC,IAAI,EAAE;IACjC,SAAS,EAAE,MAAM;IACjB,MAAM;CACP,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Core module that registers package compilers.
|
|
3
|
+
*
|
|
4
|
+
* The schemas are already pre-populated in packageTypeSpec from project-builder-lib.
|
|
5
|
+
* This module registers the compile implementations that require server-side dependencies.
|
|
6
|
+
*/
|
|
7
|
+
export declare const libraryTypeCoreModule: import("@baseplate-dev/project-builder-lib").PluginModule<{
|
|
8
|
+
[x: string]: import("@baseplate-dev/project-builder-lib").PluginSpec<object, object>;
|
|
9
|
+
}>;
|
|
10
|
+
//# sourceMappingURL=library-type-spec.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"library-type-spec.d.ts","sourceRoot":"","sources":["../../src/core-modules/library-type-spec.ts"],"names":[],"mappings":"AAOA;;;;;GAKG;AACH,eAAO,MAAM,qBAAqB;;EAQhC,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { createPluginModule, libraryTypeSpec, } from '@baseplate-dev/project-builder-lib';
|
|
2
|
+
import { nodeLibraryCompilerCreator } from '#src/compiler/index.js';
|
|
3
|
+
/**
|
|
4
|
+
* Core module that registers package compilers.
|
|
5
|
+
*
|
|
6
|
+
* The schemas are already pre-populated in packageTypeSpec from project-builder-lib.
|
|
7
|
+
* This module registers the compile implementations that require server-side dependencies.
|
|
8
|
+
*/
|
|
9
|
+
export const libraryTypeCoreModule = createPluginModule({
|
|
10
|
+
name: 'package-compiler',
|
|
11
|
+
dependencies: {
|
|
12
|
+
libraryType: libraryTypeSpec,
|
|
13
|
+
},
|
|
14
|
+
initialize: ({ libraryType }) => {
|
|
15
|
+
libraryType.compilerCreators.add(nodeLibraryCompilerCreator);
|
|
16
|
+
},
|
|
17
|
+
});
|
|
18
|
+
//# sourceMappingURL=library-type-spec.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"library-type-spec.js","sourceRoot":"","sources":["../../src/core-modules/library-type-spec.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,EAClB,eAAe,GAChB,MAAM,oCAAoC,CAAC;AAE5C,OAAO,EAAE,0BAA0B,EAAE,MAAM,wBAAwB,CAAC;AAEpE;;;;;GAKG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,kBAAkB,CAAC;IACtD,IAAI,EAAE,kBAAkB;IACxB,YAAY,EAAE;QACZ,WAAW,EAAE,eAAe;KAC7B;IACD,UAAU,EAAE,CAAC,EAAE,WAAW,EAAE,EAAE,EAAE;QAC9B,WAAW,CAAC,gBAAgB,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC;IAC/D,CAAC;CACF,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"model-transformer-compiler.d.ts","sourceRoot":"","sources":["../../src/core-modules/model-transformer-compiler.ts"],"names":[],"mappings":"AA8CA,eAAO,MAAM,0BAA0B;;EAUrC,CAAC"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { prismaDataNestedFieldGenerator } from '@baseplate-dev/fastify-generators';
|
|
2
|
+
import { createPluginModule, modelTransformerCompilerSpec, ModelUtils, } from '@baseplate-dev/project-builder-lib';
|
|
3
|
+
const embeddedRelationTransformerCompiler = {
|
|
4
|
+
name: 'embeddedRelation',
|
|
5
|
+
compileField(definition, { definitionContainer, model }) {
|
|
6
|
+
// find foreign relation
|
|
7
|
+
const nestedRelation = ModelUtils.getRelationsToModel(definitionContainer.definition, model.id).find(({ relation }) => relation.foreignId === definition.foreignRelationRef);
|
|
8
|
+
if (!nestedRelation) {
|
|
9
|
+
throw new Error(`Could not find relation ${definition.foreignRelationRef} for nested relation field`);
|
|
10
|
+
}
|
|
11
|
+
return prismaDataNestedFieldGenerator({
|
|
12
|
+
modelName: model.name,
|
|
13
|
+
relationName: definitionContainer.nameFromId(definition.foreignRelationRef),
|
|
14
|
+
nestedModelName: nestedRelation.model.name,
|
|
15
|
+
scalarFieldNames: definition.embeddedFieldNames.map((e) => definitionContainer.nameFromId(e)),
|
|
16
|
+
virtualInputFieldNames: definition.embeddedTransformerNames?.map((t) => definitionContainer.nameFromId(t)),
|
|
17
|
+
});
|
|
18
|
+
},
|
|
19
|
+
};
|
|
20
|
+
export const modelTransformerCoreModule = createPluginModule({
|
|
21
|
+
name: 'model-transformer-compiler',
|
|
22
|
+
dependencies: {
|
|
23
|
+
modelTransformerCompiler: modelTransformerCompilerSpec,
|
|
24
|
+
},
|
|
25
|
+
initialize: ({ modelTransformerCompiler }) => {
|
|
26
|
+
modelTransformerCompiler.transformers.addMany([
|
|
27
|
+
embeddedRelationTransformerCompiler,
|
|
28
|
+
]);
|
|
29
|
+
},
|
|
30
|
+
});
|
|
31
|
+
//# sourceMappingURL=model-transformer-compiler.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"model-transformer-compiler.js","sourceRoot":"","sources":["../../src/core-modules/model-transformer-compiler.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,8BAA8B,EAAE,MAAM,mCAAmC,CAAC;AACnF,OAAO,EACL,kBAAkB,EAClB,4BAA4B,EAC5B,UAAU,GACX,MAAM,oCAAoC,CAAC;AAE5C,MAAM,mCAAmC,GACvC;IACE,IAAI,EAAE,kBAAkB;IACxB,YAAY,CAAC,UAAU,EAAE,EAAE,mBAAmB,EAAE,KAAK,EAAE;QACrD,wBAAwB;QACxB,MAAM,cAAc,GAAG,UAAU,CAAC,mBAAmB,CACnD,mBAAmB,CAAC,UAAU,EAC9B,KAAK,CAAC,EAAE,CACT,CAAC,IAAI,CACJ,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,QAAQ,CAAC,SAAS,KAAK,UAAU,CAAC,kBAAkB,CACvE,CAAC;QAEF,IAAI,CAAC,cAAc,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CACb,2BAA2B,UAAU,CAAC,kBAAkB,4BAA4B,CACrF,CAAC;QACJ,CAAC;QAED,OAAO,8BAA8B,CAAC;YACpC,SAAS,EAAE,KAAK,CAAC,IAAI;YACrB,YAAY,EAAE,mBAAmB,CAAC,UAAU,CAC1C,UAAU,CAAC,kBAAkB,CAC9B;YACD,eAAe,EAAE,cAAc,CAAC,KAAK,CAAC,IAAI;YAC1C,gBAAgB,EAAE,UAAU,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CACxD,mBAAmB,CAAC,UAAU,CAAC,CAAC,CAAC,CAClC;YACD,sBAAsB,EAAE,UAAU,CAAC,wBAAwB,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CACrE,mBAAmB,CAAC,UAAU,CAAC,CAAC,CAAC,CAClC;SACF,CAAC,CAAC;IACL,CAAC;CACF,CAAC;AAEJ,MAAM,CAAC,MAAM,0BAA0B,GAAG,kBAAkB,CAAC;IAC3D,IAAI,EAAE,4BAA4B;IAClC,YAAY,EAAE;QACZ,wBAAwB,EAAE,4BAA4B;KACvD;IACD,UAAU,EAAE,CAAC,EAAE,wBAAwB,EAAE,EAAE,EAAE;QAC3C,wBAAwB,CAAC,YAAY,CAAC,OAAO,CAAC;YAC5C,mCAAmC;SACpC,CAAC,CAAC;IACL,CAAC;CACF,CAAC,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -2,6 +2,7 @@ export * from './actions/index.js';
|
|
|
2
2
|
export * from './api/index.js';
|
|
3
3
|
export * from './compiler/index.js';
|
|
4
4
|
export * from './constants/index.js';
|
|
5
|
+
export * from './core-modules/index.js';
|
|
5
6
|
export * from './diff/index.js';
|
|
6
7
|
export * from './plugins/index.js';
|
|
7
8
|
export * from './server/index.js';
|
package/dist/index.js
CHANGED
|
@@ -2,6 +2,7 @@ export * from './actions/index.js';
|
|
|
2
2
|
export * from './api/index.js';
|
|
3
3
|
export * from './compiler/index.js';
|
|
4
4
|
export * from './constants/index.js';
|
|
5
|
+
export * from './core-modules/index.js';
|
|
5
6
|
export * from './diff/index.js';
|
|
6
7
|
export * from './plugins/index.js';
|
|
7
8
|
export * from './server/index.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"node-plugin-store.d.ts","sourceRoot":"","sources":["../../src/plugins/node-plugin-store.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,uBAAuB,EAEvB,WAAW,EACX,WAAW,EACX,mBAAmB,EACpB,MAAM,oCAAoC,CAAC;AAC5C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"node-plugin-store.d.ts","sourceRoot":"","sources":["../../src/plugins/node-plugin-store.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,uBAAuB,EAEvB,WAAW,EACX,WAAW,EACX,mBAAmB,EACpB,MAAM,oCAAoC,CAAC;AAC5C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AASlD,wBAAsB,qBAAqB,CACzC,OAAO,EAAE,uBAAuB,EAAE,GACjC,OAAO,CAAC,WAAW,CAAC,CAuBtB;AAED,wBAAsB,kCAAkC,CACtD,gBAAgB,EAAE,MAAM,EACxB,MAAM,EAAE,MAAM,EACd,cAAc,EAAE,uBAAuB,EAAE,GACxC,OAAO,CAAC,WAAW,CAAC,CAStB;AAED,wBAAsB,6BAA6B,CACjD,OAAO,EAAE,WAAW,EACpB,MAAM,EAAE,MAAM,EACd,cAAc,EAAE,uBAAuB,EAAE,EACzC,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,mBAAmB,CAAC,CAU9B"}
|
|
@@ -1,14 +1,7 @@
|
|
|
1
|
-
import { adminCrudActionCompilerSpec, adminCrudColumnCompilerSpec, adminCrudInputCompilerSpec, appCompilerSpec, modelTransformerCompilerSpec, } from '@baseplate-dev/project-builder-lib';
|
|
2
1
|
import path from 'node:path';
|
|
3
2
|
import { pathToFileURL } from 'node:url';
|
|
3
|
+
import { SERVER_CORE_MODULES } from '#src/core-modules/index.js';
|
|
4
4
|
import { discoverPlugins } from './plugin-discovery.js';
|
|
5
|
-
const NODE_SPEC_IMPLEMENTATIONS = [
|
|
6
|
-
modelTransformerCompilerSpec,
|
|
7
|
-
adminCrudInputCompilerSpec,
|
|
8
|
-
adminCrudActionCompilerSpec,
|
|
9
|
-
adminCrudColumnCompilerSpec,
|
|
10
|
-
appCompilerSpec,
|
|
11
|
-
];
|
|
12
5
|
export async function createNodePluginStore(plugins) {
|
|
13
6
|
const pluginsWithModules = await Promise.all(plugins.map(async (plugin) => ({
|
|
14
7
|
metadata: plugin,
|
|
@@ -16,14 +9,14 @@ export async function createNodePluginStore(plugins) {
|
|
|
16
9
|
const mod = (await import(pathToFileURL(modulePath).href));
|
|
17
10
|
const unwrappedModule = 'default' in mod ? mod.default : mod;
|
|
18
11
|
return {
|
|
19
|
-
|
|
12
|
+
directory: path.relative(plugin.pluginDirectory, modulePath),
|
|
20
13
|
module: unwrappedModule,
|
|
21
14
|
};
|
|
22
15
|
})),
|
|
23
16
|
})));
|
|
24
17
|
return {
|
|
25
18
|
availablePlugins: pluginsWithModules,
|
|
26
|
-
|
|
19
|
+
coreModules: SERVER_CORE_MODULES,
|
|
27
20
|
};
|
|
28
21
|
}
|
|
29
22
|
export async function createNodePluginStoreFromDirectory(projectDirectory, logger, builtinPlugins) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"node-plugin-store.js","sourceRoot":"","sources":["../../src/plugins/node-plugin-store.ts"],"names":[],"mappings":"AASA,OAAO,
|
|
1
|
+
{"version":3,"file":"node-plugin-store.js","sourceRoot":"","sources":["../../src/plugins/node-plugin-store.ts"],"names":[],"mappings":"AASA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAEjE,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAExD,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,OAAkC;IAElC,MAAM,kBAAkB,GAAG,MAAM,OAAO,CAAC,GAAG,CAC1C,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC;QAC7B,QAAQ,EAAE,MAAM;QAChB,OAAO,EAAE,MAAM,OAAO,CAAC,GAAG,CACxB,MAAM,CAAC,eAAe,CAAC,GAAG,CAAC,KAAK,EAAE,UAAU,EAAE,EAAE;YAC9C,MAAM,GAAG,GAAG,CAAC,MAAM,MAAM,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,CAEzC,CAAC;YACjB,MAAM,eAAe,GAAG,SAAS,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC;YAE7D,OAAO;gBACL,SAAS,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,eAAe,EAAE,UAAU,CAAC;gBAC5D,MAAM,EAAE,eAAe;aACxB,CAAC;QACJ,CAAC,CAAC,CACH;KACF,CAAC,CAAC,CACJ,CAAC;IACF,OAAO;QACL,gBAAgB,EAAE,kBAAkB;QACpC,WAAW,EAAE,mBAAmB;KACjC,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,kCAAkC,CACtD,gBAAwB,EACxB,MAAc,EACd,cAAyC;IAEzC,MAAM,OAAO,GAAG,MAAM,eAAe,CAAC,gBAAgB,EAAE,MAAM,CAAC,CAAC;IAChE,MAAM,UAAU,GAAG;QACjB,GAAG,OAAO;QACV,GAAG,cAAc,CAAC,MAAM,CACtB,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,WAAW,KAAK,CAAC,CAAC,WAAW,CAAC,CAC/D;KACF,CAAC;IACF,OAAO,qBAAqB,CAAC,UAAU,CAAC,CAAC;AAC3C,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,6BAA6B,CACjD,OAAoB,EACpB,MAAc,EACd,cAAyC,EACzC,UAAkB;IAElB,OAAO;QACL,OAAO;QACP,WAAW,EAAE,MAAM,kCAAkC,CACnD,OAAO,CAAC,SAAS,EACjB,MAAM,EACN,cAAc,CACf;QACD,UAAU;KACX,CAAC;AACJ,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { createPluginSpecStore, runPluginMigrations, runSchemaMigrations, } from '@baseplate-dev/project-builder-lib';
|
|
2
2
|
import { enhanceErrorWithContext, hashWithSHA256, stringifyPrettyStable, } from '@baseplate-dev/utils';
|
|
3
3
|
import { fileExists } from '@baseplate-dev/utils/node';
|
|
4
4
|
import { readFile, writeFile } from 'node:fs/promises';
|
|
@@ -23,8 +23,8 @@ export async function loadProjectDefinition(directory, context) {
|
|
|
23
23
|
if (appliedMigrations.length > 0) {
|
|
24
24
|
await writeFile(projectJsonPath, stringifyPrettyStable(migratedDefinition));
|
|
25
25
|
}
|
|
26
|
-
const
|
|
27
|
-
const definitionWithPluginMigrations = runPluginMigrations(migratedDefinition,
|
|
26
|
+
const pluginSpecStore = createPluginSpecStore(context.pluginStore, migratedDefinition);
|
|
27
|
+
const definitionWithPluginMigrations = runPluginMigrations(migratedDefinition, pluginSpecStore);
|
|
28
28
|
return { definition: definitionWithPluginMigrations, hash };
|
|
29
29
|
}
|
|
30
30
|
catch (err) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"load-project-definition.js","sourceRoot":"","sources":["../../src/project-definition/load-project-definition.ts"],"names":[],"mappings":"AAKA,OAAO,EACL
|
|
1
|
+
{"version":3,"file":"load-project-definition.js","sourceRoot":"","sources":["../../src/project-definition/load-project-definition.ts"],"names":[],"mappings":"AAKA,OAAO,EACL,qBAAqB,EACrB,mBAAmB,EACnB,mBAAmB,GACpB,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EACL,uBAAuB,EACvB,cAAc,EACd,qBAAqB,GACtB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AACvD,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,SAAiB,EACjB,OAA4B;IAE5B,MAAM,eAAe,GAAG,IAAI,CAAC,IAAI,CAC/B,SAAS,EACT,mCAAmC,CACpC,CAAC;IAEF,MAAM,iBAAiB,GAAG,MAAM,UAAU,CAAC,eAAe,CAAC,CAAC;IAE5D,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACvB,MAAM,IAAI,KAAK,CAAC,qCAAqC,eAAe,EAAE,CAAC,CAAC;IAC1E,CAAC;IAED,IAAI,CAAC;QACH,MAAM,mBAAmB,GAAG,MAAM,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC;QACpE,MAAM,IAAI,GAAG,MAAM,cAAc,CAAC,mBAAmB,CAAC,CAAC;QAEvD,MAAM,WAAW,GAAY,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC;QAE7D,MAAM,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,GAAG,mBAAmB,CACnE,WAAgC,CACjC,CAAC;QACF,IAAI,iBAAiB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACjC,MAAM,SAAS,CACb,eAAe,EACf,qBAAqB,CAAC,kBAAkB,CAAC,CAC1C,CAAC;QACJ,CAAC;QAED,MAAM,eAAe,GAAG,qBAAqB,CAC3C,OAAO,CAAC,WAAW,EACnB,kBAAkB,CACnB,CAAC;QAEF,MAAM,8BAA8B,GAAG,mBAAmB,CACxD,kBAAkB,EAClB,eAAe,CAChB,CAAC;QAEF,OAAO,EAAE,UAAU,EAAE,8BAA8B,EAAE,IAAI,EAAE,CAAC;IAC9D,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,uBAAuB,CAC3B,GAAG,EACH,uCAAuC,eAAe,EAAE,CACzD,CAAC;IACJ,CAAC;AACH,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@baseplate-dev/project-builder-server",
|
|
3
|
-
"version": "0.5.
|
|
3
|
+
"version": "0.5.1",
|
|
4
4
|
"description": "Server for Project Builder using Baseplate generators",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"backend",
|
|
@@ -65,12 +65,12 @@
|
|
|
65
65
|
"pino": "9.5.0",
|
|
66
66
|
"ts-morph": "26.0.0",
|
|
67
67
|
"zod": "^4.1.13",
|
|
68
|
-
"@baseplate-dev/core-generators": "0.5.
|
|
69
|
-
"@baseplate-dev/fastify-generators": "0.5.
|
|
70
|
-
"@baseplate-dev/project-builder-lib": "0.5.
|
|
71
|
-
"@baseplate-dev/react-generators": "0.5.
|
|
72
|
-
"@baseplate-dev/sync": "0.5.
|
|
73
|
-
"@baseplate-dev/utils": "0.5.
|
|
68
|
+
"@baseplate-dev/core-generators": "0.5.1",
|
|
69
|
+
"@baseplate-dev/fastify-generators": "0.5.1",
|
|
70
|
+
"@baseplate-dev/project-builder-lib": "0.5.1",
|
|
71
|
+
"@baseplate-dev/react-generators": "0.5.1",
|
|
72
|
+
"@baseplate-dev/sync": "0.5.1",
|
|
73
|
+
"@baseplate-dev/utils": "0.5.1"
|
|
74
74
|
},
|
|
75
75
|
"devDependencies": {
|
|
76
76
|
"@types/micromatch": "^4.0.9",
|
|
@@ -81,7 +81,7 @@
|
|
|
81
81
|
"tsx": "4.20.6",
|
|
82
82
|
"typescript": "5.8.3",
|
|
83
83
|
"vitest": "4.0.16",
|
|
84
|
-
"@baseplate-dev/tools": "0.5.
|
|
84
|
+
"@baseplate-dev/tools": "0.5.1"
|
|
85
85
|
},
|
|
86
86
|
"engines": {
|
|
87
87
|
"node": "^22.0.0"
|