@elek-io/core 0.15.2 → 0.15.3
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/browser/index.browser.d.ts +15 -17
- package/dist/browser/index.browser.js +1 -1
- package/dist/browser/index.browser.js.map +1 -1
- package/dist/cli/index.cli.js +13 -37
- package/dist/node/index.node.d.ts +15 -17
- package/dist/node/index.node.js +14 -38
- package/dist/node/index.node.js.map +1 -1
- package/package.json +1 -1
package/dist/cli/index.cli.js
CHANGED
|
@@ -40,7 +40,7 @@ var __export = (all) => {
|
|
|
40
40
|
//#region package.json
|
|
41
41
|
var package_default = {
|
|
42
42
|
name: "@elek-io/core",
|
|
43
|
-
version: "0.15.
|
|
43
|
+
version: "0.15.3",
|
|
44
44
|
description: "Handles core functionality of elek.io Projects like file IO and version control.",
|
|
45
45
|
homepage: "https://elek.io",
|
|
46
46
|
repository: "https://github.com/elek-io/core",
|
|
@@ -962,11 +962,10 @@ const projectSchema = projectFileSchema.extend({
|
|
|
962
962
|
history: z.array(gitCommitSchema).openapi({ description: "Commit history of this Project" }),
|
|
963
963
|
fullHistory: z.array(gitCommitSchema).openapi({ description: "Full commit history of this Project including all Assets, Collections, Entries and other files" })
|
|
964
964
|
}).openapi("Project");
|
|
965
|
-
const
|
|
965
|
+
const migrateProjectSchema = projectFileSchema.pick({
|
|
966
966
|
id: true,
|
|
967
|
-
name: true,
|
|
968
967
|
coreVersion: true
|
|
969
|
-
});
|
|
968
|
+
}).loose();
|
|
970
969
|
const projectExportSchema = projectSchema.extend({
|
|
971
970
|
assets: z.array(assetExportSchema),
|
|
972
971
|
collections: z.array(collectionExportSchema)
|
|
@@ -975,9 +974,6 @@ const createProjectSchema = projectSchema.pick({
|
|
|
975
974
|
name: true,
|
|
976
975
|
description: true,
|
|
977
976
|
settings: true
|
|
978
|
-
}).partial({
|
|
979
|
-
description: true,
|
|
980
|
-
settings: true
|
|
981
977
|
});
|
|
982
978
|
const readProjectSchema = z.object({
|
|
983
979
|
id: uuidSchema.readonly(),
|
|
@@ -988,10 +984,6 @@ const updateProjectSchema = projectSchema.pick({
|
|
|
988
984
|
name: true,
|
|
989
985
|
description: true,
|
|
990
986
|
settings: true
|
|
991
|
-
}).partial({
|
|
992
|
-
name: true,
|
|
993
|
-
description: true,
|
|
994
|
-
settings: true
|
|
995
987
|
});
|
|
996
988
|
const upgradeProjectSchema = z.object({
|
|
997
989
|
id: uuidSchema.readonly(),
|
|
@@ -3397,16 +3389,14 @@ var SynchronizeLocalChangesError = class extends Error {
|
|
|
3397
3389
|
var ProjectService = class extends AbstractCrudService {
|
|
3398
3390
|
coreVersion;
|
|
3399
3391
|
jsonFileService;
|
|
3400
|
-
userService;
|
|
3401
3392
|
gitService;
|
|
3402
3393
|
assetService;
|
|
3403
3394
|
collectionService;
|
|
3404
3395
|
entryService;
|
|
3405
|
-
constructor(coreVersion, options, logService, jsonFileService,
|
|
3396
|
+
constructor(coreVersion, options, logService, jsonFileService, gitService, assetService, collectionService, entryService) {
|
|
3406
3397
|
super(serviceTypeSchema.enum.Project, options, logService);
|
|
3407
3398
|
this.coreVersion = coreVersion;
|
|
3408
3399
|
this.jsonFileService = jsonFileService;
|
|
3409
|
-
this.userService = userService;
|
|
3410
3400
|
this.gitService = gitService;
|
|
3411
3401
|
this.assetService = assetService;
|
|
3412
3402
|
this.collectionService = collectionService;
|
|
@@ -3417,19 +3407,11 @@ var ProjectService = class extends AbstractCrudService {
|
|
|
3417
3407
|
*/
|
|
3418
3408
|
async create(props) {
|
|
3419
3409
|
createProjectSchema.parse(props);
|
|
3420
|
-
const user = await this.userService.get();
|
|
3421
|
-
if (!user) throw new NoCurrentUserError();
|
|
3422
3410
|
const id = uuid();
|
|
3423
|
-
const defaultSettings = { language: {
|
|
3424
|
-
default: user.language,
|
|
3425
|
-
supported: [user.language]
|
|
3426
|
-
} };
|
|
3427
3411
|
const projectFile = {
|
|
3428
3412
|
...props,
|
|
3429
3413
|
objectType: "project",
|
|
3430
3414
|
id,
|
|
3431
|
-
description: props.description || "",
|
|
3432
|
-
settings: Object.assign({}, defaultSettings, props.settings),
|
|
3433
3415
|
created: datetime(),
|
|
3434
3416
|
updated: null,
|
|
3435
3417
|
coreVersion: this.coreVersion,
|
|
@@ -3487,7 +3469,7 @@ var ProjectService = class extends AbstractCrudService {
|
|
|
3487
3469
|
const projectFile = await this.jsonFileService.read(pathTo.projectFile(props.id), projectFileSchema);
|
|
3488
3470
|
return await this.toProject(projectFile);
|
|
3489
3471
|
} else {
|
|
3490
|
-
const projectFile = this.migrate(JSON.parse(await this.gitService.getFileContentAtCommit(pathTo.project(props.id), pathTo.projectFile(props.id), props.commitHash)));
|
|
3472
|
+
const projectFile = this.migrate(migrateProjectSchema.parse(JSON.parse(await this.gitService.getFileContentAtCommit(pathTo.project(props.id), pathTo.projectFile(props.id), props.commitHash))));
|
|
3491
3473
|
return await this.toProject(projectFile);
|
|
3492
3474
|
}
|
|
3493
3475
|
}
|
|
@@ -3498,16 +3480,9 @@ var ProjectService = class extends AbstractCrudService {
|
|
|
3498
3480
|
updateProjectSchema.parse(props);
|
|
3499
3481
|
const projectPath = pathTo.project(props.id);
|
|
3500
3482
|
const filePath = pathTo.projectFile(props.id);
|
|
3501
|
-
const prevProjectFile = await this.read(props);
|
|
3502
3483
|
const projectFile = {
|
|
3503
|
-
...
|
|
3504
|
-
|
|
3505
|
-
description: props.description || prevProjectFile.description,
|
|
3506
|
-
coreVersion: this.coreVersion,
|
|
3507
|
-
settings: { language: {
|
|
3508
|
-
supported: props.settings?.language.supported || prevProjectFile.settings.language.supported,
|
|
3509
|
-
default: props.settings?.language.default || prevProjectFile.settings.language.default
|
|
3510
|
-
} },
|
|
3484
|
+
...await this.read(props),
|
|
3485
|
+
...props,
|
|
3511
3486
|
updated: datetime()
|
|
3512
3487
|
};
|
|
3513
3488
|
await this.jsonFileService.update(projectFile, filePath, projectFileSchema);
|
|
@@ -3531,7 +3506,7 @@ var ProjectService = class extends AbstractCrudService {
|
|
|
3531
3506
|
const projectPath = pathTo.project(props.id);
|
|
3532
3507
|
const projectFilePath = pathTo.projectFile(props.id);
|
|
3533
3508
|
if (await this.gitService.branches.current(projectPath) !== projectBranchSchema.enum.work) await this.gitService.branches.switch(projectPath, projectBranchSchema.enum.work);
|
|
3534
|
-
const currentProjectFile =
|
|
3509
|
+
const currentProjectFile = migrateProjectSchema.parse(await this.jsonFileService.unsafeRead(projectFilePath));
|
|
3535
3510
|
if (Semver.gt(currentProjectFile.coreVersion, this.coreVersion)) throw new ProjectUpgradeError(`The Projects Core version "${currentProjectFile.coreVersion}" is higher than the current Core version "${this.coreVersion}".`);
|
|
3536
3511
|
if (Semver.eq(currentProjectFile.coreVersion, this.coreVersion) && props.force !== true) throw new ProjectUpgradeError(`The Projects Core version "${currentProjectFile.coreVersion}" is already up to date.`);
|
|
3537
3512
|
const assetReferences = await this.listReferences("asset", props.id);
|
|
@@ -3673,7 +3648,7 @@ var ProjectService = class extends AbstractCrudService {
|
|
|
3673
3648
|
const projectReferences = await this.listReferences(objectTypeSchema.enum.project);
|
|
3674
3649
|
return (await Promise.all(projectReferences.map(async (reference) => {
|
|
3675
3650
|
const json = await this.jsonFileService.unsafeRead(pathTo.projectFile(reference.id));
|
|
3676
|
-
const projectFile =
|
|
3651
|
+
const projectFile = migrateProjectSchema.parse(json);
|
|
3677
3652
|
if (projectFile.coreVersion !== this.coreVersion) return projectFile;
|
|
3678
3653
|
return null;
|
|
3679
3654
|
}))).filter(isNotEmpty);
|
|
@@ -3706,8 +3681,9 @@ var ProjectService = class extends AbstractCrudService {
|
|
|
3706
3681
|
/**
|
|
3707
3682
|
* Migrates an potentially outdated Project file to the current schema
|
|
3708
3683
|
*/
|
|
3709
|
-
migrate(
|
|
3710
|
-
|
|
3684
|
+
migrate(props) {
|
|
3685
|
+
props.coreVersion = this.coreVersion;
|
|
3686
|
+
return projectFileSchema.parse(props);
|
|
3711
3687
|
}
|
|
3712
3688
|
/**
|
|
3713
3689
|
* Creates a Project from given ProjectFile
|
|
@@ -3896,7 +3872,7 @@ var ElekIoCore = class {
|
|
|
3896
3872
|
this.assetService = new AssetService(this.options, this.logService, this.jsonFileService, this.gitService);
|
|
3897
3873
|
this.collectionService = new CollectionService(this.options, this.logService, this.jsonFileService, this.gitService);
|
|
3898
3874
|
this.entryService = new EntryService(this.options, this.logService, this.jsonFileService, this.gitService, this.collectionService);
|
|
3899
|
-
this.projectService = new ProjectService(this.coreVersion, this.options, this.logService, this.jsonFileService, this.
|
|
3875
|
+
this.projectService = new ProjectService(this.coreVersion, this.options, this.logService, this.jsonFileService, this.gitService, this.assetService, this.collectionService, this.entryService);
|
|
3900
3876
|
this.localApi = new LocalApi(this.logService, this.projectService, this.collectionService, this.entryService, this.assetService);
|
|
3901
3877
|
this.logService.info({
|
|
3902
3878
|
source: "core",
|
|
@@ -9879,12 +9879,11 @@ declare const projectSchema: z.ZodObject<{
|
|
|
9879
9879
|
}, z.core.$strip>>;
|
|
9880
9880
|
}, z.core.$strip>;
|
|
9881
9881
|
type Project = z.infer<typeof projectSchema>;
|
|
9882
|
-
declare const
|
|
9882
|
+
declare const migrateProjectSchema: z.ZodObject<{
|
|
9883
9883
|
id: z.ZodReadonly<z.ZodUUID>;
|
|
9884
|
-
name: z.ZodString;
|
|
9885
9884
|
coreVersion: z.ZodString;
|
|
9886
|
-
}, z.core.$
|
|
9887
|
-
type
|
|
9885
|
+
}, z.core.$loose>;
|
|
9886
|
+
type MigrateProjectProps = z.infer<typeof migrateProjectSchema>;
|
|
9888
9887
|
declare const projectExportSchema: z.ZodObject<{
|
|
9889
9888
|
id: z.ZodReadonly<z.ZodUUID>;
|
|
9890
9889
|
created: z.ZodReadonly<z.ZodString>;
|
|
@@ -11324,8 +11323,8 @@ declare const projectExportSchema: z.ZodObject<{
|
|
|
11324
11323
|
type ProjectExport = z.infer<typeof projectExportSchema>;
|
|
11325
11324
|
declare const createProjectSchema: z.ZodObject<{
|
|
11326
11325
|
name: z.ZodString;
|
|
11327
|
-
description: z.
|
|
11328
|
-
settings: z.
|
|
11326
|
+
description: z.ZodString;
|
|
11327
|
+
settings: z.ZodObject<{
|
|
11329
11328
|
language: z.ZodObject<{
|
|
11330
11329
|
default: z.ZodEnum<{
|
|
11331
11330
|
bg: "bg";
|
|
@@ -11380,7 +11379,7 @@ declare const createProjectSchema: z.ZodObject<{
|
|
|
11380
11379
|
zh: "zh";
|
|
11381
11380
|
}>>;
|
|
11382
11381
|
}, z.core.$strip>;
|
|
11383
|
-
}, z.core.$strip
|
|
11382
|
+
}, z.core.$strip>;
|
|
11384
11383
|
}, z.core.$strip>;
|
|
11385
11384
|
type CreateProjectProps = z.infer<typeof createProjectSchema>;
|
|
11386
11385
|
declare const readProjectSchema: z.ZodObject<{
|
|
@@ -11390,9 +11389,9 @@ declare const readProjectSchema: z.ZodObject<{
|
|
|
11390
11389
|
type ReadProjectProps = z.infer<typeof readProjectSchema>;
|
|
11391
11390
|
declare const updateProjectSchema: z.ZodObject<{
|
|
11392
11391
|
id: z.ZodReadonly<z.ZodUUID>;
|
|
11393
|
-
name: z.
|
|
11394
|
-
description: z.
|
|
11395
|
-
settings: z.
|
|
11392
|
+
name: z.ZodString;
|
|
11393
|
+
description: z.ZodString;
|
|
11394
|
+
settings: z.ZodObject<{
|
|
11396
11395
|
language: z.ZodObject<{
|
|
11397
11396
|
default: z.ZodEnum<{
|
|
11398
11397
|
bg: "bg";
|
|
@@ -11447,7 +11446,7 @@ declare const updateProjectSchema: z.ZodObject<{
|
|
|
11447
11446
|
zh: "zh";
|
|
11448
11447
|
}>>;
|
|
11449
11448
|
}, z.core.$strip>;
|
|
11450
|
-
}, z.core.$strip
|
|
11449
|
+
}, z.core.$strip>;
|
|
11451
11450
|
}, z.core.$strip>;
|
|
11452
11451
|
type UpdateProjectProps = z.infer<typeof updateProjectSchema>;
|
|
11453
11452
|
declare const upgradeProjectSchema: z.ZodObject<{
|
|
@@ -12568,8 +12567,8 @@ declare function getUpdateEntrySchemaFromFieldDefinitions(fieldDefinitions: Fiel
|
|
|
12568
12567
|
//#region src/schema/serviceSchema.d.ts
|
|
12569
12568
|
declare const serviceTypeSchema: z.ZodEnum<{
|
|
12570
12569
|
Asset: "Asset";
|
|
12571
|
-
Collection: "Collection";
|
|
12572
12570
|
Entry: "Entry";
|
|
12571
|
+
Collection: "Collection";
|
|
12573
12572
|
Project: "Project";
|
|
12574
12573
|
Git: "Git";
|
|
12575
12574
|
GitTag: "GitTag";
|
|
@@ -14377,12 +14376,11 @@ declare class EntryService extends AbstractCrudService implements CrudServiceWit
|
|
|
14377
14376
|
declare class ProjectService extends AbstractCrudService implements CrudServiceWithListCount<Project> {
|
|
14378
14377
|
private coreVersion;
|
|
14379
14378
|
private jsonFileService;
|
|
14380
|
-
private userService;
|
|
14381
14379
|
private gitService;
|
|
14382
14380
|
private assetService;
|
|
14383
14381
|
private collectionService;
|
|
14384
14382
|
private entryService;
|
|
14385
|
-
constructor(coreVersion: Version, options: ElekIoCoreOptions, logService: LogService, jsonFileService: JsonFileService,
|
|
14383
|
+
constructor(coreVersion: Version, options: ElekIoCoreOptions, logService: LogService, jsonFileService: JsonFileService, gitService: GitService, assetService: AssetService, collectionService: CollectionService, entryService: EntryService);
|
|
14386
14384
|
/**
|
|
14387
14385
|
* Creates a new Project
|
|
14388
14386
|
*/
|
|
@@ -14498,7 +14496,7 @@ declare class ProjectService extends AbstractCrudService implements CrudServiceW
|
|
|
14498
14496
|
/**
|
|
14499
14497
|
* Lists outdated Projects that need to be upgraded
|
|
14500
14498
|
*/
|
|
14501
|
-
listOutdated(): Promise<
|
|
14499
|
+
listOutdated(): Promise<MigrateProjectProps[]>;
|
|
14502
14500
|
list(props?: ListProjectsProps): Promise<PaginatedList<Project>>;
|
|
14503
14501
|
count(): Promise<number>;
|
|
14504
14502
|
/**
|
|
@@ -14508,7 +14506,7 @@ declare class ProjectService extends AbstractCrudService implements CrudServiceW
|
|
|
14508
14506
|
/**
|
|
14509
14507
|
* Migrates an potentially outdated Project file to the current schema
|
|
14510
14508
|
*/
|
|
14511
|
-
migrate(
|
|
14509
|
+
migrate(props: MigrateProjectProps): {
|
|
14512
14510
|
id: string;
|
|
14513
14511
|
created: string;
|
|
14514
14512
|
updated: string | null;
|
|
@@ -14725,5 +14723,5 @@ declare class ElekIoCore {
|
|
|
14725
14723
|
get api(): LocalApi;
|
|
14726
14724
|
}
|
|
14727
14725
|
//#endregion
|
|
14728
|
-
export { ApiStartProps, Asset, AssetExport, AssetFieldDefinition, AssetFile, BaseFile, BaseUser, BooleanFieldDefinitionBaseSchema, CloneProjectProps, CloudUser, Collection, CollectionExport, CollectionFile, ConstructorElekIoCoreProps, CountAssetsProps, CountCollectionsProps, CountEntriesProps, CountGitTagsProps, CreateAssetProps, CreateCollectionProps, CreateEntryProps, CreateGitTagProps, CreateProjectProps, CrudService, CrudServiceWithListCount, CurrentBranchProjectProps, DateFieldDefinition, DatetimeFieldDefinition, DeleteAssetProps, DeleteCollectionProps, DeleteEntryProps, DeleteGitTagProps, DeleteProjectProps, DirectBooleanValue, DirectNumberValue, DirectStringValue, DirectValue, ElekIoCoreOptions, EmailFieldDefinition, Entry, EntryExport, EntryFieldDefinition, EntryFile, ExportProps, FieldDefinition, FieldDefinitionBase, FieldDefinitionBaseSchema, FieldType, FieldTypeSchema, FieldWidthSchema, FileReference, GenerateApiClientProps, GetChangesProjectProps, GetRemoteOriginUrlProjectProps, GitCloneOptions, GitCommit, GitInitOptions, GitLogOptions, GitMergeOptions, GitMessage, GitSignature, GitSwitchOptions, GitTag, Ipv4FieldDefinition, ListAssetsProps, ListBranchesProjectProps, ListCollectionsProps, ListEntriesProps, ListGitTagsProps, ListProjectsProps, LocalUser, LogConsoleTransportProps, LogProps, LogSource, NumberFieldDefinition, NumberFieldDefinitionBaseSchema, ObjectType,
|
|
14726
|
+
export { ApiStartProps, Asset, AssetExport, AssetFieldDefinition, AssetFile, BaseFile, BaseUser, BooleanFieldDefinitionBaseSchema, CloneProjectProps, CloudUser, Collection, CollectionExport, CollectionFile, ConstructorElekIoCoreProps, CountAssetsProps, CountCollectionsProps, CountEntriesProps, CountGitTagsProps, CreateAssetProps, CreateCollectionProps, CreateEntryProps, CreateGitTagProps, CreateProjectProps, CrudService, CrudServiceWithListCount, CurrentBranchProjectProps, DateFieldDefinition, DatetimeFieldDefinition, DeleteAssetProps, DeleteCollectionProps, DeleteEntryProps, DeleteGitTagProps, DeleteProjectProps, DirectBooleanValue, DirectNumberValue, DirectStringValue, DirectValue, ElekIoCoreOptions, EmailFieldDefinition, Entry, EntryExport, EntryFieldDefinition, EntryFile, ExportProps, FieldDefinition, FieldDefinitionBase, FieldDefinitionBaseSchema, FieldType, FieldTypeSchema, FieldWidthSchema, FileReference, GenerateApiClientProps, GetChangesProjectProps, GetRemoteOriginUrlProjectProps, GitCloneOptions, GitCommit, GitInitOptions, GitLogOptions, GitMergeOptions, GitMessage, GitSignature, GitSwitchOptions, GitTag, Ipv4FieldDefinition, ListAssetsProps, ListBranchesProjectProps, ListCollectionsProps, ListEntriesProps, ListGitTagsProps, ListProjectsProps, LocalUser, LogConsoleTransportProps, LogProps, LogSource, MigrateProjectProps, NumberFieldDefinition, NumberFieldDefinitionBaseSchema, ObjectType, PaginatedList, PaginationOptions, Project, ProjectBranch, ProjectExport, ProjectFile, ProjectFolder, ProjectSettings, ProjectStatus, ProjectUpgrade, RangeFieldDefinition, ReadAssetProps, ReadCollectionProps, ReadEntryProps, ReadGitTagProps, ReadProjectProps, ReferenceFieldDefinitionBaseSchema, ReferencedValue, SaveAssetProps, SearchProjectProps, ServiceType, SetRemoteOriginUrlProjectProps, SetUserProps, StringFieldDefinition, StringFieldDefinitionBaseSchema, SupportedIcon, SupportedLanguage, SwitchBranchProjectProps, SynchronizeProjectProps, TelephoneFieldDefinition, TextFieldDefinition, TextareaFieldDefinition, TimeFieldDefinition, ToggleFieldDefinition, TranslatableBoolean, TranslatableNumber, TranslatableString, UpdateAssetProps, UpdateCollectionProps, UpdateEntryProps, UpdateProjectProps, UpgradeProjectProps, UrlFieldDefinition, User, UserFile, UserTypeSchema, Uuid, Value, ValueContentReference, ValueContentReferenceToAsset, ValueContentReferenceToCollection, ValueContentReferenceToEntry, ValueType, ValueTypeSchema, Version, apiStartSchema, assetExportSchema, assetFieldDefinitionSchema, assetFileSchema, assetSchema, baseFileSchema, baseUserSchema, cloneProjectSchema, cloudUserSchema, collectionExportSchema, collectionFileSchema, collectionSchema, constructorElekIoCoreSchema, countAssetsSchema, countCollectionsSchema, countEntriesSchema, countGitTagsSchema, createAssetSchema, createCollectionSchema, createEntrySchema, createGitTagSchema, createProjectSchema, currentBranchProjectSchema, dateFieldDefinitionSchema, datetime, datetimeFieldDefinitionSchema, ElekIoCore as default, deleteAssetSchema, deleteCollectionSchema, deleteEntrySchema, deleteGitTagSchema, deleteProjectSchema, directBooleanValueSchema, directNumberValueSchema, directStringValueSchema, directValueBaseSchema, directValueSchema, elekIoCoreOptionsSchema, emailFieldDefinitionSchema, entryExportSchema, entryFieldDefinitionSchema, entryFileSchema, entrySchema, exportSchema, fieldDefinitionSchema, fileReferenceSchema, generateApiClientSchema, getChangesProjectSchema, getCreateEntrySchemaFromFieldDefinitions, getEntrySchemaFromFieldDefinitions, getRemoteOriginUrlProjectSchema, getUpdateEntrySchemaFromFieldDefinitions, getValueSchemaFromFieldDefinition, gitCloneOptionsSchema, gitCommitSchema, gitInitOptionsSchema, gitLogOptionsSchema, gitMergeOptionsSchema, gitMessageSchema, gitSignatureSchema, gitSwitchOptionsSchema, gitTagSchema, ipv4FieldDefinitionSchema, listAssetsSchema, listBranchesProjectSchema, listCollectionsSchema, listEntriesSchema, listGitTagsSchema, listProjectsSchema, localUserSchema, logConsoleTransportSchema, logLevelSchema, logSchema, logSourceSchema, migrateProjectSchema, numberFieldDefinitionSchema, objectTypeSchema, paginatedListOf, projectBranchSchema, projectExportSchema, projectFileSchema, projectFolderSchema, projectSchema, projectSettingsSchema, projectStatusSchema, projectUpgradeSchema, rangeFieldDefinitionSchema, readAssetSchema, readCollectionSchema, readEntrySchema, readGitTagSchema, readProjectSchema, referencedValueSchema, saveAssetSchema, searchProjectSchema, serviceTypeSchema, setRemoteOriginUrlProjectSchema, setUserSchema, slug, stringFieldDefinitionSchema, supportedIconSchema, supportedLanguageSchema, switchBranchProjectSchema, synchronizeProjectSchema, telephoneFieldDefinitionSchema, textFieldDefinitionSchema, textareaFieldDefinitionSchema, timeFieldDefinitionSchema, toggleFieldDefinitionSchema, translatableArrayOf, translatableBooleanSchema, translatableNumberSchema, translatableStringSchema, updateAssetSchema, updateCollectionSchema, updateEntrySchema, updateProjectSchema, upgradeProjectSchema, urlFieldDefinitionSchema, userFileSchema, userSchema, uuid, uuidSchema, valueContentReferenceBase, valueContentReferenceSchema, valueContentReferenceToAssetSchema, valueContentReferenceToCollectionSchema, valueContentReferenceToEntrySchema, valueSchema, versionSchema };
|
|
14729
14727
|
//# sourceMappingURL=index.node.d.ts.map
|
package/dist/node/index.node.js
CHANGED
|
@@ -23,7 +23,7 @@ import Semver from "semver";
|
|
|
23
23
|
//#region package.json
|
|
24
24
|
var package_default = {
|
|
25
25
|
name: "@elek-io/core",
|
|
26
|
-
version: "0.15.
|
|
26
|
+
version: "0.15.3",
|
|
27
27
|
description: "Handles core functionality of elek.io Projects like file IO and version control.",
|
|
28
28
|
homepage: "https://elek.io",
|
|
29
29
|
repository: "https://github.com/elek-io/core",
|
|
@@ -681,11 +681,10 @@ const projectSchema = projectFileSchema.extend({
|
|
|
681
681
|
history: z.array(gitCommitSchema).openapi({ description: "Commit history of this Project" }),
|
|
682
682
|
fullHistory: z.array(gitCommitSchema).openapi({ description: "Full commit history of this Project including all Assets, Collections, Entries and other files" })
|
|
683
683
|
}).openapi("Project");
|
|
684
|
-
const
|
|
684
|
+
const migrateProjectSchema = projectFileSchema.pick({
|
|
685
685
|
id: true,
|
|
686
|
-
name: true,
|
|
687
686
|
coreVersion: true
|
|
688
|
-
});
|
|
687
|
+
}).loose();
|
|
689
688
|
const projectExportSchema = projectSchema.extend({
|
|
690
689
|
assets: z.array(assetExportSchema),
|
|
691
690
|
collections: z.array(collectionExportSchema)
|
|
@@ -694,9 +693,6 @@ const createProjectSchema = projectSchema.pick({
|
|
|
694
693
|
name: true,
|
|
695
694
|
description: true,
|
|
696
695
|
settings: true
|
|
697
|
-
}).partial({
|
|
698
|
-
description: true,
|
|
699
|
-
settings: true
|
|
700
696
|
});
|
|
701
697
|
const readProjectSchema = z.object({
|
|
702
698
|
id: uuidSchema.readonly(),
|
|
@@ -707,10 +703,6 @@ const updateProjectSchema = projectSchema.pick({
|
|
|
707
703
|
name: true,
|
|
708
704
|
description: true,
|
|
709
705
|
settings: true
|
|
710
|
-
}).partial({
|
|
711
|
-
name: true,
|
|
712
|
-
description: true,
|
|
713
|
-
settings: true
|
|
714
706
|
});
|
|
715
707
|
const upgradeProjectSchema = z.object({
|
|
716
708
|
id: uuidSchema.readonly(),
|
|
@@ -3128,16 +3120,14 @@ var SynchronizeLocalChangesError = class extends Error {
|
|
|
3128
3120
|
var ProjectService = class extends AbstractCrudService {
|
|
3129
3121
|
coreVersion;
|
|
3130
3122
|
jsonFileService;
|
|
3131
|
-
userService;
|
|
3132
3123
|
gitService;
|
|
3133
3124
|
assetService;
|
|
3134
3125
|
collectionService;
|
|
3135
3126
|
entryService;
|
|
3136
|
-
constructor(coreVersion, options, logService, jsonFileService,
|
|
3127
|
+
constructor(coreVersion, options, logService, jsonFileService, gitService, assetService, collectionService, entryService) {
|
|
3137
3128
|
super(serviceTypeSchema.enum.Project, options, logService);
|
|
3138
3129
|
this.coreVersion = coreVersion;
|
|
3139
3130
|
this.jsonFileService = jsonFileService;
|
|
3140
|
-
this.userService = userService;
|
|
3141
3131
|
this.gitService = gitService;
|
|
3142
3132
|
this.assetService = assetService;
|
|
3143
3133
|
this.collectionService = collectionService;
|
|
@@ -3148,19 +3138,11 @@ var ProjectService = class extends AbstractCrudService {
|
|
|
3148
3138
|
*/
|
|
3149
3139
|
async create(props) {
|
|
3150
3140
|
createProjectSchema.parse(props);
|
|
3151
|
-
const user = await this.userService.get();
|
|
3152
|
-
if (!user) throw new NoCurrentUserError();
|
|
3153
3141
|
const id = uuid();
|
|
3154
|
-
const defaultSettings = { language: {
|
|
3155
|
-
default: user.language,
|
|
3156
|
-
supported: [user.language]
|
|
3157
|
-
} };
|
|
3158
3142
|
const projectFile = {
|
|
3159
3143
|
...props,
|
|
3160
3144
|
objectType: "project",
|
|
3161
3145
|
id,
|
|
3162
|
-
description: props.description || "",
|
|
3163
|
-
settings: Object.assign({}, defaultSettings, props.settings),
|
|
3164
3146
|
created: datetime(),
|
|
3165
3147
|
updated: null,
|
|
3166
3148
|
coreVersion: this.coreVersion,
|
|
@@ -3218,7 +3200,7 @@ var ProjectService = class extends AbstractCrudService {
|
|
|
3218
3200
|
const projectFile = await this.jsonFileService.read(pathTo.projectFile(props.id), projectFileSchema);
|
|
3219
3201
|
return await this.toProject(projectFile);
|
|
3220
3202
|
} else {
|
|
3221
|
-
const projectFile = this.migrate(JSON.parse(await this.gitService.getFileContentAtCommit(pathTo.project(props.id), pathTo.projectFile(props.id), props.commitHash)));
|
|
3203
|
+
const projectFile = this.migrate(migrateProjectSchema.parse(JSON.parse(await this.gitService.getFileContentAtCommit(pathTo.project(props.id), pathTo.projectFile(props.id), props.commitHash))));
|
|
3222
3204
|
return await this.toProject(projectFile);
|
|
3223
3205
|
}
|
|
3224
3206
|
}
|
|
@@ -3229,16 +3211,9 @@ var ProjectService = class extends AbstractCrudService {
|
|
|
3229
3211
|
updateProjectSchema.parse(props);
|
|
3230
3212
|
const projectPath = pathTo.project(props.id);
|
|
3231
3213
|
const filePath = pathTo.projectFile(props.id);
|
|
3232
|
-
const prevProjectFile = await this.read(props);
|
|
3233
3214
|
const projectFile = {
|
|
3234
|
-
...
|
|
3235
|
-
|
|
3236
|
-
description: props.description || prevProjectFile.description,
|
|
3237
|
-
coreVersion: this.coreVersion,
|
|
3238
|
-
settings: { language: {
|
|
3239
|
-
supported: props.settings?.language.supported || prevProjectFile.settings.language.supported,
|
|
3240
|
-
default: props.settings?.language.default || prevProjectFile.settings.language.default
|
|
3241
|
-
} },
|
|
3215
|
+
...await this.read(props),
|
|
3216
|
+
...props,
|
|
3242
3217
|
updated: datetime()
|
|
3243
3218
|
};
|
|
3244
3219
|
await this.jsonFileService.update(projectFile, filePath, projectFileSchema);
|
|
@@ -3262,7 +3237,7 @@ var ProjectService = class extends AbstractCrudService {
|
|
|
3262
3237
|
const projectPath = pathTo.project(props.id);
|
|
3263
3238
|
const projectFilePath = pathTo.projectFile(props.id);
|
|
3264
3239
|
if (await this.gitService.branches.current(projectPath) !== projectBranchSchema.enum.work) await this.gitService.branches.switch(projectPath, projectBranchSchema.enum.work);
|
|
3265
|
-
const currentProjectFile =
|
|
3240
|
+
const currentProjectFile = migrateProjectSchema.parse(await this.jsonFileService.unsafeRead(projectFilePath));
|
|
3266
3241
|
if (Semver.gt(currentProjectFile.coreVersion, this.coreVersion)) throw new ProjectUpgradeError(`The Projects Core version "${currentProjectFile.coreVersion}" is higher than the current Core version "${this.coreVersion}".`);
|
|
3267
3242
|
if (Semver.eq(currentProjectFile.coreVersion, this.coreVersion) && props.force !== true) throw new ProjectUpgradeError(`The Projects Core version "${currentProjectFile.coreVersion}" is already up to date.`);
|
|
3268
3243
|
const assetReferences = await this.listReferences("asset", props.id);
|
|
@@ -3404,7 +3379,7 @@ var ProjectService = class extends AbstractCrudService {
|
|
|
3404
3379
|
const projectReferences = await this.listReferences(objectTypeSchema.enum.project);
|
|
3405
3380
|
return (await Promise.all(projectReferences.map(async (reference) => {
|
|
3406
3381
|
const json = await this.jsonFileService.unsafeRead(pathTo.projectFile(reference.id));
|
|
3407
|
-
const projectFile =
|
|
3382
|
+
const projectFile = migrateProjectSchema.parse(json);
|
|
3408
3383
|
if (projectFile.coreVersion !== this.coreVersion) return projectFile;
|
|
3409
3384
|
return null;
|
|
3410
3385
|
}))).filter(isNotEmpty);
|
|
@@ -3437,8 +3412,9 @@ var ProjectService = class extends AbstractCrudService {
|
|
|
3437
3412
|
/**
|
|
3438
3413
|
* Migrates an potentially outdated Project file to the current schema
|
|
3439
3414
|
*/
|
|
3440
|
-
migrate(
|
|
3441
|
-
|
|
3415
|
+
migrate(props) {
|
|
3416
|
+
props.coreVersion = this.coreVersion;
|
|
3417
|
+
return projectFileSchema.parse(props);
|
|
3442
3418
|
}
|
|
3443
3419
|
/**
|
|
3444
3420
|
* Creates a Project from given ProjectFile
|
|
@@ -3627,7 +3603,7 @@ var ElekIoCore = class {
|
|
|
3627
3603
|
this.assetService = new AssetService(this.options, this.logService, this.jsonFileService, this.gitService);
|
|
3628
3604
|
this.collectionService = new CollectionService(this.options, this.logService, this.jsonFileService, this.gitService);
|
|
3629
3605
|
this.entryService = new EntryService(this.options, this.logService, this.jsonFileService, this.gitService, this.collectionService);
|
|
3630
|
-
this.projectService = new ProjectService(this.coreVersion, this.options, this.logService, this.jsonFileService, this.
|
|
3606
|
+
this.projectService = new ProjectService(this.coreVersion, this.options, this.logService, this.jsonFileService, this.gitService, this.assetService, this.collectionService, this.entryService);
|
|
3631
3607
|
this.localApi = new LocalApi(this.logService, this.projectService, this.collectionService, this.entryService, this.assetService);
|
|
3632
3608
|
this.logService.info({
|
|
3633
3609
|
source: "core",
|
|
@@ -3696,5 +3672,5 @@ var ElekIoCore = class {
|
|
|
3696
3672
|
};
|
|
3697
3673
|
|
|
3698
3674
|
//#endregion
|
|
3699
|
-
export { BooleanFieldDefinitionBaseSchema, FieldDefinitionBaseSchema, FieldTypeSchema, FieldWidthSchema, NumberFieldDefinitionBaseSchema, ReferenceFieldDefinitionBaseSchema, StringFieldDefinitionBaseSchema, UserTypeSchema, ValueTypeSchema, apiStartSchema, assetExportSchema, assetFieldDefinitionSchema, assetFileSchema, assetSchema, baseFileSchema, baseUserSchema, cloneProjectSchema, cloudUserSchema, collectionExportSchema, collectionFileSchema, collectionSchema, constructorElekIoCoreSchema, countAssetsSchema, countCollectionsSchema, countEntriesSchema, countGitTagsSchema, createAssetSchema, createCollectionSchema, createEntrySchema, createGitTagSchema, createProjectSchema, currentBranchProjectSchema, dateFieldDefinitionSchema, datetime, datetimeFieldDefinitionSchema, ElekIoCore as default, deleteAssetSchema, deleteCollectionSchema, deleteEntrySchema, deleteGitTagSchema, deleteProjectSchema, directBooleanValueSchema, directNumberValueSchema, directStringValueSchema, directValueBaseSchema, directValueSchema, elekIoCoreOptionsSchema, emailFieldDefinitionSchema, entryExportSchema, entryFieldDefinitionSchema, entryFileSchema, entrySchema, exportSchema, fieldDefinitionSchema, fileReferenceSchema, generateApiClientSchema, getChangesProjectSchema, getCreateEntrySchemaFromFieldDefinitions, getEntrySchemaFromFieldDefinitions, getRemoteOriginUrlProjectSchema, getUpdateEntrySchemaFromFieldDefinitions, getValueSchemaFromFieldDefinition, gitCloneOptionsSchema, gitCommitSchema, gitInitOptionsSchema, gitLogOptionsSchema, gitMergeOptionsSchema, gitMessageSchema, gitSignatureSchema, gitSwitchOptionsSchema, gitTagSchema, ipv4FieldDefinitionSchema, listAssetsSchema, listBranchesProjectSchema, listCollectionsSchema, listEntriesSchema, listGitTagsSchema, listProjectsSchema, localUserSchema, logConsoleTransportSchema, logLevelSchema, logSchema, logSourceSchema, numberFieldDefinitionSchema, objectTypeSchema,
|
|
3675
|
+
export { BooleanFieldDefinitionBaseSchema, FieldDefinitionBaseSchema, FieldTypeSchema, FieldWidthSchema, NumberFieldDefinitionBaseSchema, ReferenceFieldDefinitionBaseSchema, StringFieldDefinitionBaseSchema, UserTypeSchema, ValueTypeSchema, apiStartSchema, assetExportSchema, assetFieldDefinitionSchema, assetFileSchema, assetSchema, baseFileSchema, baseUserSchema, cloneProjectSchema, cloudUserSchema, collectionExportSchema, collectionFileSchema, collectionSchema, constructorElekIoCoreSchema, countAssetsSchema, countCollectionsSchema, countEntriesSchema, countGitTagsSchema, createAssetSchema, createCollectionSchema, createEntrySchema, createGitTagSchema, createProjectSchema, currentBranchProjectSchema, dateFieldDefinitionSchema, datetime, datetimeFieldDefinitionSchema, ElekIoCore as default, deleteAssetSchema, deleteCollectionSchema, deleteEntrySchema, deleteGitTagSchema, deleteProjectSchema, directBooleanValueSchema, directNumberValueSchema, directStringValueSchema, directValueBaseSchema, directValueSchema, elekIoCoreOptionsSchema, emailFieldDefinitionSchema, entryExportSchema, entryFieldDefinitionSchema, entryFileSchema, entrySchema, exportSchema, fieldDefinitionSchema, fileReferenceSchema, generateApiClientSchema, getChangesProjectSchema, getCreateEntrySchemaFromFieldDefinitions, getEntrySchemaFromFieldDefinitions, getRemoteOriginUrlProjectSchema, getUpdateEntrySchemaFromFieldDefinitions, getValueSchemaFromFieldDefinition, gitCloneOptionsSchema, gitCommitSchema, gitInitOptionsSchema, gitLogOptionsSchema, gitMergeOptionsSchema, gitMessageSchema, gitSignatureSchema, gitSwitchOptionsSchema, gitTagSchema, ipv4FieldDefinitionSchema, listAssetsSchema, listBranchesProjectSchema, listCollectionsSchema, listEntriesSchema, listGitTagsSchema, listProjectsSchema, localUserSchema, logConsoleTransportSchema, logLevelSchema, logSchema, logSourceSchema, migrateProjectSchema, numberFieldDefinitionSchema, objectTypeSchema, paginatedListOf, projectBranchSchema, projectExportSchema, projectFileSchema, projectFolderSchema, projectSchema, projectSettingsSchema, projectStatusSchema, projectUpgradeSchema, rangeFieldDefinitionSchema, readAssetSchema, readCollectionSchema, readEntrySchema, readGitTagSchema, readProjectSchema, referencedValueSchema, saveAssetSchema, searchProjectSchema, serviceTypeSchema, setRemoteOriginUrlProjectSchema, setUserSchema, slug, stringFieldDefinitionSchema, supportedIconSchema, supportedLanguageSchema, switchBranchProjectSchema, synchronizeProjectSchema, telephoneFieldDefinitionSchema, textFieldDefinitionSchema, textareaFieldDefinitionSchema, timeFieldDefinitionSchema, toggleFieldDefinitionSchema, translatableArrayOf, translatableBooleanSchema, translatableNumberSchema, translatableStringSchema, updateAssetSchema, updateCollectionSchema, updateEntrySchema, updateProjectSchema, upgradeProjectSchema, urlFieldDefinitionSchema, userFileSchema, userSchema, uuid, uuidSchema, valueContentReferenceBase, valueContentReferenceSchema, valueContentReferenceToAssetSchema, valueContentReferenceToCollectionSchema, valueContentReferenceToEntrySchema, valueSchema, versionSchema };
|
|
3700
3676
|
//# sourceMappingURL=index.node.js.map
|