pocketbase-zod-schema 0.3.2 → 0.3.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/CHANGELOG.md +7 -0
- package/dist/cli/index.cjs +28 -6
- package/dist/cli/index.cjs.map +1 -1
- package/dist/cli/index.d.cts +1 -1
- package/dist/cli/index.d.ts +1 -1
- package/dist/cli/index.js +28 -6
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/migrate.cjs +28 -6
- package/dist/cli/migrate.cjs.map +1 -1
- package/dist/cli/migrate.js +28 -6
- package/dist/cli/migrate.js.map +1 -1
- package/dist/cli/utils/index.d.cts +1 -1
- package/dist/cli/utils/index.d.ts +1 -1
- package/dist/index.cjs +42 -9
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +42 -9
- package/dist/index.js.map +1 -1
- package/dist/migration/analyzer.d.cts +1 -1
- package/dist/migration/analyzer.d.ts +1 -1
- package/dist/migration/diff.cjs +10 -1
- package/dist/migration/diff.cjs.map +1 -1
- package/dist/migration/diff.d.cts +1 -1
- package/dist/migration/diff.d.ts +1 -1
- package/dist/migration/diff.js +10 -1
- package/dist/migration/diff.js.map +1 -1
- package/dist/migration/generator.cjs +32 -8
- package/dist/migration/generator.cjs.map +1 -1
- package/dist/migration/generator.d.cts +2 -2
- package/dist/migration/generator.d.ts +2 -2
- package/dist/migration/generator.js +32 -8
- package/dist/migration/generator.js.map +1 -1
- package/dist/migration/index.cjs +42 -9
- package/dist/migration/index.cjs.map +1 -1
- package/dist/migration/index.d.cts +1 -1
- package/dist/migration/index.d.ts +1 -1
- package/dist/migration/index.js +42 -9
- package/dist/migration/index.js.map +1 -1
- package/dist/migration/snapshot.d.cts +1 -1
- package/dist/migration/snapshot.d.ts +1 -1
- package/dist/{types-Dfp-NP2D.d.ts → types-BWhwQxG-.d.ts} +5 -0
- package/dist/{types-CVxPCgWX.d.cts → types-d0yBwHoN.d.cts} +5 -0
- package/package.json +1 -1
|
@@ -2,7 +2,7 @@ export { SchemaAnalyzer, SchemaAnalyzerConfig, buildFieldDefinition, buildSchema
|
|
|
2
2
|
export { SnapshotConfig, SnapshotManager, convertPocketBaseMigration, findLatestSnapshot, getSnapshotPath, getSnapshotVersion, loadBaseMigration, loadSnapshot, loadSnapshotIfExists, loadSnapshotWithMigrations, mergeSnapshots, saveSnapshot, snapshotExists, validateSnapshot } from './snapshot.cjs';
|
|
3
3
|
export { ChangeSummary, DestructiveChange, DiffEngine, DiffEngineConfig, aggregateChanges, categorizeChangesBySeverity, compare, compareFieldConstraints, compareFieldOptions, compareFieldTypes, comparePermissions, compareRelationConfigurations, detectDestructiveChanges, detectFieldChanges, filterSystemCollections, findNewCollections, findNewFields, findRemovedCollections, findRemovedFields, generateChangeSummary, getUsersSystemFields, isSystemCollection, matchCollectionsByName, matchFieldsByName, requiresForceFlag } from './diff.cjs';
|
|
4
4
|
export { MigrationGenerator, MigrationGeneratorConfig, createMigrationFileStructure, generate, generateCollectionCreation, generateCollectionPermissions, generateCollectionRules, generateDownMigration, generateFieldAddition, generateFieldDefinitionObject, generateFieldDeletion, generateFieldModification, generateFieldsArray, generateIndexesArray, generateMigrationDescription, generateMigrationFilename, generatePermissionUpdate, generateTimestamp, generateUpMigration, writeMigrationFile } from './generator.cjs';
|
|
5
|
-
export { d as CollectionModification, f as CollectionOperation, C as CollectionSchema, b as FieldChange, F as FieldDefinition, c as FieldModification, P as PermissionChange, R as RuleUpdate, S as SchemaDefinition, e as SchemaDiff, a as SchemaSnapshot } from '../types-
|
|
5
|
+
export { d as CollectionModification, f as CollectionOperation, C as CollectionSchema, b as FieldChange, F as FieldDefinition, c as FieldModification, P as PermissionChange, R as RuleUpdate, S as SchemaDefinition, e as SchemaDiff, a as SchemaSnapshot } from '../types-d0yBwHoN.cjs';
|
|
6
6
|
export { E as ExtractedFieldOptions, d as FIELD_TYPE_INFO, F as FieldTypeInfo, C as FieldTypeResult, P as POCKETBASE_FIELD_TYPES, z as extractComprehensiveFieldOptions, o as extractFieldOptions, x as getArrayElementType, v as getDefaultValue, D as getFieldTypeInfo, g as getMaxSelect, c as getMinSelect, w as isArrayType, A as isEditorField, q as isFieldRequired, B as isFileFieldByName, y as isGeoPointType, a as isMultipleRelationField, b as isRelationField, i as isSingleRelationField, j as mapZodArrayType, f as mapZodBooleanType, k as mapZodDateType, h as mapZodEnumType, e as mapZodNumberType, l as mapZodRecordType, m as mapZodStringType, n as mapZodTypeToPocketBase, p as pluralize, r as resolveTargetCollection, s as singularize, t as toCollectionName, u as unwrapZodType } from '../type-mapper-DsGgZwUo.cjs';
|
|
7
7
|
export { F as FIELD_METADATA_KEY, a as FieldMetadata, P as PocketBaseFieldType, e as extractFieldMetadata } from '../fields-DBBm06VU.cjs';
|
|
8
8
|
export { A as APIRuleType } from '../permissions-ZHafVSIx.cjs';
|
|
@@ -2,7 +2,7 @@ export { SchemaAnalyzer, SchemaAnalyzerConfig, buildFieldDefinition, buildSchema
|
|
|
2
2
|
export { SnapshotConfig, SnapshotManager, convertPocketBaseMigration, findLatestSnapshot, getSnapshotPath, getSnapshotVersion, loadBaseMigration, loadSnapshot, loadSnapshotIfExists, loadSnapshotWithMigrations, mergeSnapshots, saveSnapshot, snapshotExists, validateSnapshot } from './snapshot.js';
|
|
3
3
|
export { ChangeSummary, DestructiveChange, DiffEngine, DiffEngineConfig, aggregateChanges, categorizeChangesBySeverity, compare, compareFieldConstraints, compareFieldOptions, compareFieldTypes, comparePermissions, compareRelationConfigurations, detectDestructiveChanges, detectFieldChanges, filterSystemCollections, findNewCollections, findNewFields, findRemovedCollections, findRemovedFields, generateChangeSummary, getUsersSystemFields, isSystemCollection, matchCollectionsByName, matchFieldsByName, requiresForceFlag } from './diff.js';
|
|
4
4
|
export { MigrationGenerator, MigrationGeneratorConfig, createMigrationFileStructure, generate, generateCollectionCreation, generateCollectionPermissions, generateCollectionRules, generateDownMigration, generateFieldAddition, generateFieldDefinitionObject, generateFieldDeletion, generateFieldModification, generateFieldsArray, generateIndexesArray, generateMigrationDescription, generateMigrationFilename, generatePermissionUpdate, generateTimestamp, generateUpMigration, writeMigrationFile } from './generator.js';
|
|
5
|
-
export { d as CollectionModification, f as CollectionOperation, C as CollectionSchema, b as FieldChange, F as FieldDefinition, c as FieldModification, P as PermissionChange, R as RuleUpdate, S as SchemaDefinition, e as SchemaDiff, a as SchemaSnapshot } from '../types-
|
|
5
|
+
export { d as CollectionModification, f as CollectionOperation, C as CollectionSchema, b as FieldChange, F as FieldDefinition, c as FieldModification, P as PermissionChange, R as RuleUpdate, S as SchemaDefinition, e as SchemaDiff, a as SchemaSnapshot } from '../types-BWhwQxG-.js';
|
|
6
6
|
export { E as ExtractedFieldOptions, d as FIELD_TYPE_INFO, F as FieldTypeInfo, C as FieldTypeResult, P as POCKETBASE_FIELD_TYPES, z as extractComprehensiveFieldOptions, o as extractFieldOptions, x as getArrayElementType, v as getDefaultValue, D as getFieldTypeInfo, g as getMaxSelect, c as getMinSelect, w as isArrayType, A as isEditorField, q as isFieldRequired, B as isFileFieldByName, y as isGeoPointType, a as isMultipleRelationField, b as isRelationField, i as isSingleRelationField, j as mapZodArrayType, f as mapZodBooleanType, k as mapZodDateType, h as mapZodEnumType, e as mapZodNumberType, l as mapZodRecordType, m as mapZodStringType, n as mapZodTypeToPocketBase, p as pluralize, r as resolveTargetCollection, s as singularize, t as toCollectionName, u as unwrapZodType } from '../type-mapper-Dvh4QTM-.js';
|
|
7
7
|
export { F as FIELD_METADATA_KEY, a as FieldMetadata, P as PocketBaseFieldType, e as extractFieldMetadata } from '../fields-DBBm06VU.js';
|
|
8
8
|
export { A as APIRuleType } from '../permissions-ZHafVSIx.js';
|
package/dist/migration/index.js
CHANGED
|
@@ -3075,10 +3075,19 @@ function aggregateChanges(currentSchema, previousSnapshot, config) {
|
|
|
3075
3075
|
collectionsToModify.push(modification);
|
|
3076
3076
|
}
|
|
3077
3077
|
}
|
|
3078
|
+
const existingCollectionIds = /* @__PURE__ */ new Map();
|
|
3079
|
+
if (previousSnapshot) {
|
|
3080
|
+
for (const [name, collection] of previousSnapshot.collections) {
|
|
3081
|
+
if (collection.id) {
|
|
3082
|
+
existingCollectionIds.set(name, collection.id);
|
|
3083
|
+
}
|
|
3084
|
+
}
|
|
3085
|
+
}
|
|
3078
3086
|
return {
|
|
3079
3087
|
collectionsToCreate: collectionsWithIds,
|
|
3080
3088
|
collectionsToDelete: filteredCollectionsToDelete,
|
|
3081
|
-
collectionsToModify
|
|
3089
|
+
collectionsToModify,
|
|
3090
|
+
existingCollectionIds
|
|
3082
3091
|
};
|
|
3083
3092
|
}
|
|
3084
3093
|
function detectDestructiveChanges(diff, config) {
|
|
@@ -3734,7 +3743,7 @@ function generateFieldAddition(collectionName, field, varName, isLast = false, c
|
|
|
3734
3743
|
lines.push(isLast ? ` return app.save(${collectionVar});` : ` app.save(${collectionVar});`);
|
|
3735
3744
|
return lines.join("\n");
|
|
3736
3745
|
}
|
|
3737
|
-
function generateFieldModification(collectionName, modification, varName, isLast = false) {
|
|
3746
|
+
function generateFieldModification(collectionName, modification, varName, isLast = false, collectionIdMap) {
|
|
3738
3747
|
const lines = [];
|
|
3739
3748
|
const collectionVar = varName || `collection_${collectionName}_${modification.fieldName}`;
|
|
3740
3749
|
const fieldVar = `${collectionVar}_field`;
|
|
@@ -3749,7 +3758,14 @@ function generateFieldModification(collectionName, modification, varName, isLast
|
|
|
3749
3758
|
const relationKey = change.property.replace("relation.", "");
|
|
3750
3759
|
if (relationKey === "collection") {
|
|
3751
3760
|
const isUsersCollection = String(change.newValue).toLowerCase() === "users";
|
|
3752
|
-
|
|
3761
|
+
let collectionIdValue;
|
|
3762
|
+
if (isUsersCollection) {
|
|
3763
|
+
collectionIdValue = '"_pb_users_auth_"';
|
|
3764
|
+
} else if (collectionIdMap && collectionIdMap.has(String(change.newValue))) {
|
|
3765
|
+
collectionIdValue = `"${collectionIdMap.get(String(change.newValue))}"`;
|
|
3766
|
+
} else {
|
|
3767
|
+
collectionIdValue = `app.findCollectionByNameOrId("${change.newValue}").id`;
|
|
3768
|
+
}
|
|
3753
3769
|
lines.push(` ${fieldVar}.collectionId = ${collectionIdValue};`);
|
|
3754
3770
|
} else {
|
|
3755
3771
|
lines.push(` ${fieldVar}.${relationKey} = ${formatValue(change.newValue)};`);
|
|
@@ -3825,9 +3841,10 @@ function generateOperationUpMigration(operation, collectionIdMap) {
|
|
|
3825
3841
|
const collectionName = typeof operation.collection === "string" ? operation.collection : operation.collection?.name ?? modification.collection;
|
|
3826
3842
|
let operationCount = 0;
|
|
3827
3843
|
const totalOperations = modification.fieldsToAdd.length + modification.fieldsToModify.length + modification.fieldsToRemove.length + modification.indexesToAdd.length + modification.indexesToRemove.length + modification.rulesToUpdate.length + modification.permissionsToUpdate.length;
|
|
3828
|
-
for (
|
|
3844
|
+
for (let i = 0; i < modification.fieldsToAdd.length; i++) {
|
|
3845
|
+
const field = modification.fieldsToAdd[i];
|
|
3829
3846
|
operationCount++;
|
|
3830
|
-
const varName = `collection_${collectionName}_add_${field.name}`;
|
|
3847
|
+
const varName = `collection_${collectionName}_add_${field.name}_${i}`;
|
|
3831
3848
|
const isLast = operationCount === totalOperations;
|
|
3832
3849
|
lines.push(generateFieldAddition(collectionName, field, varName, isLast, collectionIdMap));
|
|
3833
3850
|
if (!isLast) lines.push("");
|
|
@@ -3836,7 +3853,7 @@ function generateOperationUpMigration(operation, collectionIdMap) {
|
|
|
3836
3853
|
operationCount++;
|
|
3837
3854
|
const varName = `collection_${collectionName}_modify_${fieldMod.fieldName}`;
|
|
3838
3855
|
const isLast = operationCount === totalOperations;
|
|
3839
|
-
lines.push(generateFieldModification(collectionName, fieldMod, varName, isLast));
|
|
3856
|
+
lines.push(generateFieldModification(collectionName, fieldMod, varName, isLast, collectionIdMap));
|
|
3840
3857
|
if (!isLast) lines.push("");
|
|
3841
3858
|
}
|
|
3842
3859
|
for (const field of modification.fieldsToRemove) {
|
|
@@ -4021,6 +4038,11 @@ function generateUpMigration(diff) {
|
|
|
4021
4038
|
collectionIdMap.set(collection.name, collection.id);
|
|
4022
4039
|
}
|
|
4023
4040
|
}
|
|
4041
|
+
if (diff.existingCollectionIds) {
|
|
4042
|
+
for (const [name, id] of diff.existingCollectionIds) {
|
|
4043
|
+
collectionIdMap.set(name, id);
|
|
4044
|
+
}
|
|
4045
|
+
}
|
|
4024
4046
|
if (diff.collectionsToCreate.length > 0) {
|
|
4025
4047
|
lines.push(` // Create new collections`);
|
|
4026
4048
|
for (let i = 0; i < diff.collectionsToCreate.length; i++) {
|
|
@@ -4036,8 +4058,9 @@ function generateUpMigration(diff) {
|
|
|
4036
4058
|
const collectionName = modification.collection;
|
|
4037
4059
|
if (modification.fieldsToAdd.length > 0) {
|
|
4038
4060
|
lines.push(` // Add fields to ${collectionName}`);
|
|
4039
|
-
for (
|
|
4040
|
-
const
|
|
4061
|
+
for (let i = 0; i < modification.fieldsToAdd.length; i++) {
|
|
4062
|
+
const field = modification.fieldsToAdd[i];
|
|
4063
|
+
const varName = `collection_${collectionName}_add_${field.name}_${i}`;
|
|
4041
4064
|
lines.push(generateFieldAddition(collectionName, field, varName, false, collectionIdMap));
|
|
4042
4065
|
lines.push(``);
|
|
4043
4066
|
}
|
|
@@ -4046,7 +4069,7 @@ function generateUpMigration(diff) {
|
|
|
4046
4069
|
lines.push(` // Modify fields in ${collectionName}`);
|
|
4047
4070
|
for (const fieldMod of modification.fieldsToModify) {
|
|
4048
4071
|
const varName = `collection_${collectionName}_modify_${fieldMod.fieldName}`;
|
|
4049
|
-
lines.push(generateFieldModification(collectionName, fieldMod, varName));
|
|
4072
|
+
lines.push(generateFieldModification(collectionName, fieldMod, varName, false, collectionIdMap));
|
|
4050
4073
|
lines.push(``);
|
|
4051
4074
|
}
|
|
4052
4075
|
}
|
|
@@ -4143,6 +4166,11 @@ function generateDownMigration(diff) {
|
|
|
4143
4166
|
collectionIdMap.set(collection.name, collection.id);
|
|
4144
4167
|
}
|
|
4145
4168
|
}
|
|
4169
|
+
if (diff.existingCollectionIds) {
|
|
4170
|
+
for (const [name, id] of diff.existingCollectionIds) {
|
|
4171
|
+
collectionIdMap.set(name, id);
|
|
4172
|
+
}
|
|
4173
|
+
}
|
|
4146
4174
|
if (diff.collectionsToDelete.length > 0) {
|
|
4147
4175
|
lines.push(` // Recreate deleted collections`);
|
|
4148
4176
|
for (let i = 0; i < diff.collectionsToDelete.length; i++) {
|
|
@@ -4280,6 +4308,11 @@ function generate(diff, config) {
|
|
|
4280
4308
|
collectionIdMap.set(collection.name, collection.id);
|
|
4281
4309
|
}
|
|
4282
4310
|
}
|
|
4311
|
+
if (diff.existingCollectionIds) {
|
|
4312
|
+
for (const [name, id] of diff.existingCollectionIds) {
|
|
4313
|
+
collectionIdMap.set(name, id);
|
|
4314
|
+
}
|
|
4315
|
+
}
|
|
4283
4316
|
const baseTimestamp = generateTimestamp(normalizedConfig);
|
|
4284
4317
|
const operations = splitDiffByCollection(diff, baseTimestamp);
|
|
4285
4318
|
const filePaths = [];
|