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
package/dist/index.d.cts
CHANGED
|
@@ -7,7 +7,7 @@ export { SchemaAnalyzer, SchemaAnalyzerConfig, buildFieldDefinition, buildSchema
|
|
|
7
7
|
export { SnapshotConfig, SnapshotManager, convertPocketBaseMigration, findLatestSnapshot, getSnapshotPath, getSnapshotVersion, loadBaseMigration, loadSnapshot, loadSnapshotIfExists, loadSnapshotWithMigrations, mergeSnapshots, saveSnapshot, snapshotExists, validateSnapshot } from './migration/snapshot.cjs';
|
|
8
8
|
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 './migration/diff.cjs';
|
|
9
9
|
export { MigrationGenerator, MigrationGeneratorConfig, createMigrationFileStructure, generate, generateCollectionCreation, generateCollectionPermissions, generateCollectionRules, generateDownMigration, generateFieldAddition, generateFieldDefinitionObject, generateFieldDeletion, generateFieldModification, generateFieldsArray, generateIndexesArray, generateMigrationDescription, generateMigrationFilename, generatePermissionUpdate, generateTimestamp, generateUpMigration, writeMigrationFile } from './migration/generator.cjs';
|
|
10
|
-
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-
|
|
10
|
+
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';
|
|
11
11
|
export { CLIUsageError, ConfigurationError, FileSystemError, MigrationError, MigrationGenerationError, SchemaParsingError, SnapshotError } from './migration/index.cjs';
|
|
12
12
|
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';
|
|
13
13
|
export { generateMigration, getMigrationStatus } from './cli/index.cjs';
|
package/dist/index.d.ts
CHANGED
|
@@ -7,7 +7,7 @@ export { SchemaAnalyzer, SchemaAnalyzerConfig, buildFieldDefinition, buildSchema
|
|
|
7
7
|
export { SnapshotConfig, SnapshotManager, convertPocketBaseMigration, findLatestSnapshot, getSnapshotPath, getSnapshotVersion, loadBaseMigration, loadSnapshot, loadSnapshotIfExists, loadSnapshotWithMigrations, mergeSnapshots, saveSnapshot, snapshotExists, validateSnapshot } from './migration/snapshot.js';
|
|
8
8
|
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 './migration/diff.js';
|
|
9
9
|
export { MigrationGenerator, MigrationGeneratorConfig, createMigrationFileStructure, generate, generateCollectionCreation, generateCollectionPermissions, generateCollectionRules, generateDownMigration, generateFieldAddition, generateFieldDefinitionObject, generateFieldDeletion, generateFieldModification, generateFieldsArray, generateIndexesArray, generateMigrationDescription, generateMigrationFilename, generatePermissionUpdate, generateTimestamp, generateUpMigration, writeMigrationFile } from './migration/generator.js';
|
|
10
|
-
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-
|
|
10
|
+
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';
|
|
11
11
|
export { CLIUsageError, ConfigurationError, FileSystemError, MigrationError, MigrationGenerationError, SchemaParsingError, SnapshotError } from './migration/index.js';
|
|
12
12
|
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';
|
|
13
13
|
export { generateMigration, getMigrationStatus } from './cli/index.js';
|
package/dist/index.js
CHANGED
|
@@ -3821,10 +3821,19 @@ function aggregateChanges(currentSchema, previousSnapshot, config) {
|
|
|
3821
3821
|
collectionsToModify.push(modification);
|
|
3822
3822
|
}
|
|
3823
3823
|
}
|
|
3824
|
+
const existingCollectionIds = /* @__PURE__ */ new Map();
|
|
3825
|
+
if (previousSnapshot) {
|
|
3826
|
+
for (const [name, collection] of previousSnapshot.collections) {
|
|
3827
|
+
if (collection.id) {
|
|
3828
|
+
existingCollectionIds.set(name, collection.id);
|
|
3829
|
+
}
|
|
3830
|
+
}
|
|
3831
|
+
}
|
|
3824
3832
|
return {
|
|
3825
3833
|
collectionsToCreate: collectionsWithIds,
|
|
3826
3834
|
collectionsToDelete: filteredCollectionsToDelete,
|
|
3827
|
-
collectionsToModify
|
|
3835
|
+
collectionsToModify,
|
|
3836
|
+
existingCollectionIds
|
|
3828
3837
|
};
|
|
3829
3838
|
}
|
|
3830
3839
|
function detectDestructiveChanges(diff, config) {
|
|
@@ -4480,7 +4489,7 @@ function generateFieldAddition(collectionName, field, varName, isLast = false, c
|
|
|
4480
4489
|
lines.push(isLast ? ` return app.save(${collectionVar});` : ` app.save(${collectionVar});`);
|
|
4481
4490
|
return lines.join("\n");
|
|
4482
4491
|
}
|
|
4483
|
-
function generateFieldModification(collectionName, modification, varName, isLast = false) {
|
|
4492
|
+
function generateFieldModification(collectionName, modification, varName, isLast = false, collectionIdMap) {
|
|
4484
4493
|
const lines = [];
|
|
4485
4494
|
const collectionVar = varName || `collection_${collectionName}_${modification.fieldName}`;
|
|
4486
4495
|
const fieldVar = `${collectionVar}_field`;
|
|
@@ -4495,7 +4504,14 @@ function generateFieldModification(collectionName, modification, varName, isLast
|
|
|
4495
4504
|
const relationKey = change.property.replace("relation.", "");
|
|
4496
4505
|
if (relationKey === "collection") {
|
|
4497
4506
|
const isUsersCollection = String(change.newValue).toLowerCase() === "users";
|
|
4498
|
-
|
|
4507
|
+
let collectionIdValue;
|
|
4508
|
+
if (isUsersCollection) {
|
|
4509
|
+
collectionIdValue = '"_pb_users_auth_"';
|
|
4510
|
+
} else if (collectionIdMap && collectionIdMap.has(String(change.newValue))) {
|
|
4511
|
+
collectionIdValue = `"${collectionIdMap.get(String(change.newValue))}"`;
|
|
4512
|
+
} else {
|
|
4513
|
+
collectionIdValue = `app.findCollectionByNameOrId("${change.newValue}").id`;
|
|
4514
|
+
}
|
|
4499
4515
|
lines.push(` ${fieldVar}.collectionId = ${collectionIdValue};`);
|
|
4500
4516
|
} else {
|
|
4501
4517
|
lines.push(` ${fieldVar}.${relationKey} = ${formatValue(change.newValue)};`);
|
|
@@ -4571,9 +4587,10 @@ function generateOperationUpMigration(operation, collectionIdMap) {
|
|
|
4571
4587
|
const collectionName = typeof operation.collection === "string" ? operation.collection : operation.collection?.name ?? modification.collection;
|
|
4572
4588
|
let operationCount = 0;
|
|
4573
4589
|
const totalOperations = modification.fieldsToAdd.length + modification.fieldsToModify.length + modification.fieldsToRemove.length + modification.indexesToAdd.length + modification.indexesToRemove.length + modification.rulesToUpdate.length + modification.permissionsToUpdate.length;
|
|
4574
|
-
for (
|
|
4590
|
+
for (let i = 0; i < modification.fieldsToAdd.length; i++) {
|
|
4591
|
+
const field = modification.fieldsToAdd[i];
|
|
4575
4592
|
operationCount++;
|
|
4576
|
-
const varName = `collection_${collectionName}_add_${field.name}`;
|
|
4593
|
+
const varName = `collection_${collectionName}_add_${field.name}_${i}`;
|
|
4577
4594
|
const isLast = operationCount === totalOperations;
|
|
4578
4595
|
lines.push(generateFieldAddition(collectionName, field, varName, isLast, collectionIdMap));
|
|
4579
4596
|
if (!isLast) lines.push("");
|
|
@@ -4582,7 +4599,7 @@ function generateOperationUpMigration(operation, collectionIdMap) {
|
|
|
4582
4599
|
operationCount++;
|
|
4583
4600
|
const varName = `collection_${collectionName}_modify_${fieldMod.fieldName}`;
|
|
4584
4601
|
const isLast = operationCount === totalOperations;
|
|
4585
|
-
lines.push(generateFieldModification(collectionName, fieldMod, varName, isLast));
|
|
4602
|
+
lines.push(generateFieldModification(collectionName, fieldMod, varName, isLast, collectionIdMap));
|
|
4586
4603
|
if (!isLast) lines.push("");
|
|
4587
4604
|
}
|
|
4588
4605
|
for (const field of modification.fieldsToRemove) {
|
|
@@ -4767,6 +4784,11 @@ function generateUpMigration(diff) {
|
|
|
4767
4784
|
collectionIdMap.set(collection.name, collection.id);
|
|
4768
4785
|
}
|
|
4769
4786
|
}
|
|
4787
|
+
if (diff.existingCollectionIds) {
|
|
4788
|
+
for (const [name, id] of diff.existingCollectionIds) {
|
|
4789
|
+
collectionIdMap.set(name, id);
|
|
4790
|
+
}
|
|
4791
|
+
}
|
|
4770
4792
|
if (diff.collectionsToCreate.length > 0) {
|
|
4771
4793
|
lines.push(` // Create new collections`);
|
|
4772
4794
|
for (let i = 0; i < diff.collectionsToCreate.length; i++) {
|
|
@@ -4782,8 +4804,9 @@ function generateUpMigration(diff) {
|
|
|
4782
4804
|
const collectionName = modification.collection;
|
|
4783
4805
|
if (modification.fieldsToAdd.length > 0) {
|
|
4784
4806
|
lines.push(` // Add fields to ${collectionName}`);
|
|
4785
|
-
for (
|
|
4786
|
-
const
|
|
4807
|
+
for (let i = 0; i < modification.fieldsToAdd.length; i++) {
|
|
4808
|
+
const field = modification.fieldsToAdd[i];
|
|
4809
|
+
const varName = `collection_${collectionName}_add_${field.name}_${i}`;
|
|
4787
4810
|
lines.push(generateFieldAddition(collectionName, field, varName, false, collectionIdMap));
|
|
4788
4811
|
lines.push(``);
|
|
4789
4812
|
}
|
|
@@ -4792,7 +4815,7 @@ function generateUpMigration(diff) {
|
|
|
4792
4815
|
lines.push(` // Modify fields in ${collectionName}`);
|
|
4793
4816
|
for (const fieldMod of modification.fieldsToModify) {
|
|
4794
4817
|
const varName = `collection_${collectionName}_modify_${fieldMod.fieldName}`;
|
|
4795
|
-
lines.push(generateFieldModification(collectionName, fieldMod, varName));
|
|
4818
|
+
lines.push(generateFieldModification(collectionName, fieldMod, varName, false, collectionIdMap));
|
|
4796
4819
|
lines.push(``);
|
|
4797
4820
|
}
|
|
4798
4821
|
}
|
|
@@ -4889,6 +4912,11 @@ function generateDownMigration(diff) {
|
|
|
4889
4912
|
collectionIdMap.set(collection.name, collection.id);
|
|
4890
4913
|
}
|
|
4891
4914
|
}
|
|
4915
|
+
if (diff.existingCollectionIds) {
|
|
4916
|
+
for (const [name, id] of diff.existingCollectionIds) {
|
|
4917
|
+
collectionIdMap.set(name, id);
|
|
4918
|
+
}
|
|
4919
|
+
}
|
|
4892
4920
|
if (diff.collectionsToDelete.length > 0) {
|
|
4893
4921
|
lines.push(` // Recreate deleted collections`);
|
|
4894
4922
|
for (let i = 0; i < diff.collectionsToDelete.length; i++) {
|
|
@@ -5026,6 +5054,11 @@ function generate(diff, config) {
|
|
|
5026
5054
|
collectionIdMap.set(collection.name, collection.id);
|
|
5027
5055
|
}
|
|
5028
5056
|
}
|
|
5057
|
+
if (diff.existingCollectionIds) {
|
|
5058
|
+
for (const [name, id] of diff.existingCollectionIds) {
|
|
5059
|
+
collectionIdMap.set(name, id);
|
|
5060
|
+
}
|
|
5061
|
+
}
|
|
5029
5062
|
const baseTimestamp = generateTimestamp(normalizedConfig);
|
|
5030
5063
|
const operations = splitDiffByCollection(diff, baseTimestamp);
|
|
5031
5064
|
const filePaths = [];
|