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
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { e as SchemaDiff, C as CollectionSchema, F as FieldDefinition, c as FieldModification, f as CollectionOperation } from '../types-
|
|
1
|
+
import { e as SchemaDiff, C as CollectionSchema, F as FieldDefinition, c as FieldModification, f as CollectionOperation } from '../types-d0yBwHoN.cjs';
|
|
2
2
|
import '../fields-DBBm06VU.cjs';
|
|
3
3
|
import 'zod';
|
|
4
4
|
import '../permissions-ZHafVSIx.cjs';
|
|
@@ -176,7 +176,7 @@ declare function generateFieldAddition(collectionName: string, field: FieldDefin
|
|
|
176
176
|
* @param isLast - Whether this is the last operation (will return the result)
|
|
177
177
|
* @returns JavaScript code for modifying the field
|
|
178
178
|
*/
|
|
179
|
-
declare function generateFieldModification(collectionName: string, modification: FieldModification, varName?: string, isLast?: boolean): string;
|
|
179
|
+
declare function generateFieldModification(collectionName: string, modification: FieldModification, varName?: string, isLast?: boolean, collectionIdMap?: Map<string, string>): string;
|
|
180
180
|
/**
|
|
181
181
|
* Generates code for deleting a field from a collection
|
|
182
182
|
*
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { e as SchemaDiff, C as CollectionSchema, F as FieldDefinition, c as FieldModification, f as CollectionOperation } from '../types-
|
|
1
|
+
import { e as SchemaDiff, C as CollectionSchema, F as FieldDefinition, c as FieldModification, f as CollectionOperation } from '../types-BWhwQxG-.js';
|
|
2
2
|
import '../fields-DBBm06VU.js';
|
|
3
3
|
import 'zod';
|
|
4
4
|
import '../permissions-ZHafVSIx.js';
|
|
@@ -176,7 +176,7 @@ declare function generateFieldAddition(collectionName: string, field: FieldDefin
|
|
|
176
176
|
* @param isLast - Whether this is the last operation (will return the result)
|
|
177
177
|
* @returns JavaScript code for modifying the field
|
|
178
178
|
*/
|
|
179
|
-
declare function generateFieldModification(collectionName: string, modification: FieldModification, varName?: string, isLast?: boolean): string;
|
|
179
|
+
declare function generateFieldModification(collectionName: string, modification: FieldModification, varName?: string, isLast?: boolean, collectionIdMap?: Map<string, string>): string;
|
|
180
180
|
/**
|
|
181
181
|
* Generates code for deleting a field from a collection
|
|
182
182
|
*
|
|
@@ -536,7 +536,7 @@ function generateFieldAddition(collectionName, field, varName, isLast = false, c
|
|
|
536
536
|
lines.push(isLast ? ` return app.save(${collectionVar});` : ` app.save(${collectionVar});`);
|
|
537
537
|
return lines.join("\n");
|
|
538
538
|
}
|
|
539
|
-
function generateFieldModification(collectionName, modification, varName, isLast = false) {
|
|
539
|
+
function generateFieldModification(collectionName, modification, varName, isLast = false, collectionIdMap) {
|
|
540
540
|
const lines = [];
|
|
541
541
|
const collectionVar = varName || `collection_${collectionName}_${modification.fieldName}`;
|
|
542
542
|
const fieldVar = `${collectionVar}_field`;
|
|
@@ -551,7 +551,14 @@ function generateFieldModification(collectionName, modification, varName, isLast
|
|
|
551
551
|
const relationKey = change.property.replace("relation.", "");
|
|
552
552
|
if (relationKey === "collection") {
|
|
553
553
|
const isUsersCollection = String(change.newValue).toLowerCase() === "users";
|
|
554
|
-
|
|
554
|
+
let collectionIdValue;
|
|
555
|
+
if (isUsersCollection) {
|
|
556
|
+
collectionIdValue = '"_pb_users_auth_"';
|
|
557
|
+
} else if (collectionIdMap && collectionIdMap.has(String(change.newValue))) {
|
|
558
|
+
collectionIdValue = `"${collectionIdMap.get(String(change.newValue))}"`;
|
|
559
|
+
} else {
|
|
560
|
+
collectionIdValue = `app.findCollectionByNameOrId("${change.newValue}").id`;
|
|
561
|
+
}
|
|
555
562
|
lines.push(` ${fieldVar}.collectionId = ${collectionIdValue};`);
|
|
556
563
|
} else {
|
|
557
564
|
lines.push(` ${fieldVar}.${relationKey} = ${formatValue(change.newValue)};`);
|
|
@@ -627,9 +634,10 @@ function generateOperationUpMigration(operation, collectionIdMap) {
|
|
|
627
634
|
const collectionName = typeof operation.collection === "string" ? operation.collection : operation.collection?.name ?? modification.collection;
|
|
628
635
|
let operationCount = 0;
|
|
629
636
|
const totalOperations = modification.fieldsToAdd.length + modification.fieldsToModify.length + modification.fieldsToRemove.length + modification.indexesToAdd.length + modification.indexesToRemove.length + modification.rulesToUpdate.length + modification.permissionsToUpdate.length;
|
|
630
|
-
for (
|
|
637
|
+
for (let i = 0; i < modification.fieldsToAdd.length; i++) {
|
|
638
|
+
const field = modification.fieldsToAdd[i];
|
|
631
639
|
operationCount++;
|
|
632
|
-
const varName = `collection_${collectionName}_add_${field.name}`;
|
|
640
|
+
const varName = `collection_${collectionName}_add_${field.name}_${i}`;
|
|
633
641
|
const isLast = operationCount === totalOperations;
|
|
634
642
|
lines.push(generateFieldAddition(collectionName, field, varName, isLast, collectionIdMap));
|
|
635
643
|
if (!isLast) lines.push("");
|
|
@@ -638,7 +646,7 @@ function generateOperationUpMigration(operation, collectionIdMap) {
|
|
|
638
646
|
operationCount++;
|
|
639
647
|
const varName = `collection_${collectionName}_modify_${fieldMod.fieldName}`;
|
|
640
648
|
const isLast = operationCount === totalOperations;
|
|
641
|
-
lines.push(generateFieldModification(collectionName, fieldMod, varName, isLast));
|
|
649
|
+
lines.push(generateFieldModification(collectionName, fieldMod, varName, isLast, collectionIdMap));
|
|
642
650
|
if (!isLast) lines.push("");
|
|
643
651
|
}
|
|
644
652
|
for (const field of modification.fieldsToRemove) {
|
|
@@ -823,6 +831,11 @@ function generateUpMigration(diff) {
|
|
|
823
831
|
collectionIdMap.set(collection.name, collection.id);
|
|
824
832
|
}
|
|
825
833
|
}
|
|
834
|
+
if (diff.existingCollectionIds) {
|
|
835
|
+
for (const [name, id] of diff.existingCollectionIds) {
|
|
836
|
+
collectionIdMap.set(name, id);
|
|
837
|
+
}
|
|
838
|
+
}
|
|
826
839
|
if (diff.collectionsToCreate.length > 0) {
|
|
827
840
|
lines.push(` // Create new collections`);
|
|
828
841
|
for (let i = 0; i < diff.collectionsToCreate.length; i++) {
|
|
@@ -838,8 +851,9 @@ function generateUpMigration(diff) {
|
|
|
838
851
|
const collectionName = modification.collection;
|
|
839
852
|
if (modification.fieldsToAdd.length > 0) {
|
|
840
853
|
lines.push(` // Add fields to ${collectionName}`);
|
|
841
|
-
for (
|
|
842
|
-
const
|
|
854
|
+
for (let i = 0; i < modification.fieldsToAdd.length; i++) {
|
|
855
|
+
const field = modification.fieldsToAdd[i];
|
|
856
|
+
const varName = `collection_${collectionName}_add_${field.name}_${i}`;
|
|
843
857
|
lines.push(generateFieldAddition(collectionName, field, varName, false, collectionIdMap));
|
|
844
858
|
lines.push(``);
|
|
845
859
|
}
|
|
@@ -848,7 +862,7 @@ function generateUpMigration(diff) {
|
|
|
848
862
|
lines.push(` // Modify fields in ${collectionName}`);
|
|
849
863
|
for (const fieldMod of modification.fieldsToModify) {
|
|
850
864
|
const varName = `collection_${collectionName}_modify_${fieldMod.fieldName}`;
|
|
851
|
-
lines.push(generateFieldModification(collectionName, fieldMod, varName));
|
|
865
|
+
lines.push(generateFieldModification(collectionName, fieldMod, varName, false, collectionIdMap));
|
|
852
866
|
lines.push(``);
|
|
853
867
|
}
|
|
854
868
|
}
|
|
@@ -945,6 +959,11 @@ function generateDownMigration(diff) {
|
|
|
945
959
|
collectionIdMap.set(collection.name, collection.id);
|
|
946
960
|
}
|
|
947
961
|
}
|
|
962
|
+
if (diff.existingCollectionIds) {
|
|
963
|
+
for (const [name, id] of diff.existingCollectionIds) {
|
|
964
|
+
collectionIdMap.set(name, id);
|
|
965
|
+
}
|
|
966
|
+
}
|
|
948
967
|
if (diff.collectionsToDelete.length > 0) {
|
|
949
968
|
lines.push(` // Recreate deleted collections`);
|
|
950
969
|
for (let i = 0; i < diff.collectionsToDelete.length; i++) {
|
|
@@ -1082,6 +1101,11 @@ function generate(diff, config) {
|
|
|
1082
1101
|
collectionIdMap.set(collection.name, collection.id);
|
|
1083
1102
|
}
|
|
1084
1103
|
}
|
|
1104
|
+
if (diff.existingCollectionIds) {
|
|
1105
|
+
for (const [name, id] of diff.existingCollectionIds) {
|
|
1106
|
+
collectionIdMap.set(name, id);
|
|
1107
|
+
}
|
|
1108
|
+
}
|
|
1085
1109
|
const baseTimestamp = generateTimestamp(normalizedConfig);
|
|
1086
1110
|
const operations = splitDiffByCollection(diff, baseTimestamp);
|
|
1087
1111
|
const filePaths = [];
|