@payloadcms/drizzle 4.0.0-internal.fa345ef → 4.0.0-internal.fec2230

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 (196) hide show
  1. package/dist/createTableName.d.ts.map +1 -1
  2. package/dist/createTableName.js +2 -7
  3. package/dist/createTableName.js.map +1 -1
  4. package/dist/exports/postgres.d.ts +2 -0
  5. package/dist/exports/postgres.d.ts.map +1 -1
  6. package/dist/exports/postgres.js +2 -0
  7. package/dist/exports/postgres.js.map +1 -1
  8. package/dist/find/buildFindManyArgs.d.ts.map +1 -1
  9. package/dist/find/findMany.d.ts.map +1 -1
  10. package/dist/find/traverseFields.d.ts.map +1 -1
  11. package/dist/index.d.ts +3 -2
  12. package/dist/index.d.ts.map +1 -1
  13. package/dist/index.js +1 -0
  14. package/dist/index.js.map +1 -1
  15. package/dist/migrate.d.ts.map +1 -1
  16. package/dist/migrate.js +35 -13
  17. package/dist/migrate.js.map +1 -1
  18. package/dist/migrateDown.d.ts +2 -1
  19. package/dist/migrateDown.d.ts.map +1 -1
  20. package/dist/migrateDown.js +12 -2
  21. package/dist/migrateDown.js.map +1 -1
  22. package/dist/migrateFresh.d.ts +4 -2
  23. package/dist/migrateFresh.d.ts.map +1 -1
  24. package/dist/migrateFresh.js +21 -7
  25. package/dist/migrateFresh.js.map +1 -1
  26. package/dist/migrateRefresh.d.ts +2 -1
  27. package/dist/migrateRefresh.d.ts.map +1 -1
  28. package/dist/migrateRefresh.js +14 -3
  29. package/dist/migrateRefresh.js.map +1 -1
  30. package/dist/migrateReset.d.ts +2 -1
  31. package/dist/migrateReset.d.ts.map +1 -1
  32. package/dist/migrateReset.js +12 -2
  33. package/dist/migrateReset.js.map +1 -1
  34. package/dist/migrateStatus.d.ts +2 -1
  35. package/dist/migrateStatus.d.ts.map +1 -1
  36. package/dist/migrateStatus.js +11 -6
  37. package/dist/migrateStatus.js.map +1 -1
  38. package/dist/postgres/createDatabase.d.ts.map +1 -1
  39. package/dist/postgres/createExtensions.d.ts.map +1 -1
  40. package/dist/postgres/createJSONQuery/index.d.ts.map +1 -1
  41. package/dist/postgres/init.d.ts.map +1 -1
  42. package/dist/postgres/init.js +6 -0
  43. package/dist/postgres/init.js.map +1 -1
  44. package/dist/postgres/predefinedMigrations/v2-v3/fetchAndResave/index.d.ts.map +1 -1
  45. package/dist/postgres/predefinedMigrations/v2-v3/fetchAndResave/traverseFields.d.ts.map +1 -1
  46. package/dist/postgres/predefinedMigrations/v2-v3/groupUpSQLStatements.d.ts.map +1 -1
  47. package/dist/postgres/predefinedMigrations/v2-v3/index.d.ts.map +1 -1
  48. package/dist/postgres/predefinedMigrations/v2-v3/index.js +1 -1
  49. package/dist/postgres/predefinedMigrations/v2-v3/index.js.map +1 -1
  50. package/dist/postgres/predefinedMigrations/v2-v3/migrateRelationships.d.ts.map +1 -1
  51. package/dist/postgres/predefinedMigrations/v2-v3/traverseFields.d.ts.map +1 -1
  52. package/dist/postgres/query/assertOperatorHandlerExtensionsInstalled.d.ts +15 -0
  53. package/dist/postgres/query/assertOperatorHandlerExtensionsInstalled.d.ts.map +1 -0
  54. package/dist/postgres/query/assertOperatorHandlerExtensionsInstalled.js +25 -0
  55. package/dist/postgres/query/assertOperatorHandlerExtensionsInstalled.js.map +1 -0
  56. package/dist/postgres/query/assertOperatorHandlerExtensionsInstalled.spec.js +91 -0
  57. package/dist/postgres/query/assertOperatorHandlerExtensionsInstalled.spec.js.map +1 -0
  58. package/dist/postgres/query/postgresUnaccent.d.ts +13 -0
  59. package/dist/postgres/query/postgresUnaccent.d.ts.map +1 -0
  60. package/dist/postgres/query/postgresUnaccent.js +40 -0
  61. package/dist/postgres/query/postgresUnaccent.js.map +1 -0
  62. package/dist/postgres/query/postgresUnaccent.spec.js +71 -0
  63. package/dist/postgres/query/postgresUnaccent.spec.js.map +1 -0
  64. package/dist/postgres/schema/buildDrizzleTable.d.ts.map +1 -1
  65. package/dist/postgres/schema/geometryColumn.d.ts +2 -2
  66. package/dist/postgres/schema/geometryColumn.d.ts.map +1 -1
  67. package/dist/postgres/types.d.ts +13 -2
  68. package/dist/postgres/types.d.ts.map +1 -1
  69. package/dist/postgres/types.js.map +1 -1
  70. package/dist/queries/addJoinTable.d.ts +1 -1
  71. package/dist/queries/addJoinTable.d.ts.map +1 -1
  72. package/dist/queries/buildOperatorConstraint.d.ts +22 -0
  73. package/dist/queries/buildOperatorConstraint.d.ts.map +1 -0
  74. package/dist/queries/buildOperatorConstraint.js +63 -0
  75. package/dist/queries/buildOperatorConstraint.js.map +1 -0
  76. package/dist/queries/buildOperatorConstraint.spec.js +348 -0
  77. package/dist/queries/buildOperatorConstraint.spec.js.map +1 -0
  78. package/dist/queries/buildOrderBy.d.ts +1 -1
  79. package/dist/queries/buildOrderBy.d.ts.map +1 -1
  80. package/dist/queries/buildQuery.d.ts.map +1 -1
  81. package/dist/queries/getTableAlias.d.ts.map +1 -1
  82. package/dist/queries/getTableColumnFromPath.d.ts +12 -3
  83. package/dist/queries/getTableColumnFromPath.d.ts.map +1 -1
  84. package/dist/queries/getTableColumnFromPath.js +50 -27
  85. package/dist/queries/getTableColumnFromPath.js.map +1 -1
  86. package/dist/queries/operatorMap.d.ts +7 -3
  87. package/dist/queries/operatorMap.d.ts.map +1 -1
  88. package/dist/queries/operatorMap.js.map +1 -1
  89. package/dist/queries/parseParams.d.ts.map +1 -1
  90. package/dist/queries/parseParams.js +203 -8
  91. package/dist/queries/parseParams.js.map +1 -1
  92. package/dist/queries/resolveRelationshipPath.d.ts +36 -0
  93. package/dist/queries/resolveRelationshipPath.d.ts.map +1 -0
  94. package/dist/queries/resolveRelationshipPath.js +66 -0
  95. package/dist/queries/resolveRelationshipPath.js.map +1 -0
  96. package/dist/queries/sanitizeQueryValue.d.ts.map +1 -1
  97. package/dist/queries/selectDistinct.d.ts.map +1 -1
  98. package/dist/queries/validateOperatorHandlers.d.ts +8 -0
  99. package/dist/queries/validateOperatorHandlers.d.ts.map +1 -0
  100. package/dist/queries/validateOperatorHandlers.js +30 -0
  101. package/dist/queries/validateOperatorHandlers.js.map +1 -0
  102. package/dist/queries/validateOperatorHandlers.spec.js +142 -0
  103. package/dist/queries/validateOperatorHandlers.spec.js.map +1 -0
  104. package/dist/schema/build.d.ts.map +1 -1
  105. package/dist/schema/buildDrizzleRelations.d.ts.map +1 -1
  106. package/dist/schema/buildRawSchema.d.ts.map +1 -1
  107. package/dist/schema/buildRawSchema.spec.js +290 -0
  108. package/dist/schema/buildRawSchema.spec.js.map +1 -0
  109. package/dist/schema/idToUUID.d.ts.map +1 -1
  110. package/dist/schema/traverseFields.d.ts.map +1 -1
  111. package/dist/schema/traverseFields.js +6 -5
  112. package/dist/schema/traverseFields.js.map +1 -1
  113. package/dist/schema/withDefault.d.ts.map +1 -1
  114. package/dist/sqlite/createJSONQuery/convertPathToJSONTraversal.d.ts.map +1 -1
  115. package/dist/sqlite/createJSONQuery/index.d.ts.map +1 -1
  116. package/dist/transform/read/hasManyNumber.d.ts.map +1 -1
  117. package/dist/transform/read/hasManyText.d.ts.map +1 -1
  118. package/dist/transform/read/index.d.ts.map +1 -1
  119. package/dist/transform/read/relationship.d.ts.map +1 -1
  120. package/dist/transform/read/traverseFields.d.ts.map +1 -1
  121. package/dist/transform/write/array.d.ts.map +1 -1
  122. package/dist/transform/write/blocks.d.ts.map +1 -1
  123. package/dist/transform/write/index.d.ts.map +1 -1
  124. package/dist/transform/write/numbers.d.ts.map +1 -1
  125. package/dist/transform/write/relationships.d.ts.map +1 -1
  126. package/dist/transform/write/selects.d.ts.map +1 -1
  127. package/dist/transform/write/texts.d.ts.map +1 -1
  128. package/dist/transform/write/traverseFields.d.ts.map +1 -1
  129. package/dist/transform/write/traverseFields.js +3 -0
  130. package/dist/transform/write/traverseFields.js.map +1 -1
  131. package/dist/types.d.ts +50 -2
  132. package/dist/types.d.ts.map +1 -1
  133. package/dist/types.js.map +1 -1
  134. package/dist/updateJobs.d.ts.map +1 -1
  135. package/dist/updateJobs.js +37 -0
  136. package/dist/updateJobs.js.map +1 -1
  137. package/dist/upsertRow/deleteExistingArrayRows.d.ts.map +1 -1
  138. package/dist/upsertRow/deleteExistingRowsByPath.d.ts.map +1 -1
  139. package/dist/upsertRow/handleUpsertError.d.ts.map +1 -1
  140. package/dist/upsertRow/index.d.ts.map +1 -1
  141. package/dist/upsertRow/insertArrays.d.ts.map +1 -1
  142. package/dist/upsertRow/insertArrays.js +2 -1
  143. package/dist/upsertRow/insertArrays.js.map +1 -1
  144. package/dist/upsertRow/shouldUseOptimizedUpsertRow.d.ts.map +1 -1
  145. package/dist/utilities/appendPrefixToKeys.d.ts.map +1 -1
  146. package/dist/utilities/blocksToJsonMigrator.d.ts.map +1 -1
  147. package/dist/utilities/buildCreateMigration.d.ts.map +1 -1
  148. package/dist/utilities/buildCreateMigration.js +12 -8
  149. package/dist/utilities/buildCreateMigration.js.map +1 -1
  150. package/dist/utilities/buildForeignKeyName.d.ts.map +1 -1
  151. package/dist/utilities/buildForeignKeyName.js +3 -2
  152. package/dist/utilities/buildForeignKeyName.js.map +1 -1
  153. package/dist/utilities/buildIndexName.d.ts.map +1 -1
  154. package/dist/utilities/buildIndexName.js +3 -2
  155. package/dist/utilities/buildIndexName.js.map +1 -1
  156. package/dist/utilities/checkTruncatedIdentifiers.d.ts +13 -0
  157. package/dist/utilities/checkTruncatedIdentifiers.d.ts.map +1 -0
  158. package/dist/utilities/checkTruncatedIdentifiers.js +56 -0
  159. package/dist/utilities/checkTruncatedIdentifiers.js.map +1 -0
  160. package/dist/utilities/checkTruncatedIdentifiers.spec.js +301 -0
  161. package/dist/utilities/checkTruncatedIdentifiers.spec.js.map +1 -0
  162. package/dist/utilities/createBlocksMap.d.ts.map +1 -1
  163. package/dist/utilities/createRelationshipMap.d.ts.map +1 -1
  164. package/dist/utilities/createSchemaGenerator.d.ts.map +1 -1
  165. package/dist/utilities/createSchemaGenerator.js +3 -0
  166. package/dist/utilities/createSchemaGenerator.js.map +1 -1
  167. package/dist/utilities/escapeSQLValue.d.ts.map +1 -1
  168. package/dist/utilities/executeSchemaHooks.d.ts.map +1 -1
  169. package/dist/utilities/extendDrizzleTable.d.ts.map +1 -1
  170. package/dist/utilities/getArrayRelationName.d.ts.map +1 -1
  171. package/dist/utilities/getCollectionIdType.d.ts.map +1 -1
  172. package/dist/utilities/getMigrationTemplate.d.ts.map +1 -1
  173. package/dist/utilities/getNameFromDrizzleTable.d.ts.map +1 -1
  174. package/dist/utilities/getPrimaryDb.d.ts +1 -1
  175. package/dist/utilities/getPrimaryDb.d.ts.map +1 -1
  176. package/dist/utilities/getTransaction.d.ts +1 -1
  177. package/dist/utilities/getTransaction.d.ts.map +1 -1
  178. package/dist/utilities/hasLocalesTable.d.ts.map +1 -1
  179. package/dist/utilities/isPolymorphicRelationship.d.ts.map +1 -1
  180. package/dist/utilities/isUUIDType.d.ts.map +1 -1
  181. package/dist/utilities/json.d.ts.map +1 -1
  182. package/dist/utilities/migrationTableExists.d.ts.map +1 -1
  183. package/dist/utilities/parseError.d.ts.map +1 -1
  184. package/dist/utilities/pushDevSchema.d.ts.map +1 -1
  185. package/dist/utilities/rawConstraint.d.ts.map +1 -1
  186. package/dist/utilities/sanitizePathSegment.d.ts.map +1 -1
  187. package/dist/utilities/validateExistingBlockIsIdentical.d.ts +1 -5
  188. package/dist/utilities/validateExistingBlockIsIdentical.d.ts.map +1 -1
  189. package/dist/utilities/validateExistingBlockIsIdentical.js.map +1 -1
  190. package/dist/utilities/validateIdentifierLength.d.ts +12 -0
  191. package/dist/utilities/validateIdentifierLength.d.ts.map +1 -0
  192. package/dist/utilities/validateIdentifierLength.js +18 -0
  193. package/dist/utilities/validateIdentifierLength.js.map +1 -0
  194. package/dist/utilities/validateIdentifierLength.spec.js +19 -0
  195. package/dist/utilities/validateIdentifierLength.spec.js.map +1 -0
  196. package/package.json +3 -3
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/utilities/checkTruncatedIdentifiers.spec.ts"],"sourcesContent":["import { describe, expect, it, vi } from 'vitest'\n\nimport type { DrizzleAdapter } from '../types.js'\n\nimport { checkTruncatedIdentifiers } from './checkTruncatedIdentifiers.js'\nimport { maxIdentifierLength } from './validateIdentifierLength.js'\n\nconst buildAdapter = (\n rawTables: DrizzleAdapter['rawTables'],\n warn: (...args: any[]) => void = () => {},\n): Pick<DrizzleAdapter, 'payload' | 'rawTables'> =>\n ({\n payload: { logger: { warn } },\n rawTables,\n }) as unknown as Pick<DrizzleAdapter, 'payload' | 'rawTables'>\n\nconst longName = (char: string) => char.repeat(maxIdentifierLength + 1)\n\ndescribe('checkTruncatedIdentifiers', () => {\n it('should neither warn nor throw when all identifiers fit within the limit', () => {\n const warn = vi.fn()\n\n const adapter = buildAdapter(\n {\n posts: {\n name: 'posts',\n columns: {\n id: { name: 'id', type: 'serial' },\n title: { name: 'title', type: 'text' },\n },\n },\n },\n warn,\n )\n\n expect(() => checkTruncatedIdentifiers({ adapter, logWarnings: true })).not.toThrow()\n expect(warn).not.toHaveBeenCalled()\n })\n\n it('should warn (not throw) for a single over-long column name', () => {\n const columnName = longName('a')\n const warn = vi.fn()\n\n const adapter = buildAdapter(\n {\n posts: {\n name: 'posts',\n columns: {\n overflow: { name: columnName, type: 'text' },\n },\n },\n },\n warn,\n )\n\n expect(() => checkTruncatedIdentifiers({ adapter, logWarnings: true })).not.toThrow()\n expect(warn).toHaveBeenCalledTimes(1)\n expect(warn.mock.calls[0][0]).toContain(columnName)\n })\n\n it('should not warn when logWarnings is false', () => {\n const warn = vi.fn()\n\n const adapter = buildAdapter(\n {\n posts: {\n name: 'posts',\n columns: {\n overflow: { name: longName('a'), type: 'text' },\n },\n },\n },\n warn,\n )\n\n expect(() => checkTruncatedIdentifiers({ adapter, logWarnings: false })).not.toThrow()\n expect(warn).not.toHaveBeenCalled()\n })\n\n it('should throw when two columns in the same table truncate to the same name', () => {\n // Differ only past the 63rd character, so both truncate to the same identifier.\n const shared = 'a'.repeat(maxIdentifierLength)\n\n const adapter = buildAdapter({\n posts: {\n name: 'posts',\n columns: {\n first: { name: `${shared}_one`, type: 'text' },\n second: { name: `${shared}_two`, type: 'text' },\n },\n },\n })\n\n expect(() => checkTruncatedIdentifiers({ adapter, logWarnings: true })).toThrow(\n 'truncate to the same name',\n )\n })\n\n it('should throw on a collision even when logWarnings is false', () => {\n const shared = 'a'.repeat(maxIdentifierLength)\n\n const adapter = buildAdapter({\n posts: {\n name: 'posts',\n columns: {\n first: { name: `${shared}_one`, type: 'text' },\n second: { name: `${shared}_two`, type: 'text' },\n },\n },\n })\n\n expect(() => checkTruncatedIdentifiers({ adapter, logWarnings: false })).toThrow()\n })\n\n it('should not treat same-named columns in different tables as a collision', () => {\n const shared = 'a'.repeat(maxIdentifierLength)\n const warn = vi.fn()\n\n const adapter = buildAdapter(\n {\n posts: {\n name: 'posts',\n columns: {\n overflow: { name: `${shared}_one`, type: 'text' },\n },\n },\n pages: {\n name: 'pages',\n columns: {\n overflow: { name: `${shared}_two`, type: 'text' },\n },\n },\n },\n warn,\n )\n\n expect(() => checkTruncatedIdentifiers({ adapter, logWarnings: true })).not.toThrow()\n expect(warn).toHaveBeenCalledTimes(1)\n })\n\n it('should throw when two table names truncate to the same name', () => {\n const shared = 'a'.repeat(maxIdentifierLength)\n\n const adapter = buildAdapter({\n [`${shared}_one`]: {\n name: `${shared}_one`,\n columns: { id: { name: 'id', type: 'serial' } },\n },\n [`${shared}_two`]: {\n name: `${shared}_two`,\n columns: { id: { name: 'id', type: 'serial' } },\n },\n })\n\n expect(() => checkTruncatedIdentifiers({ adapter, logWarnings: true })).toThrow(\n 'truncate to the same name',\n )\n })\n\n it('should warn about a single over-long inline index name', () => {\n const indexName = `${'a'.repeat(maxIdentifierLength)}_idx`\n const warn = vi.fn()\n\n const adapter = buildAdapter(\n {\n posts: {\n name: 'posts',\n columns: { id: { name: 'id', type: 'serial' } },\n indexes: { a: { name: indexName, on: 'id' } },\n },\n },\n warn,\n )\n\n checkTruncatedIdentifiers({ adapter, logWarnings: true })\n\n expect(warn).toHaveBeenCalledTimes(1)\n expect(warn.mock.calls[0][0]).toContain(indexName)\n })\n\n it('should throw when two inline index names truncate to the same name', () => {\n const shared = 'a'.repeat(maxIdentifierLength)\n\n const adapter = buildAdapter({\n posts: {\n name: 'posts',\n columns: { id: { name: 'id', type: 'serial' } },\n indexes: { a: { name: `${shared}_one`, on: 'id' } },\n },\n pages: {\n name: 'pages',\n columns: { id: { name: 'id', type: 'serial' } },\n indexes: { b: { name: `${shared}_two`, on: 'id' } },\n },\n })\n\n expect(() => checkTruncatedIdentifiers({ adapter, logWarnings: true })).toThrow(\n 'truncate to the same name',\n )\n })\n\n it('should throw when two inline foreign key names truncate to the same name', () => {\n const shared = 'a'.repeat(maxIdentifierLength)\n\n const adapter = buildAdapter({\n posts: {\n name: 'posts',\n columns: { author_id: { name: 'author_id', type: 'integer' } },\n foreignKeys: {\n a: {\n name: `${shared}_one`,\n columns: ['author_id'],\n foreignColumns: [{ name: 'id', table: 'authors' }],\n },\n },\n },\n pages: {\n name: 'pages',\n columns: { author_id: { name: 'author_id', type: 'integer' } },\n foreignKeys: {\n b: {\n name: `${shared}_two`,\n columns: ['author_id'],\n foreignColumns: [{ name: 'id', table: 'authors' }],\n },\n },\n },\n })\n\n expect(() => checkTruncatedIdentifiers({ adapter, logWarnings: true })).toThrow(\n 'truncate to the same name',\n )\n })\n})\n"],"names":["describe","expect","it","vi","checkTruncatedIdentifiers","maxIdentifierLength","buildAdapter","rawTables","warn","payload","logger","longName","char","repeat","fn","adapter","posts","name","columns","id","type","title","logWarnings","not","toThrow","toHaveBeenCalled","columnName","overflow","toHaveBeenCalledTimes","mock","calls","toContain","shared","first","second","pages","indexName","indexes","a","on","b","author_id","foreignKeys","foreignColumns","table"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"createBlocksMap.d.ts","sourceRoot":"","sources":["../../src/utilities/createBlocksMap.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,SAAS,GAAG;IACtB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAA;CAC1C,CAAA;AAED,eAAO,MAAM,eAAe,GAAI,MAAM,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAG,SAyC/D,CAAA"}
1
+ {"version":3,"file":"createBlocksMap.d.ts","sourceRoot":"","sources":["../../src/utilities/createBlocksMap.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,SAAS,GAAG;IACtB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAA;CAC1C,CAAA;AAED,eAAO,MAAM,eAAe,SAAU,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAG,SAyC/D,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"createRelationshipMap.d.ts","sourceRoot":"","sources":["../../src/utilities/createRelationshipMap.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,aAAa,GAAI,MAAM,OAAO,KAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAqBrF,CAAA"}
1
+ {"version":3,"file":"createRelationshipMap.d.ts","sourceRoot":"","sources":["../../src/utilities/createRelationshipMap.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,aAAa,SAAU,OAAO,KAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAqBrF,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"createSchemaGenerator.d.ts","sourceRoot":"","sources":["../../src/utilities/createSchemaGenerator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAM7C,OAAO,KAAK,EAAE,qBAAqB,EAAkB,MAAM,aAAa,CAAA;AAkCxE,eAAO,MAAM,qBAAqB,GAAI,yGAOnC;IACD,qBAAqB,EAAE,qBAAqB,CAAA;IAC5C,iBAAiB,EAAE,MAAM,CAAA;IACzB,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,WAAW,EAAE,MAAM,CAAA;CACpB,KAAG,cAiTH,CAAA"}
1
+ {"version":3,"file":"createSchemaGenerator.d.ts","sourceRoot":"","sources":["../../src/utilities/createSchemaGenerator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAM7C,OAAO,KAAK,EAAE,qBAAqB,EAAkB,MAAM,aAAa,CAAA;AAkCxE,eAAO,MAAM,qBAAqB,4GAO/B;IACD,qBAAqB,EAAE,qBAAqB,CAAA;IAC5C,iBAAiB,EAAE,MAAM,CAAA;IACzB,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,WAAW,EAAE,MAAM,CAAA;CACpB,KAAG,cAmTH,CAAA"}
@@ -251,6 +251,9 @@ declare module '${this.packageName}' {
251
251
  if (log) {
252
252
  this.payload.logger.info(`Written ${outputFile}`);
253
253
  }
254
+ return {
255
+ outputFile
256
+ };
254
257
  };
255
258
  };
256
259
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/utilities/createSchemaGenerator.ts"],"sourcesContent":["import type { GenerateSchema } from 'payload'\n\nimport { existsSync } from 'fs'\nimport { writeFile } from 'fs/promises'\nimport path from 'path'\n\nimport type { ColumnToCodeConverter, DrizzleAdapter } from '../types.js'\n\n/**\n * @example\n * console.log(sanitizeObjectKey(\"oneTwo\")); // oneTwo\n * console.log(sanitizeObjectKey(\"one-two\")); // 'one-two'\n * console.log(sanitizeObjectKey(\"_one$Two3\")); // _one$Two3\n * console.log(sanitizeObjectKey(\"3invalid\")); // '3invalid'\n */\nconst sanitizeObjectKey = (key: string) => {\n // Regular expression for a valid identifier\n const identifierRegex = /^[a-z_$][\\w$]*$/i\n if (identifierRegex.test(key)) {\n return key\n }\n\n return `'${key}'`\n}\n\n/**\n * @example\n * (columns default-valuesID) -> columns['default-valuesID']\n * (columns defaultValues) -> columns.defaultValues\n */\nconst accessProperty = (objName: string, key: string) => {\n const sanitized = sanitizeObjectKey(key)\n\n if (sanitized.startsWith(\"'\")) {\n return `${objName}[${sanitized}]`\n }\n\n return `${objName}.${key}`\n}\n\nexport const createSchemaGenerator = ({\n columnToCodeConverter,\n corePackageSuffix,\n defaultOutputFile,\n enumImport,\n schemaImport,\n tableImport,\n}: {\n columnToCodeConverter: ColumnToCodeConverter\n corePackageSuffix: string\n defaultOutputFile?: string\n enumImport?: string\n schemaImport?: string\n tableImport: string\n}): GenerateSchema => {\n return async function generateSchema(\n this: DrizzleAdapter,\n { log = true, outputFile = defaultOutputFile, prettify = true } = {},\n ) {\n const importDeclarations: Record<string, Set<string>> = {}\n\n const tableDeclarations: string[] = []\n const enumDeclarations: string[] = []\n const relationsDeclarations: string[] = []\n\n const addImport = (from: string, name: string) => {\n if (!importDeclarations[from]) {\n importDeclarations[from] = new Set()\n }\n\n importDeclarations[from].add(name)\n }\n\n const corePackage = `${this.packageName}/drizzle/${corePackageSuffix}`\n\n let schemaDeclaration: null | string = null\n\n if (this.schemaName) {\n addImport(corePackage, schemaImport)\n schemaDeclaration = `export const db_schema = ${schemaImport}('${this.schemaName}')`\n }\n\n const enumFn = this.schemaName ? `db_schema.enum` : enumImport\n\n const enumsList: string[] = []\n const addEnum = (name: string, options: string[]) => {\n if (enumsList.some((each) => each === name)) {\n return\n }\n enumsList.push(name)\n enumDeclarations.push(\n `export const ${name} = ${enumFn}('${name}', [${options.map((option) => `'${option}'`).join(', ')}])`,\n )\n }\n\n if (this.payload.config.localization && enumImport) {\n addEnum('enum__locales', this.payload.config.localization.localeCodes)\n }\n\n const tableFn = this.schemaName ? `db_schema.table` : tableImport\n\n if (!this.schemaName) {\n addImport(corePackage, tableImport)\n }\n\n addImport(corePackage, 'index')\n addImport(corePackage, 'uniqueIndex')\n addImport(corePackage, 'foreignKey')\n\n addImport(`${this.packageName}/drizzle`, 'sql')\n addImport(`${this.packageName}/drizzle`, 'relations')\n\n const fkGraph: Record<string, Set<string>> = {}\n\n for (const tableName in this.rawTables) {\n fkGraph[tableName] = new Set()\n const table = this.rawTables[tableName]\n\n for (const colKey in table.columns) {\n const col = table.columns[colKey]\n\n if (col.reference && col.reference.table !== tableName) {\n fkGraph[tableName].add(col.reference.table)\n }\n }\n }\n\n const canReach = (from: string, target: string, visited: Set<string>): boolean => {\n if (from === target) {\n return true\n }\n\n if (visited.has(from)) {\n return false\n }\n\n visited.add(from)\n\n for (const neighbor of fkGraph[from] ?? []) {\n if (canReach(neighbor, target, visited)) {\n return true\n }\n }\n\n return false\n }\n\n const circularEdges = new Set<string>()\n\n for (const tableA in fkGraph) {\n for (const tableB of fkGraph[tableA]) {\n if (canReach(tableB, tableA, new Set())) {\n circularEdges.add(`${tableA}:${tableB}`)\n }\n }\n }\n\n for (const tableName in this.rawTables) {\n const table = this.rawTables[tableName]\n\n const extrasDeclarations: string[] = []\n\n if (table.indexes) {\n for (const key in table.indexes) {\n const index = table.indexes[key]\n let indexDeclaration = `${index.unique ? 'uniqueIndex' : 'index'}('${index.name}')`\n indexDeclaration += `.on(${typeof index.on === 'string' ? `${accessProperty('columns', index.on)}` : `${index.on.map((on) => `${accessProperty('columns', on)}`).join(', ')}`}),`\n extrasDeclarations.push(indexDeclaration)\n }\n }\n\n if (table.foreignKeys) {\n for (const key in table.foreignKeys) {\n const foreignKey = table.foreignKeys[key]\n\n let foreignKeyDeclaration = `foreignKey({\n columns: [${foreignKey.columns.map((col) => `columns['${col}']`).join(', ')}],\n foreignColumns: [${foreignKey.foreignColumns.map((col) => `${accessProperty(col.table, col.name)}`).join(', ')}],\n name: '${foreignKey.name}'\n })`\n\n if (foreignKey.onDelete) {\n foreignKeyDeclaration += `.onDelete('${foreignKey.onDelete}')`\n }\n if (foreignKey.onUpdate) {\n foreignKeyDeclaration += `.onUpdate('${foreignKey.onDelete}')`\n }\n\n foreignKeyDeclaration += ','\n\n extrasDeclarations.push(foreignKeyDeclaration)\n }\n }\n\n const tableCode = `\nexport const ${tableName} = ${tableFn}('${tableName}', {\n${Object.entries(table.columns)\n .map(\n ([key, column]) =>\n ` ${sanitizeObjectKey(key)}: ${columnToCodeConverter({\n adapter: this,\n addEnum,\n addImport,\n circularEdges,\n column,\n locales: this.payload.config.localization\n ? this.payload.config.localization.localeCodes\n : undefined,\n tableKey: tableName,\n })},`,\n )\n .join('\\n')}\n}${\n extrasDeclarations.length\n ? `, (columns) => [\n ${extrasDeclarations.join(' ')}\n]`\n : ''\n }\n)\n`\n\n tableDeclarations.push(tableCode)\n }\n\n for (const tableName in this.rawRelations) {\n const relations = this.rawRelations[tableName]\n const properties: string[] = []\n\n for (const key in relations) {\n const relation = relations[key]\n let declaration: string\n\n if (relation.type === 'one') {\n declaration = `${sanitizeObjectKey(key)}: one(${relation.to}, {\n ${relation.fields.some((field) => field.table !== tableName) ? '// @ts-expect-error Drizzle TypeScript bug for ONE relationships with a field in different table' : ''}\n fields: [${relation.fields.map((field) => `${accessProperty(field.table, field.name)}`).join(', ')}],\n references: [${relation.references.map((col) => `${accessProperty(relation.to, col)}`).join(', ')}],\n ${relation.relationName ? `relationName: '${relation.relationName}',` : ''}\n }),`\n } else {\n declaration = `${sanitizeObjectKey(key)}: many(${relation.to}, {\n ${relation.relationName ? `relationName: '${relation.relationName}',` : ''}\n }),`\n }\n\n properties.push(declaration)\n }\n\n // beautify / lintify relations callback output, when no many for example, don't add it\n const args = []\n\n if (Object.values(relations).some((rel) => rel.type === 'one')) {\n args.push('one')\n }\n\n if (Object.values(relations).some((rel) => rel.type === 'many')) {\n args.push('many')\n }\n\n const arg = args.length ? `{ ${args.join(', ')} }` : ''\n\n const declaration = `export const relations_${tableName} = relations(${tableName}, (${arg}) => ({\n ${properties.join('\\n ')}\n }))`\n\n relationsDeclarations.push(declaration)\n }\n\n if (enumDeclarations.length && !this.schemaName) {\n addImport(corePackage, enumImport)\n }\n\n const importDeclarationsSanitized: string[] = []\n\n for (const moduleName in importDeclarations) {\n const moduleImports = importDeclarations[moduleName]\n\n importDeclarationsSanitized.push(\n `import { ${Array.from(moduleImports).join(', ')} } from '${moduleName}'`,\n )\n }\n\n const schemaType = `\ntype DatabaseSchema = {\n ${[\n this.schemaName ? 'db_schema' : null,\n ...enumsList,\n ...Object.keys(this.rawTables),\n ...Object.keys(this.rawRelations).map((table) => `relations_${table}`),\n ]\n .filter(Boolean)\n .map((name) => `${name}: typeof ${name}`)\n .join('\\n ')}\n}\n `\n\n const finalDeclaration = `\ndeclare module '${this.packageName}' {\n export interface GeneratedDatabaseSchema {\n schema: DatabaseSchema\n }\n}\n `\n\n const warning = `\n/* tslint:disable */\n/* eslint-disable */\n/**\n * This file was automatically generated by Payload.\n * DO NOT MODIFY IT BY HAND. Instead, modify your source Payload config,\n * and re-run \\`payload generate:db-schema\\` to regenerate this file.\n */\n`\n\n const importTypes = `import type {} from '${this.packageName}'`\n\n let code = [\n warning,\n importTypes,\n ...importDeclarationsSanitized,\n schemaDeclaration,\n ...enumDeclarations,\n ...tableDeclarations,\n ...relationsDeclarations,\n schemaType,\n finalDeclaration,\n ]\n .filter(Boolean)\n .join('\\n')\n\n if (!outputFile) {\n const cwd = process.cwd()\n const srcDir = path.resolve(cwd, 'src')\n\n if (existsSync(srcDir)) {\n outputFile = path.resolve(srcDir, 'payload-generated-schema.ts')\n } else {\n outputFile = path.resolve(cwd, 'payload-generated-schema.ts')\n }\n }\n\n if (prettify) {\n try {\n const prettier = await eval('import(\"prettier\")')\n const configPath = await prettier.resolveConfigFile()\n const config = configPath ? await prettier.resolveConfig(configPath) : {}\n code = await prettier.format(code, { ...config, parser: 'typescript' })\n } catch {\n /* empty */\n }\n }\n\n await writeFile(outputFile, code, 'utf-8')\n\n if (log) {\n this.payload.logger.info(`Written ${outputFile}`)\n }\n }\n}\n"],"names":["existsSync","writeFile","path","sanitizeObjectKey","key","identifierRegex","test","accessProperty","objName","sanitized","startsWith","createSchemaGenerator","columnToCodeConverter","corePackageSuffix","defaultOutputFile","enumImport","schemaImport","tableImport","generateSchema","log","outputFile","prettify","importDeclarations","tableDeclarations","enumDeclarations","relationsDeclarations","addImport","from","name","Set","add","corePackage","packageName","schemaDeclaration","schemaName","enumFn","enumsList","addEnum","options","some","each","push","map","option","join","payload","config","localization","localeCodes","tableFn","fkGraph","tableName","rawTables","table","colKey","columns","col","reference","canReach","target","visited","has","neighbor","circularEdges","tableA","tableB","extrasDeclarations","indexes","index","indexDeclaration","unique","on","foreignKeys","foreignKey","foreignKeyDeclaration","foreignColumns","onDelete","onUpdate","tableCode","Object","entries","column","adapter","locales","undefined","tableKey","length","rawRelations","relations","properties","relation","declaration","type","to","fields","field","references","relationName","args","values","rel","arg","importDeclarationsSanitized","moduleName","moduleImports","Array","schemaType","keys","filter","Boolean","finalDeclaration","warning","importTypes","code","cwd","process","srcDir","resolve","prettier","eval","configPath","resolveConfigFile","resolveConfig","format","parser","logger","info"],"mappings":"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"}
1
+ {"version":3,"sources":["../../src/utilities/createSchemaGenerator.ts"],"sourcesContent":["import type { GenerateSchema } from 'payload'\n\nimport { existsSync } from 'fs'\nimport { writeFile } from 'fs/promises'\nimport path from 'path'\n\nimport type { ColumnToCodeConverter, DrizzleAdapter } from '../types.js'\n\n/**\n * @example\n * console.log(sanitizeObjectKey(\"oneTwo\")); // oneTwo\n * console.log(sanitizeObjectKey(\"one-two\")); // 'one-two'\n * console.log(sanitizeObjectKey(\"_one$Two3\")); // _one$Two3\n * console.log(sanitizeObjectKey(\"3invalid\")); // '3invalid'\n */\nconst sanitizeObjectKey = (key: string) => {\n // Regular expression for a valid identifier\n const identifierRegex = /^[a-z_$][\\w$]*$/i\n if (identifierRegex.test(key)) {\n return key\n }\n\n return `'${key}'`\n}\n\n/**\n * @example\n * (columns default-valuesID) -> columns['default-valuesID']\n * (columns defaultValues) -> columns.defaultValues\n */\nconst accessProperty = (objName: string, key: string) => {\n const sanitized = sanitizeObjectKey(key)\n\n if (sanitized.startsWith(\"'\")) {\n return `${objName}[${sanitized}]`\n }\n\n return `${objName}.${key}`\n}\n\nexport const createSchemaGenerator = ({\n columnToCodeConverter,\n corePackageSuffix,\n defaultOutputFile,\n enumImport,\n schemaImport,\n tableImport,\n}: {\n columnToCodeConverter: ColumnToCodeConverter\n corePackageSuffix: string\n defaultOutputFile?: string\n enumImport?: string\n schemaImport?: string\n tableImport: string\n}): GenerateSchema => {\n return async function generateSchema(\n this: DrizzleAdapter,\n { log = true, outputFile = defaultOutputFile, prettify = true } = {},\n ) {\n const importDeclarations: Record<string, Set<string>> = {}\n\n const tableDeclarations: string[] = []\n const enumDeclarations: string[] = []\n const relationsDeclarations: string[] = []\n\n const addImport = (from: string, name: string) => {\n if (!importDeclarations[from]) {\n importDeclarations[from] = new Set()\n }\n\n importDeclarations[from].add(name)\n }\n\n const corePackage = `${this.packageName}/drizzle/${corePackageSuffix}`\n\n let schemaDeclaration: null | string = null\n\n if (this.schemaName) {\n addImport(corePackage, schemaImport)\n schemaDeclaration = `export const db_schema = ${schemaImport}('${this.schemaName}')`\n }\n\n const enumFn = this.schemaName ? `db_schema.enum` : enumImport\n\n const enumsList: string[] = []\n const addEnum = (name: string, options: string[]) => {\n if (enumsList.some((each) => each === name)) {\n return\n }\n enumsList.push(name)\n enumDeclarations.push(\n `export const ${name} = ${enumFn}('${name}', [${options.map((option) => `'${option}'`).join(', ')}])`,\n )\n }\n\n if (this.payload.config.localization && enumImport) {\n addEnum('enum__locales', this.payload.config.localization.localeCodes)\n }\n\n const tableFn = this.schemaName ? `db_schema.table` : tableImport\n\n if (!this.schemaName) {\n addImport(corePackage, tableImport)\n }\n\n addImport(corePackage, 'index')\n addImport(corePackage, 'uniqueIndex')\n addImport(corePackage, 'foreignKey')\n\n addImport(`${this.packageName}/drizzle`, 'sql')\n addImport(`${this.packageName}/drizzle`, 'relations')\n\n const fkGraph: Record<string, Set<string>> = {}\n\n for (const tableName in this.rawTables) {\n fkGraph[tableName] = new Set()\n const table = this.rawTables[tableName]\n\n for (const colKey in table.columns) {\n const col = table.columns[colKey]\n\n if (col.reference && col.reference.table !== tableName) {\n fkGraph[tableName].add(col.reference.table)\n }\n }\n }\n\n const canReach = (from: string, target: string, visited: Set<string>): boolean => {\n if (from === target) {\n return true\n }\n\n if (visited.has(from)) {\n return false\n }\n\n visited.add(from)\n\n for (const neighbor of fkGraph[from] ?? []) {\n if (canReach(neighbor, target, visited)) {\n return true\n }\n }\n\n return false\n }\n\n const circularEdges = new Set<string>()\n\n for (const tableA in fkGraph) {\n for (const tableB of fkGraph[tableA]) {\n if (canReach(tableB, tableA, new Set())) {\n circularEdges.add(`${tableA}:${tableB}`)\n }\n }\n }\n\n for (const tableName in this.rawTables) {\n const table = this.rawTables[tableName]\n\n const extrasDeclarations: string[] = []\n\n if (table.indexes) {\n for (const key in table.indexes) {\n const index = table.indexes[key]\n let indexDeclaration = `${index.unique ? 'uniqueIndex' : 'index'}('${index.name}')`\n indexDeclaration += `.on(${typeof index.on === 'string' ? `${accessProperty('columns', index.on)}` : `${index.on.map((on) => `${accessProperty('columns', on)}`).join(', ')}`}),`\n extrasDeclarations.push(indexDeclaration)\n }\n }\n\n if (table.foreignKeys) {\n for (const key in table.foreignKeys) {\n const foreignKey = table.foreignKeys[key]\n\n let foreignKeyDeclaration = `foreignKey({\n columns: [${foreignKey.columns.map((col) => `columns['${col}']`).join(', ')}],\n foreignColumns: [${foreignKey.foreignColumns.map((col) => `${accessProperty(col.table, col.name)}`).join(', ')}],\n name: '${foreignKey.name}'\n })`\n\n if (foreignKey.onDelete) {\n foreignKeyDeclaration += `.onDelete('${foreignKey.onDelete}')`\n }\n if (foreignKey.onUpdate) {\n foreignKeyDeclaration += `.onUpdate('${foreignKey.onDelete}')`\n }\n\n foreignKeyDeclaration += ','\n\n extrasDeclarations.push(foreignKeyDeclaration)\n }\n }\n\n const tableCode = `\nexport const ${tableName} = ${tableFn}('${tableName}', {\n${Object.entries(table.columns)\n .map(\n ([key, column]) =>\n ` ${sanitizeObjectKey(key)}: ${columnToCodeConverter({\n adapter: this,\n addEnum,\n addImport,\n circularEdges,\n column,\n locales: this.payload.config.localization\n ? this.payload.config.localization.localeCodes\n : undefined,\n tableKey: tableName,\n })},`,\n )\n .join('\\n')}\n}${\n extrasDeclarations.length\n ? `, (columns) => [\n ${extrasDeclarations.join(' ')}\n]`\n : ''\n }\n)\n`\n\n tableDeclarations.push(tableCode)\n }\n\n for (const tableName in this.rawRelations) {\n const relations = this.rawRelations[tableName]\n const properties: string[] = []\n\n for (const key in relations) {\n const relation = relations[key]\n let declaration: string\n\n if (relation.type === 'one') {\n declaration = `${sanitizeObjectKey(key)}: one(${relation.to}, {\n ${relation.fields.some((field) => field.table !== tableName) ? '// @ts-expect-error Drizzle TypeScript bug for ONE relationships with a field in different table' : ''}\n fields: [${relation.fields.map((field) => `${accessProperty(field.table, field.name)}`).join(', ')}],\n references: [${relation.references.map((col) => `${accessProperty(relation.to, col)}`).join(', ')}],\n ${relation.relationName ? `relationName: '${relation.relationName}',` : ''}\n }),`\n } else {\n declaration = `${sanitizeObjectKey(key)}: many(${relation.to}, {\n ${relation.relationName ? `relationName: '${relation.relationName}',` : ''}\n }),`\n }\n\n properties.push(declaration)\n }\n\n // beautify / lintify relations callback output, when no many for example, don't add it\n const args = []\n\n if (Object.values(relations).some((rel) => rel.type === 'one')) {\n args.push('one')\n }\n\n if (Object.values(relations).some((rel) => rel.type === 'many')) {\n args.push('many')\n }\n\n const arg = args.length ? `{ ${args.join(', ')} }` : ''\n\n const declaration = `export const relations_${tableName} = relations(${tableName}, (${arg}) => ({\n ${properties.join('\\n ')}\n }))`\n\n relationsDeclarations.push(declaration)\n }\n\n if (enumDeclarations.length && !this.schemaName) {\n addImport(corePackage, enumImport)\n }\n\n const importDeclarationsSanitized: string[] = []\n\n for (const moduleName in importDeclarations) {\n const moduleImports = importDeclarations[moduleName]\n\n importDeclarationsSanitized.push(\n `import { ${Array.from(moduleImports).join(', ')} } from '${moduleName}'`,\n )\n }\n\n const schemaType = `\ntype DatabaseSchema = {\n ${[\n this.schemaName ? 'db_schema' : null,\n ...enumsList,\n ...Object.keys(this.rawTables),\n ...Object.keys(this.rawRelations).map((table) => `relations_${table}`),\n ]\n .filter(Boolean)\n .map((name) => `${name}: typeof ${name}`)\n .join('\\n ')}\n}\n `\n\n const finalDeclaration = `\ndeclare module '${this.packageName}' {\n export interface GeneratedDatabaseSchema {\n schema: DatabaseSchema\n }\n}\n `\n\n const warning = `\n/* tslint:disable */\n/* eslint-disable */\n/**\n * This file was automatically generated by Payload.\n * DO NOT MODIFY IT BY HAND. Instead, modify your source Payload config,\n * and re-run \\`payload generate:db-schema\\` to regenerate this file.\n */\n`\n\n const importTypes = `import type {} from '${this.packageName}'`\n\n let code = [\n warning,\n importTypes,\n ...importDeclarationsSanitized,\n schemaDeclaration,\n ...enumDeclarations,\n ...tableDeclarations,\n ...relationsDeclarations,\n schemaType,\n finalDeclaration,\n ]\n .filter(Boolean)\n .join('\\n')\n\n if (!outputFile) {\n const cwd = process.cwd()\n const srcDir = path.resolve(cwd, 'src')\n\n if (existsSync(srcDir)) {\n outputFile = path.resolve(srcDir, 'payload-generated-schema.ts')\n } else {\n outputFile = path.resolve(cwd, 'payload-generated-schema.ts')\n }\n }\n\n if (prettify) {\n try {\n const prettier = await eval('import(\"prettier\")')\n const configPath = await prettier.resolveConfigFile()\n const config = configPath ? await prettier.resolveConfig(configPath) : {}\n code = await prettier.format(code, { ...config, parser: 'typescript' })\n } catch {\n /* empty */\n }\n }\n\n await writeFile(outputFile, code, 'utf-8')\n\n if (log) {\n this.payload.logger.info(`Written ${outputFile}`)\n }\n\n return { outputFile }\n }\n}\n"],"names":["existsSync","writeFile","path","sanitizeObjectKey","key","identifierRegex","test","accessProperty","objName","sanitized","startsWith","createSchemaGenerator","columnToCodeConverter","corePackageSuffix","defaultOutputFile","enumImport","schemaImport","tableImport","generateSchema","log","outputFile","prettify","importDeclarations","tableDeclarations","enumDeclarations","relationsDeclarations","addImport","from","name","Set","add","corePackage","packageName","schemaDeclaration","schemaName","enumFn","enumsList","addEnum","options","some","each","push","map","option","join","payload","config","localization","localeCodes","tableFn","fkGraph","tableName","rawTables","table","colKey","columns","col","reference","canReach","target","visited","has","neighbor","circularEdges","tableA","tableB","extrasDeclarations","indexes","index","indexDeclaration","unique","on","foreignKeys","foreignKey","foreignKeyDeclaration","foreignColumns","onDelete","onUpdate","tableCode","Object","entries","column","adapter","locales","undefined","tableKey","length","rawRelations","relations","properties","relation","declaration","type","to","fields","field","references","relationName","args","values","rel","arg","importDeclarationsSanitized","moduleName","moduleImports","Array","schemaType","keys","filter","Boolean","finalDeclaration","warning","importTypes","code","cwd","process","srcDir","resolve","prettier","eval","configPath","resolveConfigFile","resolveConfig","format","parser","logger","info"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"escapeSQLValue.d.ts","sourceRoot":"","sources":["../../src/utilities/escapeSQLValue.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,iBAAiB,QAAmB,CAAA;AAEjD,eAAO,MAAM,cAAc,GAAI,OAAO,OAAO,KAAG,OAAO,GAAG,IAAI,GAAG,MAAM,GAAG,MAoBzE,CAAA"}
1
+ {"version":3,"file":"escapeSQLValue.d.ts","sourceRoot":"","sources":["../../src/utilities/escapeSQLValue.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,iBAAiB,QAAmB,CAAA;AAEjD,eAAO,MAAM,cAAc,UAAW,OAAO,KAAG,OAAO,GAAG,IAAI,GAAG,MAAM,GAAG,MAoBzE,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"executeSchemaHooks.d.ts","sourceRoot":"","sources":["../../src/utilities/executeSchemaHooks.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAEjD,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAA;AAE5D,KAAK,cAAc,GAAG;IACpB,KAAK,CAAC,EAAE,cAAc,CAAC,OAAO,CAAC,CAAA;IAC/B,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IAC9B,MAAM,EAAE,cAAc,CAAC,QAAQ,CAAC,CAAA;CACjC,CAAA;AAED,KAAK,OAAO,GAAG;IACb,eAAe,EAAE,kBAAkB,EAAE,CAAA;IACrC,gBAAgB,EAAE,kBAAkB,EAAE,CAAA;CACvC,GAAG,cAAc,CAAA;AAElB,KAAK,sBAAsB,GAAG;IAC5B,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAChC,WAAW,EAAE,OAAO,kBAAkB,CAAA;IACtC,MAAM,EAAE,cAAc,CAAA;CACvB,CAAA;AAED,KAAK,kBAAkB,GAAG,CAAC,IAAI,EAAE,sBAAsB,KAAK,cAAc,GAAG,OAAO,CAAC,cAAc,CAAC,CAAA;AAEpG,KAAK,IAAI,GAAG;IACV,OAAO,EAAE,OAAO,CAAA;IAChB,IAAI,EAAE,iBAAiB,GAAG,kBAAkB,CAAA;CAC7C,CAAA;AAED,eAAO,MAAM,kBAAkB,GAAU,mBAAmB,IAAI,KAAG,OAAO,CAAC,IAAI,CAkB9E,CAAA"}
1
+ {"version":3,"file":"executeSchemaHooks.d.ts","sourceRoot":"","sources":["../../src/utilities/executeSchemaHooks.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAEjD,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAA;AAE5D,KAAK,cAAc,GAAG;IACpB,KAAK,CAAC,EAAE,cAAc,CAAC,OAAO,CAAC,CAAA;IAC/B,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IAC9B,MAAM,EAAE,cAAc,CAAC,QAAQ,CAAC,CAAA;CACjC,CAAA;AAED,KAAK,OAAO,GAAG;IACb,eAAe,EAAE,kBAAkB,EAAE,CAAA;IACrC,gBAAgB,EAAE,kBAAkB,EAAE,CAAA;CACvC,GAAG,cAAc,CAAA;AAElB,KAAK,sBAAsB,GAAG;IAC5B,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAChC,WAAW,EAAE,OAAO,kBAAkB,CAAA;IACtC,MAAM,EAAE,cAAc,CAAA;CACvB,CAAA;AAED,KAAK,kBAAkB,GAAG,CAAC,IAAI,EAAE,sBAAsB,KAAK,cAAc,GAAG,OAAO,CAAC,cAAc,CAAC,CAAA;AAEpG,KAAK,IAAI,GAAG;IACV,OAAO,EAAE,OAAO,CAAA;IAChB,IAAI,EAAE,iBAAiB,GAAG,kBAAkB,CAAA;CAC7C,CAAA;AAED,eAAO,MAAM,kBAAkB,sBAA6B,IAAI,KAAG,OAAO,CAAC,IAAI,CAkB9E,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"extendDrizzleTable.d.ts","sourceRoot":"","sources":["../../src/utilities/extendDrizzleTable.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAA;AAEpD,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAA;AAWnC,KAAK,IAAI,GAAG;IACV,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAA;IAChD,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,MAAM,CAAA;IACnD,KAAK,EAAE,KAAK,CAAA;CACb,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,kBAAkB,GAAI,iCAAiC,IAAI,KAAG,IAkC1E,CAAA"}
1
+ {"version":3,"file":"extendDrizzleTable.d.ts","sourceRoot":"","sources":["../../src/utilities/extendDrizzleTable.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAA;AAEpD,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAA;AAWnC,KAAK,IAAI,GAAG;IACV,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAA;IAChD,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,MAAM,CAAA;IACnD,KAAK,EAAE,KAAK,CAAA;CACb,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,kBAAkB,oCAAqC,IAAI,KAAG,IAkC1E,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"getArrayRelationName.d.ts","sourceRoot":"","sources":["../../src/utilities/getArrayRelationName.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AAEzC,eAAO,MAAM,oBAAoB,GAAI,6BAIlC;IACD,KAAK,EAAE,UAAU,CAAA;IACjB,IAAI,EAAE,MAAM,CAAA;IACZ,SAAS,EAAE,MAAM,CAAA;CAClB,WAMA,CAAA"}
1
+ {"version":3,"file":"getArrayRelationName.d.ts","sourceRoot":"","sources":["../../src/utilities/getArrayRelationName.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AAEzC,eAAO,MAAM,oBAAoB,gCAI9B;IACD,KAAK,EAAE,UAAU,CAAA;IACjB,IAAI,EAAE,MAAM,CAAA;IACZ,SAAS,EAAE,MAAM,CAAA;CAClB,WAMA,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"getCollectionIdType.d.ts","sourceRoot":"","sources":["../../src/utilities/getCollectionIdType.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AAEzC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAUjD,eAAO,MAAM,mBAAmB,GAAI,0BAGjC;IACD,OAAO,EAAE,cAAc,CAAA;IACvB,UAAU,EAAE,UAAU,CAAA;CACvB,sBAEA,CAAA"}
1
+ {"version":3,"file":"getCollectionIdType.d.ts","sourceRoot":"","sources":["../../src/utilities/getCollectionIdType.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AAEzC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAUjD,eAAO,MAAM,mBAAmB,6BAG7B;IACD,OAAO,EAAE,cAAc,CAAA;IACvB,UAAU,EAAE,UAAU,CAAA;CACvB,sBAEA,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"getMigrationTemplate.d.ts","sourceRoot":"","sources":["../../src/utilities/getMigrationTemplate.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAA;AAEpD,eAAO,MAAM,MAAM,GAAI,MAAM,MAAM,WAIpB,CAAA;AAEf,eAAO,MAAM,oBAAoB,GAAI,2CAKlC,qBAAqB,KAAG,MAS1B,CAAA"}
1
+ {"version":3,"file":"getMigrationTemplate.d.ts","sourceRoot":"","sources":["../../src/utilities/getMigrationTemplate.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAA;AAEpD,eAAO,MAAM,MAAM,SAAU,MAAM,WAIpB,CAAA;AAEf,eAAO,MAAM,oBAAoB,8CAK9B,qBAAqB,KAAG,MAS1B,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"getNameFromDrizzleTable.d.ts","sourceRoot":"","sources":["../../src/utilities/getNameFromDrizzleTable.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAA;AAIxC,eAAO,MAAM,uBAAuB,GAAI,OAAO,KAAK,KAAG,MAEtD,CAAA"}
1
+ {"version":3,"file":"getNameFromDrizzleTable.d.ts","sourceRoot":"","sources":["../../src/utilities/getNameFromDrizzleTable.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAA;AAIxC,eAAO,MAAM,uBAAuB,UAAW,KAAK,KAAG,MAEtD,CAAA"}
@@ -2,5 +2,5 @@ import type { DrizzleAdapter, DrizzleTransaction } from '../types.js';
2
2
  /**
3
3
  * Returns the correct database instance for reads that are part of a write operation.
4
4
  */
5
- export declare const getPrimaryDb: (adapter: DrizzleAdapter, db: DrizzleAdapter["drizzle"] | DrizzleTransaction) => import("../types.js").PostgresDB | DrizzleTransaction | import("drizzle-orm/libsql").LibSQLDatabase<Record<string, never>>;
5
+ export declare const getPrimaryDb: (adapter: DrizzleAdapter, db: DrizzleAdapter['drizzle'] | DrizzleTransaction) => import("drizzle-orm/libsql").LibSQLDatabase<Record<string, never>> | import("../types.js").PostgresDB | DrizzleTransaction;
6
6
  //# sourceMappingURL=getPrimaryDb.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"getPrimaryDb.d.ts","sourceRoot":"","sources":["../../src/utilities/getPrimaryDb.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAA;AAErE;;GAEG;AACH,eAAO,MAAM,YAAY,GACvB,SAAS,cAAc,EACvB,IAAI,cAAc,CAAC,SAAS,CAAC,GAAG,kBAAkB,+HAMnD,CAAA"}
1
+ {"version":3,"file":"getPrimaryDb.d.ts","sourceRoot":"","sources":["../../src/utilities/getPrimaryDb.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAA;AAErE;;GAEG;AACH,eAAO,MAAM,YAAY,YACd,cAAc,MACnB,cAAc,CAAC,SAAS,CAAC,GAAG,kBAAkB,+HAMnD,CAAA"}
@@ -9,5 +9,5 @@ import type { DrizzleAdapter } from '../types.js';
9
9
  * When read replicas are configured and a write happened recently, returns the
10
10
  * unwrapped primary to avoid replication-lag stale reads.
11
11
  */
12
- export declare const getTransaction: <T extends DrizzleAdapter = DrizzleAdapter>(adapter: T, req?: Partial<PayloadRequest>) => Promise<T["drizzle"]>;
12
+ export declare const getTransaction: <T extends DrizzleAdapter = DrizzleAdapter>(adapter: T, req?: Partial<PayloadRequest>) => Promise<T['drizzle']>;
13
13
  //# sourceMappingURL=getTransaction.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"getTransaction.d.ts","sourceRoot":"","sources":["../../src/utilities/getTransaction.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAE7C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAIjD;;;;;;;;GAQG;AACH,eAAO,MAAM,cAAc,GAAU,CAAC,SAAS,cAAc,GAAG,cAAc,EAC5E,SAAS,CAAC,EACV,MAAM,OAAO,CAAC,cAAc,CAAC,KAC5B,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAStB,CAAA"}
1
+ {"version":3,"file":"getTransaction.d.ts","sourceRoot":"","sources":["../../src/utilities/getTransaction.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAE7C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAIjD;;;;;;;;GAQG;AACH,eAAO,MAAM,cAAc,GAAU,CAAC,SAAS,cAAc,GAAG,cAAc,WACnE,CAAC,QACJ,OAAO,CAAC,cAAc,CAAC,KAC5B,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAStB,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"hasLocalesTable.d.ts","sourceRoot":"","sources":["../../src/utilities/hasLocalesTable.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAIpC,eAAO,MAAM,eAAe,GAAI,gCAG7B;IACD,MAAM,EAAE,KAAK,EAAE,CAAA;IACf;;OAEG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAA;CAC5B,KAAG,OAyBH,CAAA"}
1
+ {"version":3,"file":"hasLocalesTable.d.ts","sourceRoot":"","sources":["../../src/utilities/hasLocalesTable.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAIpC,eAAO,MAAM,eAAe,mCAGzB;IACD,MAAM,EAAE,KAAK,EAAE,CAAA;IACf;;OAEG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAA;CAC5B,KAAG,OAyBH,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"isPolymorphicRelationship.d.ts","sourceRoot":"","sources":["../../src/utilities/isPolymorphicRelationship.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAE7C,eAAO,MAAM,yBAAyB,GACpC,OAAO,OAAO,KACb,KAAK,IAAI;IACV,UAAU,EAAE,cAAc,CAAA;IAC1B,KAAK,EAAE,MAAM,GAAG,MAAM,CAAA;CASvB,CAAA"}
1
+ {"version":3,"file":"isPolymorphicRelationship.d.ts","sourceRoot":"","sources":["../../src/utilities/isPolymorphicRelationship.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAE7C,eAAO,MAAM,yBAAyB,UAC7B,OAAO,KACb,KAAK,IAAI;IACV,UAAU,EAAE,cAAc,CAAA;IAC1B,KAAK,EAAE,MAAM,GAAG,MAAM,CAAA;CASvB,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"isUUIDType.d.ts","sourceRoot":"","sources":["../../src/utilities/isUUIDType.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,UAAU,GAAI,QAAQ,MAAM,KAAG,OAAmD,CAAA"}
1
+ {"version":3,"file":"isUUIDType.d.ts","sourceRoot":"","sources":["../../src/utilities/isUUIDType.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,UAAU,WAAY,MAAM,KAAG,OAAmD,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"json.d.ts","sourceRoot":"","sources":["../../src/utilities/json.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,aAAa,CAAA;AAK9C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAIjD,wBAAgB,OAAO,CAAC,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,GAAG,gBAM/D;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,GAAG,CAAC,EACpE,OAAO,EAAE,cAAc,EACvB,KAAK,EAAE,CAAC,gBAuBT;AAED,eAAO,MAAM,kBAAkB,GAAI,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,GAAG,CAAC,EACvE,SAAS,cAAc,EACvB,OAAO,CAAC,iBAGT,CAAA"}
1
+ {"version":3,"file":"json.d.ts","sourceRoot":"","sources":["../../src/utilities/json.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,aAAa,CAAA;AAK9C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAIjD,wBAAgB,OAAO,CAAC,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,GAAG,gBAM/D;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,GAAG,CAAC,EACpE,OAAO,EAAE,cAAc,EACvB,KAAK,EAAE,CAAC,gBAuBT;AAED,eAAO,MAAM,kBAAkB,GAAI,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,GAAG,CAAC,WAC9D,cAAc,SAChB,CAAC,iBAGT,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"migrationTableExists.d.ts","sourceRoot":"","sources":["../../src/utilities/migrationTableExists.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AAExD,OAAO,KAAK,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAE7D,eAAO,MAAM,oBAAoB,GAC/B,SAAS,cAAc,EACvB,KAAK,cAAc,GAAG,UAAU,KAC/B,OAAO,CAAC,OAAO,CA2BjB,CAAA"}
1
+ {"version":3,"file":"migrationTableExists.d.ts","sourceRoot":"","sources":["../../src/utilities/migrationTableExists.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AAExD,OAAO,KAAK,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAE7D,eAAO,MAAM,oBAAoB,YACtB,cAAc,OAClB,cAAc,GAAG,UAAU,KAC/B,OAAO,CAAC,OAAO,CA2BjB,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"parseError.d.ts","sourceRoot":"","sources":["../../src/utilities/parseError.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,eAAO,MAAM,UAAU,GAAI,KAAK,OAAO,EAAE,KAAK,MAAM,KAAG,MAUtD,CAAA"}
1
+ {"version":3,"file":"parseError.d.ts","sourceRoot":"","sources":["../../src/utilities/parseError.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,eAAO,MAAM,UAAU,QAAS,OAAO,OAAO,MAAM,KAAG,MAUtD,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"pushDevSchema.d.ts","sourceRoot":"","sources":["../../src/utilities/pushDevSchema.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,cAAc,EAAwB,MAAM,aAAa,CAAA;AAUvE;;;;;GAKG;AACH,eAAO,MAAM,aAAa,GAAU,SAAS,cAAc,kBA6F1D,CAAA"}
1
+ {"version":3,"file":"pushDevSchema.d.ts","sourceRoot":"","sources":["../../src/utilities/pushDevSchema.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,cAAc,EAAwB,MAAM,aAAa,CAAA;AAUvE;;;;;GAKG;AACH,eAAO,MAAM,aAAa,YAAmB,cAAc,kBA6F1D,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"rawConstraint.d.ts","sourceRoot":"","sources":["../../src/utilities/rawConstraint.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,cAAc,eAA2B,CAAA;AAEtD;;GAEG;AACH,eAAO,MAAM,aAAa,GAAI,OAAO,OAAO;;;CAG1C,CAAA;AAEF,eAAO,MAAM,eAAe,GAAI,OAAO,OAAO,KAAG,KAAK,IAAI,UAAU,CAAC,OAAO,aAAa,CAExF,CAAA"}
1
+ {"version":3,"file":"rawConstraint.d.ts","sourceRoot":"","sources":["../../src/utilities/rawConstraint.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,cAAc,eAA2B,CAAA;AAEtD;;GAEG;AACH,eAAO,MAAM,aAAa,UAAW,OAAO;;;CAG1C,CAAA;AAEF,eAAO,MAAM,eAAe,UAAW,OAAO,KAAG,KAAK,IAAI,UAAU,CAAC,OAAO,aAAa,CAExF,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"sanitizePathSegment.d.ts","sourceRoot":"","sources":["../../src/utilities/sanitizePathSegment.ts"],"names":[],"mappings":"AASA,eAAO,MAAM,mBAAmB,GAAI,SAAS,MAAM,KAAG,MAQrD,CAAA"}
1
+ {"version":3,"file":"sanitizePathSegment.d.ts","sourceRoot":"","sources":["../../src/utilities/sanitizePathSegment.ts"],"names":[],"mappings":"AASA,eAAO,MAAM,mBAAmB,YAAa,MAAM,KAAG,MAQrD,CAAA"}
@@ -3,11 +3,7 @@ import type { RawTable } from '../types.js';
3
3
  type Args = {
4
4
  block: Block;
5
5
  localized: boolean;
6
- /**
7
- * @todo make required in v4.0. Usually you'd wanna pass this in
8
- */
9
- parentIsLocalized?: boolean;
10
- rootTableName: string;
6
+ parentIsLocalized: boolean;
11
7
  table: RawTable;
12
8
  tableLocales?: RawTable;
13
9
  };
@@ -1 +1 @@
1
- {"version":3,"file":"validateExistingBlockIsIdentical.d.ts","sourceRoot":"","sources":["../../src/utilities/validateExistingBlockIsIdentical.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAS,cAAc,EAAE,MAAM,SAAS,CAAA;AAS3D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AAE3C,KAAK,IAAI,GAAG;IACV,KAAK,EAAE,KAAK,CAAA;IACZ,SAAS,EAAE,OAAO,CAAA;IAClB;;OAEG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAA;IAC3B,aAAa,EAAE,MAAM,CAAA;IACrB,KAAK,EAAE,QAAQ,CAAA;IACf,YAAY,CAAC,EAAE,QAAQ,CAAA;CACxB,CAAA;AA+DD;;GAEG;AACH,eAAO,MAAM,gCAAgC,GAAI,+DAM9C,IAAI,KAAG,OAwBT,CAAA;AAED,eAAO,MAAM,2BAA2B,eAAwC,CAAA;AAChF,eAAO,MAAM,qBAAqB,GAAI,OAAO,cAAc,EAAE,OAAO,MAAM,SAEzE,CAAA;AAED,eAAO,MAAM,qBAAqB,GAAI,OAAO,cAAc,EAAE,mBAAmB,MAAM,WAMrF,CAAA"}
1
+ {"version":3,"file":"validateExistingBlockIsIdentical.d.ts","sourceRoot":"","sources":["../../src/utilities/validateExistingBlockIsIdentical.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAS,cAAc,EAAE,MAAM,SAAS,CAAA;AAS3D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AAE3C,KAAK,IAAI,GAAG;IACV,KAAK,EAAE,KAAK,CAAA;IACZ,SAAS,EAAE,OAAO,CAAA;IAClB,iBAAiB,EAAE,OAAO,CAAA;IAC1B,KAAK,EAAE,QAAQ,CAAA;IACf,YAAY,CAAC,EAAE,QAAQ,CAAA;CACxB,CAAA;AA+DD;;GAEG;AACH,eAAO,MAAM,gCAAgC,kEAM1C,IAAI,KAAG,OAwBT,CAAA;AAED,eAAO,MAAM,2BAA2B,eAAwC,CAAA;AAChF,eAAO,MAAM,qBAAqB,UAAW,cAAc,SAAS,MAAM,SAEzE,CAAA;AAED,eAAO,MAAM,qBAAqB,UAAW,cAAc,qBAAqB,MAAM,WAMrF,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/utilities/validateExistingBlockIsIdentical.ts"],"sourcesContent":["import type { Block, Field, FlattenedBlock } from 'payload'\n\nimport {\n fieldAffectsData,\n fieldHasSubFields,\n fieldShouldBeLocalized,\n tabHasName,\n} from 'payload/shared'\n\nimport type { RawTable } from '../types.js'\n\ntype Args = {\n block: Block\n localized: boolean\n /**\n * @todo make required in v4.0. Usually you'd wanna pass this in\n */\n parentIsLocalized?: boolean\n rootTableName: string\n table: RawTable\n tableLocales?: RawTable\n}\n\nconst getFlattenedFieldNames = (args: {\n fields: Field[]\n parentIsLocalized: boolean\n prefix?: string\n}): { localized?: boolean; name: string }[] => {\n const { fields, parentIsLocalized, prefix = '' } = args\n return fields.reduce((fieldsToUse, field) => {\n let fieldPrefix = prefix\n\n if (\n ['array', 'blocks', 'relationship', 'upload'].includes(field.type) ||\n ('hasMany' in field && field.hasMany === true)\n ) {\n return fieldsToUse\n }\n\n if (fieldHasSubFields(field)) {\n fieldPrefix = 'name' in field ? `${prefix}${field.name}_` : prefix\n return [\n ...fieldsToUse,\n ...getFlattenedFieldNames({\n fields: field.fields,\n parentIsLocalized: parentIsLocalized || ('localized' in field && field.localized),\n prefix: fieldPrefix,\n }),\n ]\n }\n\n if (field.type === 'tabs') {\n return [\n ...fieldsToUse,\n ...field.tabs.reduce((tabFields, tab) => {\n fieldPrefix = 'name' in tab ? `${prefix}_${tab.name}` : prefix\n return [\n ...tabFields,\n ...(tabHasName(tab)\n ? [{ ...tab, type: 'tab' }]\n : getFlattenedFieldNames({\n fields: tab.fields,\n parentIsLocalized: parentIsLocalized || tab.localized,\n prefix: fieldPrefix,\n })),\n ]\n }, []),\n ]\n }\n\n if (fieldAffectsData(field)) {\n return [\n ...fieldsToUse,\n {\n name: `${fieldPrefix}${field.name}`,\n localized: fieldShouldBeLocalized({ field, parentIsLocalized }),\n },\n ]\n }\n\n return fieldsToUse\n }, [])\n}\n\n/**\n * returns true if all the fields in a block are identical to the existing table\n */\nexport const validateExistingBlockIsIdentical = ({\n block,\n localized,\n parentIsLocalized,\n table,\n tableLocales,\n}: Args): boolean => {\n const fieldNames = getFlattenedFieldNames({\n fields: block.fields,\n parentIsLocalized: parentIsLocalized || localized,\n })\n\n const missingField =\n // ensure every field from the config is in the matching table\n fieldNames.find(({ name, localized }) => {\n const fieldTable = localized && tableLocales ? tableLocales : table\n return Object.keys(fieldTable.columns).indexOf(name) === -1\n }) ||\n // ensure every table column is matched for every field from the config\n Object.keys(table).find((fieldName) => {\n if (!['_locale', '_order', '_parentID', '_path', '_uuid'].includes(fieldName)) {\n return fieldNames.findIndex((field) => field.name) === -1\n }\n })\n\n if (missingField) {\n return false\n }\n\n return Boolean(localized) === Boolean(table.columns._locale)\n}\n\nexport const InternalBlockTableNameIndex = Symbol('InternalBlockTableNameIndex')\nexport const setInternalBlockIndex = (block: FlattenedBlock, index: number) => {\n block[InternalBlockTableNameIndex] = index\n}\n\nexport const resolveBlockTableName = (block: FlattenedBlock, originalTableName: string) => {\n if (!block[InternalBlockTableNameIndex]) {\n return originalTableName\n }\n\n return `${originalTableName}_${block[InternalBlockTableNameIndex]}`\n}\n"],"names":["fieldAffectsData","fieldHasSubFields","fieldShouldBeLocalized","tabHasName","getFlattenedFieldNames","args","fields","parentIsLocalized","prefix","reduce","fieldsToUse","field","fieldPrefix","includes","type","hasMany","name","localized","tabs","tabFields","tab","validateExistingBlockIsIdentical","block","table","tableLocales","fieldNames","missingField","find","fieldTable","Object","keys","columns","indexOf","fieldName","findIndex","Boolean","_locale","InternalBlockTableNameIndex","Symbol","setInternalBlockIndex","index","resolveBlockTableName","originalTableName"],"mappings":"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"}
1
+ {"version":3,"sources":["../../src/utilities/validateExistingBlockIsIdentical.ts"],"sourcesContent":["import type { Block, Field, FlattenedBlock } from 'payload'\n\nimport {\n fieldAffectsData,\n fieldHasSubFields,\n fieldShouldBeLocalized,\n tabHasName,\n} from 'payload/shared'\n\nimport type { RawTable } from '../types.js'\n\ntype Args = {\n block: Block\n localized: boolean\n parentIsLocalized: boolean\n table: RawTable\n tableLocales?: RawTable\n}\n\nconst getFlattenedFieldNames = (args: {\n fields: Field[]\n parentIsLocalized: boolean\n prefix?: string\n}): { localized?: boolean; name: string }[] => {\n const { fields, parentIsLocalized, prefix = '' } = args\n return fields.reduce((fieldsToUse, field) => {\n let fieldPrefix = prefix\n\n if (\n ['array', 'blocks', 'relationship', 'upload'].includes(field.type) ||\n ('hasMany' in field && field.hasMany === true)\n ) {\n return fieldsToUse\n }\n\n if (fieldHasSubFields(field)) {\n fieldPrefix = 'name' in field ? `${prefix}${field.name}_` : prefix\n return [\n ...fieldsToUse,\n ...getFlattenedFieldNames({\n fields: field.fields,\n parentIsLocalized: parentIsLocalized || ('localized' in field && field.localized),\n prefix: fieldPrefix,\n }),\n ]\n }\n\n if (field.type === 'tabs') {\n return [\n ...fieldsToUse,\n ...field.tabs.reduce((tabFields, tab) => {\n fieldPrefix = 'name' in tab ? `${prefix}_${tab.name}` : prefix\n return [\n ...tabFields,\n ...(tabHasName(tab)\n ? [{ ...tab, type: 'tab' }]\n : getFlattenedFieldNames({\n fields: tab.fields,\n parentIsLocalized: parentIsLocalized || tab.localized,\n prefix: fieldPrefix,\n })),\n ]\n }, []),\n ]\n }\n\n if (fieldAffectsData(field)) {\n return [\n ...fieldsToUse,\n {\n name: `${fieldPrefix}${field.name}`,\n localized: fieldShouldBeLocalized({ field, parentIsLocalized }),\n },\n ]\n }\n\n return fieldsToUse\n }, [])\n}\n\n/**\n * returns true if all the fields in a block are identical to the existing table\n */\nexport const validateExistingBlockIsIdentical = ({\n block,\n localized,\n parentIsLocalized,\n table,\n tableLocales,\n}: Args): boolean => {\n const fieldNames = getFlattenedFieldNames({\n fields: block.fields,\n parentIsLocalized: parentIsLocalized || localized,\n })\n\n const missingField =\n // ensure every field from the config is in the matching table\n fieldNames.find(({ name, localized }) => {\n const fieldTable = localized && tableLocales ? tableLocales : table\n return Object.keys(fieldTable.columns).indexOf(name) === -1\n }) ||\n // ensure every table column is matched for every field from the config\n Object.keys(table).find((fieldName) => {\n if (!['_locale', '_order', '_parentID', '_path', '_uuid'].includes(fieldName)) {\n return fieldNames.findIndex((field) => field.name) === -1\n }\n })\n\n if (missingField) {\n return false\n }\n\n return Boolean(localized) === Boolean(table.columns._locale)\n}\n\nexport const InternalBlockTableNameIndex = Symbol('InternalBlockTableNameIndex')\nexport const setInternalBlockIndex = (block: FlattenedBlock, index: number) => {\n block[InternalBlockTableNameIndex] = index\n}\n\nexport const resolveBlockTableName = (block: FlattenedBlock, originalTableName: string) => {\n if (!block[InternalBlockTableNameIndex]) {\n return originalTableName\n }\n\n return `${originalTableName}_${block[InternalBlockTableNameIndex]}`\n}\n"],"names":["fieldAffectsData","fieldHasSubFields","fieldShouldBeLocalized","tabHasName","getFlattenedFieldNames","args","fields","parentIsLocalized","prefix","reduce","fieldsToUse","field","fieldPrefix","includes","type","hasMany","name","localized","tabs","tabFields","tab","validateExistingBlockIsIdentical","block","table","tableLocales","fieldNames","missingField","find","fieldTable","Object","keys","columns","indexOf","fieldName","findIndex","Boolean","_locale","InternalBlockTableNameIndex","Symbol","setInternalBlockIndex","index","resolveBlockTableName","originalTableName"],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ /** Postgres max identifier length (NAMEDATALEN - 1). */
2
+ export declare const maxIdentifierLength = 63;
3
+ /**
4
+ * Cap for builder-generated identifiers (`buildIndexName`/`buildForeignKeyName`). Sits
5
+ * below `maxIdentifierLength` to leave headroom for the appended `_idx`/`_fk`/`_N` suffixes.
6
+ */
7
+ export declare const maxGeneratedIdentifierLength: number;
8
+ /**
9
+ * Throws if a table or enum identifier exceeds the Postgres 63-char limit.
10
+ */
11
+ export declare const validateIdentifierLength: (name: string) => string;
12
+ //# sourceMappingURL=validateIdentifierLength.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validateIdentifierLength.d.ts","sourceRoot":"","sources":["../../src/utilities/validateIdentifierLength.ts"],"names":[],"mappings":"AAEA,wDAAwD;AACxD,eAAO,MAAM,mBAAmB,KAAK,CAAA;AAErC;;;GAGG;AACH,eAAO,MAAM,4BAA4B,QAA0B,CAAA;AAEnE;;GAEG;AACH,eAAO,MAAM,wBAAwB,SAAU,MAAM,KAAG,MAUvD,CAAA"}
@@ -0,0 +1,18 @@
1
+ import { APIError } from 'payload';
2
+ /** Postgres max identifier length (NAMEDATALEN - 1). */ export const maxIdentifierLength = 63;
3
+ /**
4
+ * Cap for builder-generated identifiers (`buildIndexName`/`buildForeignKeyName`). Sits
5
+ * below `maxIdentifierLength` to leave headroom for the appended `_idx`/`_fk`/`_N` suffixes.
6
+ */ export const maxGeneratedIdentifierLength = maxIdentifierLength - 3;
7
+ /**
8
+ * Throws if a table or enum identifier exceeds the Postgres 63-char limit.
9
+ */ export const validateIdentifierLength = (name)=>{
10
+ if (name.length > maxIdentifierLength) {
11
+ throw new APIError(`Exceeded max identifier length for table or enum name of ${maxIdentifierLength} characters. Invalid name: ${name}.
12
+ Tip: You can use the dbName property to reduce the table name length.
13
+ `);
14
+ }
15
+ return name;
16
+ };
17
+
18
+ //# sourceMappingURL=validateIdentifierLength.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/utilities/validateIdentifierLength.ts"],"sourcesContent":["import { APIError } from 'payload'\n\n/** Postgres max identifier length (NAMEDATALEN - 1). */\nexport const maxIdentifierLength = 63\n\n/**\n * Cap for builder-generated identifiers (`buildIndexName`/`buildForeignKeyName`). Sits\n * below `maxIdentifierLength` to leave headroom for the appended `_idx`/`_fk`/`_N` suffixes.\n */\nexport const maxGeneratedIdentifierLength = maxIdentifierLength - 3\n\n/**\n * Throws if a table or enum identifier exceeds the Postgres 63-char limit.\n */\nexport const validateIdentifierLength = (name: string): string => {\n if (name.length > maxIdentifierLength) {\n throw new APIError(\n `Exceeded max identifier length for table or enum name of ${maxIdentifierLength} characters. Invalid name: ${name}.\nTip: You can use the dbName property to reduce the table name length.\n `,\n )\n }\n\n return name\n}\n"],"names":["APIError","maxIdentifierLength","maxGeneratedIdentifierLength","validateIdentifierLength","name","length"],"mappings":"AAAA,SAASA,QAAQ,QAAQ,UAAS;AAElC,sDAAsD,GACtD,OAAO,MAAMC,sBAAsB,GAAE;AAErC;;;CAGC,GACD,OAAO,MAAMC,+BAA+BD,sBAAsB,EAAC;AAEnE;;CAEC,GACD,OAAO,MAAME,2BAA2B,CAACC;IACvC,IAAIA,KAAKC,MAAM,GAAGJ,qBAAqB;QACrC,MAAM,IAAID,SACR,CAAC,yDAAyD,EAAEC,oBAAoB,2BAA2B,EAAEG,KAAK;;MAElH,CAAC;IAEL;IAEA,OAAOA;AACT,EAAC"}
@@ -0,0 +1,19 @@
1
+ import { describe, expect, it } from 'vitest';
2
+ import { maxIdentifierLength, validateIdentifierLength } from './validateIdentifierLength.js';
3
+ describe('validateIdentifierLength', ()=>{
4
+ it('should return the name unchanged when at or under the 63-char limit', ()=>{
5
+ const name = 'a'.repeat(maxIdentifierLength);
6
+ expect(validateIdentifierLength(name)).toBe(name);
7
+ });
8
+ it('should throw when the name exceeds the 63-char limit', ()=>{
9
+ const name = 'a'.repeat(maxIdentifierLength + 1);
10
+ expect(()=>validateIdentifierLength(name)).toThrow('Exceeded max identifier length');
11
+ });
12
+ it('should include the invalid name and the dbName tip in the error', ()=>{
13
+ const name = `some_long_table_name${'x'.repeat(maxIdentifierLength)}_locales`;
14
+ expect(()=>validateIdentifierLength(name)).toThrow(name);
15
+ expect(()=>validateIdentifierLength(name)).toThrow('You can use the dbName property to reduce the table name length');
16
+ });
17
+ });
18
+
19
+ //# sourceMappingURL=validateIdentifierLength.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/utilities/validateIdentifierLength.spec.ts"],"sourcesContent":["import { describe, expect, it } from 'vitest'\n\nimport { maxIdentifierLength, validateIdentifierLength } from './validateIdentifierLength.js'\n\ndescribe('validateIdentifierLength', () => {\n it('should return the name unchanged when at or under the 63-char limit', () => {\n const name = 'a'.repeat(maxIdentifierLength)\n\n expect(validateIdentifierLength(name)).toBe(name)\n })\n\n it('should throw when the name exceeds the 63-char limit', () => {\n const name = 'a'.repeat(maxIdentifierLength + 1)\n\n expect(() => validateIdentifierLength(name)).toThrow('Exceeded max identifier length')\n })\n\n it('should include the invalid name and the dbName tip in the error', () => {\n const name = `some_long_table_name${'x'.repeat(maxIdentifierLength)}_locales`\n\n expect(() => validateIdentifierLength(name)).toThrow(name)\n expect(() => validateIdentifierLength(name)).toThrow(\n 'You can use the dbName property to reduce the table name length',\n )\n })\n})\n"],"names":["describe","expect","it","maxIdentifierLength","validateIdentifierLength","name","repeat","toBe","toThrow"],"mappings":"AAAA,SAASA,QAAQ,EAAEC,MAAM,EAAEC,EAAE,QAAQ,SAAQ;AAE7C,SAASC,mBAAmB,EAAEC,wBAAwB,QAAQ,gCAA+B;AAE7FJ,SAAS,4BAA4B;IACnCE,GAAG,uEAAuE;QACxE,MAAMG,OAAO,IAAIC,MAAM,CAACH;QAExBF,OAAOG,yBAAyBC,OAAOE,IAAI,CAACF;IAC9C;IAEAH,GAAG,wDAAwD;QACzD,MAAMG,OAAO,IAAIC,MAAM,CAACH,sBAAsB;QAE9CF,OAAO,IAAMG,yBAAyBC,OAAOG,OAAO,CAAC;IACvD;IAEAN,GAAG,mEAAmE;QACpE,MAAMG,OAAO,CAAC,oBAAoB,EAAE,IAAIC,MAAM,CAACH,qBAAqB,QAAQ,CAAC;QAE7EF,OAAO,IAAMG,yBAAyBC,OAAOG,OAAO,CAACH;QACrDJ,OAAO,IAAMG,yBAAyBC,OAAOG,OAAO,CAClD;IAEJ;AACF"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@payloadcms/drizzle",
3
- "version": "4.0.0-internal.fa345ef",
3
+ "version": "4.0.0-internal.fec2230",
4
4
  "description": "A library of shared functions used by different payload database adapters",
5
5
  "homepage": "https://payloadcms.com",
6
6
  "repository": {
@@ -55,10 +55,10 @@
55
55
  "@types/pg": "8.20.0",
56
56
  "@types/to-snake-case": "1.0.0",
57
57
  "@payloadcms/eslint-config": "3.28.0",
58
- "payload": "4.0.0-internal.fa345ef"
58
+ "payload": "4.0.0-internal.fec2230"
59
59
  },
60
60
  "peerDependencies": {
61
- "payload": "4.0.0-internal.fa345ef"
61
+ "payload": "4.0.0-internal.fec2230"
62
62
  },
63
63
  "scripts": {
64
64
  "build": "pnpm build:swc && pnpm build:types",