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.
Files changed (44) hide show
  1. package/CHANGELOG.md +7 -0
  2. package/dist/cli/index.cjs +28 -6
  3. package/dist/cli/index.cjs.map +1 -1
  4. package/dist/cli/index.d.cts +1 -1
  5. package/dist/cli/index.d.ts +1 -1
  6. package/dist/cli/index.js +28 -6
  7. package/dist/cli/index.js.map +1 -1
  8. package/dist/cli/migrate.cjs +28 -6
  9. package/dist/cli/migrate.cjs.map +1 -1
  10. package/dist/cli/migrate.js +28 -6
  11. package/dist/cli/migrate.js.map +1 -1
  12. package/dist/cli/utils/index.d.cts +1 -1
  13. package/dist/cli/utils/index.d.ts +1 -1
  14. package/dist/index.cjs +42 -9
  15. package/dist/index.cjs.map +1 -1
  16. package/dist/index.d.cts +1 -1
  17. package/dist/index.d.ts +1 -1
  18. package/dist/index.js +42 -9
  19. package/dist/index.js.map +1 -1
  20. package/dist/migration/analyzer.d.cts +1 -1
  21. package/dist/migration/analyzer.d.ts +1 -1
  22. package/dist/migration/diff.cjs +10 -1
  23. package/dist/migration/diff.cjs.map +1 -1
  24. package/dist/migration/diff.d.cts +1 -1
  25. package/dist/migration/diff.d.ts +1 -1
  26. package/dist/migration/diff.js +10 -1
  27. package/dist/migration/diff.js.map +1 -1
  28. package/dist/migration/generator.cjs +32 -8
  29. package/dist/migration/generator.cjs.map +1 -1
  30. package/dist/migration/generator.d.cts +2 -2
  31. package/dist/migration/generator.d.ts +2 -2
  32. package/dist/migration/generator.js +32 -8
  33. package/dist/migration/generator.js.map +1 -1
  34. package/dist/migration/index.cjs +42 -9
  35. package/dist/migration/index.cjs.map +1 -1
  36. package/dist/migration/index.d.cts +1 -1
  37. package/dist/migration/index.d.ts +1 -1
  38. package/dist/migration/index.js +42 -9
  39. package/dist/migration/index.js.map +1 -1
  40. package/dist/migration/snapshot.d.cts +1 -1
  41. package/dist/migration/snapshot.d.ts +1 -1
  42. package/dist/{types-Dfp-NP2D.d.ts → types-BWhwQxG-.d.ts} +5 -0
  43. package/dist/{types-CVxPCgWX.d.cts → types-d0yBwHoN.d.cts} +5 -0
  44. 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-CVxPCgWX.cjs';
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-Dfp-NP2D.js';
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
- const collectionIdValue = isUsersCollection ? '"_pb_users_auth_"' : `app.findCollectionByNameOrId("${change.newValue}").id`;
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 (const field of modification.fieldsToAdd) {
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 (const field of modification.fieldsToAdd) {
842
- const varName = `collection_${collectionName}_add_${field.name}`;
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 = [];