@breadstone-infrastructure/prisma-seeds 0.0.231

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 (252) hide show
  1. package/CHANGELOG.md +9 -0
  2. package/LICENSE +21 -0
  3. package/README.md +284 -0
  4. package/ai/AISeedGenerator.d.ts +127 -0
  5. package/ai/AISeedGenerator.d.ts.map +1 -0
  6. package/ai/AISeedGenerator.js +438 -0
  7. package/ai/AISeedGenerator.js.map +1 -0
  8. package/ai/AISeedTypes.d.ts +138 -0
  9. package/ai/AISeedTypes.d.ts.map +1 -0
  10. package/ai/AISeedTypes.js +3 -0
  11. package/ai/AISeedTypes.js.map +1 -0
  12. package/ai/PrismaModelAnalyzer.d.ts +36 -0
  13. package/ai/PrismaModelAnalyzer.d.ts.map +1 -0
  14. package/ai/PrismaModelAnalyzer.js +110 -0
  15. package/ai/PrismaModelAnalyzer.js.map +1 -0
  16. package/ai/PrismaTypeSchemaGenerator.d.ts +38 -0
  17. package/ai/PrismaTypeSchemaGenerator.d.ts.map +1 -0
  18. package/ai/PrismaTypeSchemaGenerator.js +71 -0
  19. package/ai/PrismaTypeSchemaGenerator.js.map +1 -0
  20. package/ai/createAISeeder.d.ts +11 -0
  21. package/ai/createAISeeder.d.ts.map +1 -0
  22. package/ai/createAISeeder.js +72 -0
  23. package/ai/createAISeeder.js.map +1 -0
  24. package/ai/index.d.ts +6 -0
  25. package/ai/index.d.ts.map +1 -0
  26. package/ai/index.js +5 -0
  27. package/ai/index.js.map +1 -0
  28. package/assets/AssetManager.d.ts +213 -0
  29. package/assets/AssetManager.d.ts.map +1 -0
  30. package/assets/AssetManager.js +460 -0
  31. package/assets/AssetManager.js.map +1 -0
  32. package/assets/IImageTransformOptions.d.ts +42 -0
  33. package/assets/IImageTransformOptions.d.ts.map +1 -0
  34. package/assets/IImageTransformOptions.js +22 -0
  35. package/assets/IImageTransformOptions.js.map +1 -0
  36. package/assets/adapters/BlobAdapterFactory.d.ts +21 -0
  37. package/assets/adapters/BlobAdapterFactory.d.ts.map +1 -0
  38. package/assets/adapters/BlobAdapterFactory.js +3 -0
  39. package/assets/adapters/BlobAdapterFactory.js.map +1 -0
  40. package/assets/adapters/CloudflareR2BlobAdapter.d.ts +97 -0
  41. package/assets/adapters/CloudflareR2BlobAdapter.d.ts.map +1 -0
  42. package/assets/adapters/CloudflareR2BlobAdapter.js +265 -0
  43. package/assets/adapters/CloudflareR2BlobAdapter.js.map +1 -0
  44. package/assets/adapters/EmptyBlobAdapter.d.ts +42 -0
  45. package/assets/adapters/EmptyBlobAdapter.d.ts.map +1 -0
  46. package/assets/adapters/EmptyBlobAdapter.js +65 -0
  47. package/assets/adapters/EmptyBlobAdapter.js.map +1 -0
  48. package/assets/adapters/LocalFileAdapter.d.ts +34 -0
  49. package/assets/adapters/LocalFileAdapter.d.ts.map +1 -0
  50. package/assets/adapters/LocalFileAdapter.js +74 -0
  51. package/assets/adapters/LocalFileAdapter.js.map +1 -0
  52. package/assets/adapters/VercelBlobAdapter.d.ts +73 -0
  53. package/assets/adapters/VercelBlobAdapter.d.ts.map +1 -0
  54. package/assets/adapters/VercelBlobAdapter.js +168 -0
  55. package/assets/adapters/VercelBlobAdapter.js.map +1 -0
  56. package/assets/adapters/abstracts/BlobAdapterBase.d.ts +62 -0
  57. package/assets/adapters/abstracts/BlobAdapterBase.d.ts.map +1 -0
  58. package/assets/adapters/abstracts/BlobAdapterBase.js +58 -0
  59. package/assets/adapters/abstracts/BlobAdapterBase.js.map +1 -0
  60. package/assets/adapters/abstracts/HttpBlobAdapterBase.d.ts +43 -0
  61. package/assets/adapters/abstracts/HttpBlobAdapterBase.d.ts.map +1 -0
  62. package/assets/adapters/abstracts/HttpBlobAdapterBase.js +88 -0
  63. package/assets/adapters/abstracts/HttpBlobAdapterBase.js.map +1 -0
  64. package/assets/adapters/createBlobAdapter.d.ts +47 -0
  65. package/assets/adapters/createBlobAdapter.d.ts.map +1 -0
  66. package/assets/adapters/createBlobAdapter.js +63 -0
  67. package/assets/adapters/createBlobAdapter.js.map +1 -0
  68. package/assets/adapters/index.d.ts +11 -0
  69. package/assets/adapters/index.d.ts.map +1 -0
  70. package/assets/adapters/index.js +7 -0
  71. package/assets/adapters/index.js.map +1 -0
  72. package/assets/adapters/interfaces/IBlobAdapter.d.ts +41 -0
  73. package/assets/adapters/interfaces/IBlobAdapter.d.ts.map +1 -0
  74. package/assets/adapters/interfaces/IBlobAdapter.js +3 -0
  75. package/assets/adapters/interfaces/IBlobAdapter.js.map +1 -0
  76. package/assets/adapters/interfaces/IBlobAdapterConfig.d.ts +16 -0
  77. package/assets/adapters/interfaces/IBlobAdapterConfig.d.ts.map +1 -0
  78. package/assets/adapters/interfaces/IBlobAdapterConfig.js +2 -0
  79. package/assets/adapters/interfaces/IBlobAdapterConfig.js.map +1 -0
  80. package/assets/adapters/interfaces/IBlobUploadResult.d.ts +24 -0
  81. package/assets/adapters/interfaces/IBlobUploadResult.d.ts.map +1 -0
  82. package/assets/adapters/interfaces/IBlobUploadResult.js +2 -0
  83. package/assets/adapters/interfaces/IBlobUploadResult.js.map +1 -0
  84. package/base/BaseSeeder.d.ts +21 -0
  85. package/base/BaseSeeder.d.ts.map +1 -0
  86. package/base/BaseSeeder.js +45 -0
  87. package/base/BaseSeeder.js.map +1 -0
  88. package/base/functionalSeeder.d.ts +31 -0
  89. package/base/functionalSeeder.d.ts.map +1 -0
  90. package/base/functionalSeeder.js +33 -0
  91. package/base/functionalSeeder.js.map +1 -0
  92. package/cli/Cli.d.ts +2 -0
  93. package/cli/Cli.d.ts.map +1 -0
  94. package/cli/Cli.js +32 -0
  95. package/cli/Cli.js.map +1 -0
  96. package/cli/CliArgs.d.ts +2 -0
  97. package/cli/CliArgs.d.ts.map +1 -0
  98. package/cli/CliArgs.js +133 -0
  99. package/cli/CliArgs.js.map +1 -0
  100. package/cli/CliArgsConfig.d.ts +2 -0
  101. package/cli/CliArgsConfig.d.ts.map +1 -0
  102. package/cli/CliArgsConfig.js +15 -0
  103. package/cli/CliArgsConfig.js.map +1 -0
  104. package/cli/CliRun.d.ts +2 -0
  105. package/cli/CliRun.d.ts.map +1 -0
  106. package/cli/CliRun.js +34 -0
  107. package/cli/CliRun.js.map +1 -0
  108. package/cli/commands/SeedCommand.d.ts +2 -0
  109. package/cli/commands/SeedCommand.d.ts.map +1 -0
  110. package/cli/commands/SeedCommand.js +73 -0
  111. package/cli/commands/SeedCommand.js.map +1 -0
  112. package/cli/commands/SeedCommandArgsConfig.d.ts +2 -0
  113. package/cli/commands/SeedCommandArgsConfig.d.ts.map +1 -0
  114. package/cli/commands/SeedCommandArgsConfig.js +31 -0
  115. package/cli/commands/SeedCommandArgsConfig.js.map +1 -0
  116. package/cli/seed.d.ts +2 -0
  117. package/cli/seed.d.ts.map +1 -0
  118. package/cli/seed.js +42 -0
  119. package/cli/seed.js.map +1 -0
  120. package/config/IAssetConfig.d.ts +36 -0
  121. package/config/IAssetConfig.d.ts.map +1 -0
  122. package/config/IAssetConfig.js +3 -0
  123. package/config/IAssetConfig.js.map +1 -0
  124. package/config/IComposedSeedConfig.d.ts +32 -0
  125. package/config/IComposedSeedConfig.d.ts.map +1 -0
  126. package/config/IComposedSeedConfig.js +3 -0
  127. package/config/IComposedSeedConfig.js.map +1 -0
  128. package/config/ISeedConfig.d.ts +75 -0
  129. package/config/ISeedConfig.d.ts.map +1 -0
  130. package/config/ISeedConfig.js +3 -0
  131. package/config/ISeedConfig.js.map +1 -0
  132. package/config/ISeedContext.d.ts +92 -0
  133. package/config/ISeedContext.d.ts.map +1 -0
  134. package/config/ISeedContext.js +3 -0
  135. package/config/ISeedContext.js.map +1 -0
  136. package/config/ISeedDefinition.d.ts +38 -0
  137. package/config/ISeedDefinition.d.ts.map +1 -0
  138. package/config/ISeedDefinition.js +3 -0
  139. package/config/ISeedDefinition.js.map +1 -0
  140. package/config/ISeedFactory.d.ts +15 -0
  141. package/config/ISeedFactory.d.ts.map +1 -0
  142. package/config/ISeedFactory.js +3 -0
  143. package/config/ISeedFactory.js.map +1 -0
  144. package/config/ISeedOptions.d.ts +44 -0
  145. package/config/ISeedOptions.d.ts.map +1 -0
  146. package/config/ISeedOptions.js +2 -0
  147. package/config/ISeedOptions.js.map +1 -0
  148. package/config/ISeedResult.d.ts +44 -0
  149. package/config/ISeedResult.d.ts.map +1 -0
  150. package/config/ISeedResult.js +2 -0
  151. package/config/ISeedResult.js.map +1 -0
  152. package/config/ISeeder.d.ts +37 -0
  153. package/config/ISeeder.d.ts.map +1 -0
  154. package/config/ISeeder.js +3 -0
  155. package/config/ISeeder.js.map +1 -0
  156. package/config/createAdapter.d.ts +13 -0
  157. package/config/createAdapter.d.ts.map +1 -0
  158. package/config/createAdapter.js +16 -0
  159. package/config/createAdapter.js.map +1 -0
  160. package/config/createSeed.d.ts +6 -0
  161. package/config/createSeed.d.ts.map +1 -0
  162. package/config/createSeed.js +16 -0
  163. package/config/createSeed.js.map +1 -0
  164. package/config/defineConfig.d.ts +27 -0
  165. package/config/defineConfig.d.ts.map +1 -0
  166. package/config/defineConfig.js +35 -0
  167. package/config/defineConfig.js.map +1 -0
  168. package/discovery/SeedConfigDiscovery.d.ts +16 -0
  169. package/discovery/SeedConfigDiscovery.d.ts.map +1 -0
  170. package/discovery/SeedConfigDiscovery.js +137 -0
  171. package/discovery/SeedConfigDiscovery.js.map +1 -0
  172. package/index.d.ts +32 -0
  173. package/index.d.ts.map +1 -0
  174. package/index.js +32 -0
  175. package/index.js.map +1 -0
  176. package/json/JsonReferenceResolver.d.ts +23 -0
  177. package/json/JsonReferenceResolver.d.ts.map +1 -0
  178. package/json/JsonReferenceResolver.js +99 -0
  179. package/json/JsonReferenceResolver.js.map +1 -0
  180. package/json/JsonSchemaValidator.d.ts +23 -0
  181. package/json/JsonSchemaValidator.d.ts.map +1 -0
  182. package/json/JsonSchemaValidator.js +98 -0
  183. package/json/JsonSchemaValidator.js.map +1 -0
  184. package/json/JsonSeedLoader.d.ts +33 -0
  185. package/json/JsonSeedLoader.d.ts.map +1 -0
  186. package/json/JsonSeedLoader.js +176 -0
  187. package/json/JsonSeedLoader.js.map +1 -0
  188. package/json/JsonSeedTypes.d.ts +204 -0
  189. package/json/JsonSeedTypes.d.ts.map +1 -0
  190. package/json/JsonSeedTypes.js +3 -0
  191. package/json/JsonSeedTypes.js.map +1 -0
  192. package/json/createJsonSeeder.d.ts +13 -0
  193. package/json/createJsonSeeder.d.ts.map +1 -0
  194. package/json/createJsonSeeder.js +240 -0
  195. package/json/createJsonSeeder.js.map +1 -0
  196. package/json/index.d.ts +6 -0
  197. package/json/index.d.ts.map +1 -0
  198. package/json/index.js +7 -0
  199. package/json/index.js.map +1 -0
  200. package/logging/ISeedLogger.d.ts +55 -0
  201. package/logging/ISeedLogger.d.ts.map +1 -0
  202. package/logging/ISeedLogger.js +3 -0
  203. package/logging/ISeedLogger.js.map +1 -0
  204. package/logging/LogLevel.d.ts +30 -0
  205. package/logging/LogLevel.d.ts.map +1 -0
  206. package/logging/LogLevel.js +37 -0
  207. package/logging/LogLevel.js.map +1 -0
  208. package/logging/SeedLogger.d.ts +24 -0
  209. package/logging/SeedLogger.d.ts.map +1 -0
  210. package/logging/SeedLogger.js +94 -0
  211. package/logging/SeedLogger.js.map +1 -0
  212. package/orchestration/SeedOrchestrator.d.ts +30 -0
  213. package/orchestration/SeedOrchestrator.d.ts.map +1 -0
  214. package/orchestration/SeedOrchestrator.js +262 -0
  215. package/orchestration/SeedOrchestrator.js.map +1 -0
  216. package/package.json +27 -0
  217. package/resolvers/EntityResolver.d.ts +43 -0
  218. package/resolvers/EntityResolver.d.ts.map +1 -0
  219. package/resolvers/EntityResolver.js +95 -0
  220. package/resolvers/EntityResolver.js.map +1 -0
  221. package/utils/AssetReferenceResolver.d.ts +49 -0
  222. package/utils/AssetReferenceResolver.d.ts.map +1 -0
  223. package/utils/AssetReferenceResolver.js +62 -0
  224. package/utils/AssetReferenceResolver.js.map +1 -0
  225. package/utils/EntityLookupCache.d.ts +47 -0
  226. package/utils/EntityLookupCache.d.ts.map +1 -0
  227. package/utils/EntityLookupCache.js +64 -0
  228. package/utils/EntityLookupCache.js.map +1 -0
  229. package/utils/ISeedRandom.d.ts +70 -0
  230. package/utils/ISeedRandom.d.ts.map +1 -0
  231. package/utils/ISeedRandom.js +3 -0
  232. package/utils/ISeedRandom.js.map +1 -0
  233. package/utils/LocalizationToolkit.d.ts +125 -0
  234. package/utils/LocalizationToolkit.d.ts.map +1 -0
  235. package/utils/LocalizationToolkit.js +131 -0
  236. package/utils/LocalizationToolkit.js.map +1 -0
  237. package/utils/SeededRandom.d.ts +15 -0
  238. package/utils/SeededRandom.d.ts.map +1 -0
  239. package/utils/SeededRandom.js +56 -0
  240. package/utils/SeededRandom.js.map +1 -0
  241. package/utils/StringArrayToolkit.d.ts +25 -0
  242. package/utils/StringArrayToolkit.d.ts.map +1 -0
  243. package/utils/StringArrayToolkit.js +56 -0
  244. package/utils/StringArrayToolkit.js.map +1 -0
  245. package/utils/StringValueGuard.d.ts +24 -0
  246. package/utils/StringValueGuard.d.ts.map +1 -0
  247. package/utils/StringValueGuard.js +46 -0
  248. package/utils/StringValueGuard.js.map +1 -0
  249. package/utils/WarningCollector.d.ts +40 -0
  250. package/utils/WarningCollector.d.ts.map +1 -0
  251. package/utils/WarningCollector.js +83 -0
  252. package/utils/WarningCollector.js.map +1 -0
@@ -0,0 +1,7 @@
1
+ export { BlobAdapterBase } from './abstracts/BlobAdapterBase.js';
2
+ export { EmptyBlobAdapter } from './EmptyBlobAdapter.js';
3
+ export { LocalFileAdapter } from './LocalFileAdapter.js';
4
+ export { VercelBlobAdapter } from './VercelBlobAdapter.js';
5
+ export { CloudflareR2BlobAdapter } from './CloudflareR2BlobAdapter.js';
6
+ export { createCloudflareR2BlobAdapter, createEmptyBlobAdapter, createLocalBlobAdapter, createVercelBlobAdapter, createBlobAdapter } from './createBlobAdapter.js';
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/assets/adapters/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AAIjE,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAgC,MAAM,uBAAuB,CAAC;AAEvF,OAAO,EAAE,iBAAiB,EAAiC,MAAM,wBAAwB,CAAC;AAC1F,OAAO,EAAE,uBAAuB,EAAmC,MAAM,8BAA8B,CAAC;AACxG,OAAO,EAAE,6BAA6B,EAAE,sBAAsB,EAAE,sBAAsB,EAAE,uBAAuB,EAAE,iBAAiB,EAAmB,MAAM,wBAAwB,CAAC"}
@@ -0,0 +1,41 @@
1
+ import { IBlobUploadResult } from './IBlobUploadResult';
2
+ /**
3
+ * Abstract blob adapter interface that defines the contract for uploading files
4
+ * to various blob storage providers.
5
+ *
6
+ * @public
7
+ */
8
+ export interface IBlobAdapter {
9
+ get name(): string;
10
+ /**
11
+ * Upload a file to the blob storage.
12
+ *
13
+ * @param key The unique key/path for the file
14
+ * @param buffer The file content as a buffer
15
+ * @param mimeType The MIME type of the file
16
+ * @returns Promise with upload result containing metadata and public URL
17
+ */
18
+ upload(key: string, buffer: Buffer, mimeType: string): Promise<IBlobUploadResult>;
19
+ /**
20
+ * Generate a public URL for accessing the uploaded file.
21
+ *
22
+ * @param key The unique key/path of the file
23
+ * @returns Promise with the public URL
24
+ */
25
+ getPublicUrl(key: string): Promise<string>;
26
+ /**
27
+ * Check if a file exists in the blob storage.
28
+ *
29
+ * @param key The unique key/path of the file
30
+ * @returns Promise with boolean indicating if file exists
31
+ */
32
+ exists(key: string): Promise<boolean>;
33
+ /**
34
+ * Delete a file from the blob storage.
35
+ *
36
+ * @param key The unique key/path of the file
37
+ * @returns Promise that resolves when file is deleted
38
+ */
39
+ delete(key: string): Promise<void>;
40
+ }
41
+ //# sourceMappingURL=IBlobAdapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IBlobAdapter.d.ts","sourceRoot":"","sources":["../../../../src/assets/adapters/interfaces/IBlobAdapter.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAIxD;;;;;GAKG;AACH,MAAM,WAAW,YAAY;IAIzB,IAAI,IAAI,IAAI,MAAM,CAAC;IAMnB;;;;;;;OAOG;IACH,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAElF;;;;;OAKG;IACH,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAE3C;;;;;OAKG;IACH,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAEtC;;;;;OAKG;IACH,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAItC"}
@@ -0,0 +1,3 @@
1
+ /* eslint-disable no-unused-vars */
2
+ export {};
3
+ //# sourceMappingURL=IBlobAdapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IBlobAdapter.js","sourceRoot":"","sources":["../../../../src/assets/adapters/interfaces/IBlobAdapter.ts"],"names":[],"mappings":"AAAA,mCAAmC"}
@@ -0,0 +1,16 @@
1
+ /**
2
+ * Configuration for blob adapter instances.
3
+ *
4
+ * @public
5
+ */
6
+ export interface IBlobAdapterConfig {
7
+ /**
8
+ * Optional key prefix for all uploads
9
+ */
10
+ keyPrefix?: string;
11
+ /**
12
+ * Additional provider-specific configuration
13
+ */
14
+ providerConfig?: Record<string, unknown>;
15
+ }
16
+ //# sourceMappingURL=IBlobAdapterConfig.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IBlobAdapterConfig.d.ts","sourceRoot":"","sources":["../../../../src/assets/adapters/interfaces/IBlobAdapterConfig.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,WAAW,kBAAkB;IAE/B;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAE5C"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=IBlobAdapterConfig.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IBlobAdapterConfig.js","sourceRoot":"","sources":["../../../../src/assets/adapters/interfaces/IBlobAdapterConfig.ts"],"names":[],"mappings":""}
@@ -0,0 +1,24 @@
1
+ /**
2
+ * Result of a blob upload operation.
3
+ *
4
+ * @public
5
+ */
6
+ export interface IBlobUploadResult {
7
+ /**
8
+ * The unique key/path where the file was stored
9
+ */
10
+ key: string;
11
+ /**
12
+ * The public URL to access the uploaded file
13
+ */
14
+ url: string;
15
+ /**
16
+ * File size in bytes
17
+ */
18
+ size: number;
19
+ /**
20
+ * Additional metadata from the upload operation
21
+ */
22
+ metadata: Record<string, unknown>;
23
+ }
24
+ //# sourceMappingURL=IBlobUploadResult.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IBlobUploadResult.d.ts","sourceRoot":"","sources":["../../../../src/assets/adapters/interfaces/IBlobUploadResult.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,WAAW,iBAAiB;IAE9B;;OAEG;IACH,GAAG,EAAE,MAAM,CAAC;IAEZ;;OAEG;IACH,GAAG,EAAE,MAAM,CAAC;IAEZ;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAErC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=IBlobUploadResult.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IBlobUploadResult.js","sourceRoot":"","sources":["../../../../src/assets/adapters/interfaces/IBlobUploadResult.ts"],"names":[],"mappings":""}
@@ -0,0 +1,21 @@
1
+ import type { ISeedResult } from '../config/ISeedResult.js';
2
+ import type { ISeedContext } from '../config/ISeedContext.js';
3
+ import type { ISeeder } from '../config/ISeeder.js';
4
+ /**
5
+ * Base class for all seeders, providing common functionality and enforcing the seeder interface.
6
+ *
7
+ * @public
8
+ * @abstract
9
+ */
10
+ export declare abstract class BaseSeeder implements ISeeder {
11
+ abstract readonly name: string;
12
+ abstract seed(context: ISeedContext): Promise<ISeedResult>;
13
+ validate(context: ISeedContext): Promise<boolean>;
14
+ cleanup(context: ISeedContext): Promise<void>;
15
+ protected createResult(itemsCreated: number, duration: number, errors?: string[], warnings?: string[]): ISeedResult;
16
+ protected measureTime<T>(operation: () => Promise<T>): Promise<{
17
+ result: T;
18
+ duration: number;
19
+ }>;
20
+ }
21
+ //# sourceMappingURL=BaseSeeder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BaseSeeder.d.ts","sourceRoot":"","sources":["../../src/base/BaseSeeder.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAIpD;;;;;GAKG;AACH,8BAAsB,UAAW,YAAW,OAAO;IAI/C,kBAAyB,IAAI,EAAE,MAAM,CAAC;aAEtB,IAAI,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,WAAW,CAAC;IAEpD,QAAQ,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC;IAUjD,OAAO,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IAK1D,SAAS,CAAC,YAAY,CAAC,YAAY,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,GAAE,MAAM,EAAO,EAAE,QAAQ,GAAE,MAAM,EAAO,GAAG,WAAW;cAW3G,WAAW,CAAC,CAAC,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC;QACjE,MAAM,EAAE,CAAC,CAAC;QACV,QAAQ,EAAE,MAAM,CAAC;KACpB,CAAC;CAYL"}
@@ -0,0 +1,45 @@
1
+ /* eslint-disable no-unused-vars */
2
+ // #region Imports
3
+ // #endregion
4
+ /**
5
+ * Base class for all seeders, providing common functionality and enforcing the seeder interface.
6
+ *
7
+ * @public
8
+ * @abstract
9
+ */
10
+ export class BaseSeeder {
11
+ async validate(context) {
12
+ try {
13
+ context.logger.debug(`Validating seeder: ${this.name}`);
14
+ return true;
15
+ }
16
+ catch (error) {
17
+ context.logger.error(`Validation failed for ${this.name}: ${error}`);
18
+ return false;
19
+ }
20
+ }
21
+ async cleanup(context) {
22
+ context.logger.debug(`Cleaning up seeder: ${this.name}`);
23
+ // Default implementation - can be overridden
24
+ }
25
+ createResult(itemsCreated, duration, errors = [], warnings = []) {
26
+ return {
27
+ success: errors.length === 0,
28
+ itemsCreated,
29
+ duration,
30
+ errors,
31
+ warnings,
32
+ metadata: {}
33
+ };
34
+ }
35
+ async measureTime(operation) {
36
+ const start = Date.now();
37
+ const result = await operation();
38
+ const duration = Date.now() - start;
39
+ return {
40
+ result,
41
+ duration
42
+ };
43
+ }
44
+ }
45
+ //# sourceMappingURL=BaseSeeder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BaseSeeder.js","sourceRoot":"","sources":["../../src/base/BaseSeeder.ts"],"names":[],"mappings":"AAAA,mCAAmC;AACnC,kBAAkB;AAMlB,aAAa;AAEb;;;;;GAKG;AACH,MAAM,OAAgB,UAAU;IAQrB,KAAK,CAAC,QAAQ,CAAC,OAAqB;QACvC,IAAI,CAAC;YACD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,sBAAsB,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;YACxD,OAAO,IAAI,CAAC;QAChB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,yBAAyB,IAAI,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC,CAAC;YACrE,OAAO,KAAK,CAAC;QACjB,CAAC;IACL,CAAC;IAEM,KAAK,CAAC,OAAO,CAAC,OAAqB;QACtC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,uBAAuB,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;QACzD,6CAA6C;IACjD,CAAC;IAES,YAAY,CAAC,YAAoB,EAAE,QAAgB,EAAE,SAAmB,EAAE,EAAE,WAAqB,EAAE;QACzG,OAAO;YACH,OAAO,EAAE,MAAM,CAAC,MAAM,KAAK,CAAC;YAC5B,YAAY;YACZ,QAAQ;YACR,MAAM;YACN,QAAQ;YACR,QAAQ,EAAE,EAAE;SACf,CAAC;IACN,CAAC;IAES,KAAK,CAAC,WAAW,CAAI,SAA2B;QAItD,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACzB,MAAM,MAAM,GAAG,MAAM,SAAS,EAAE,CAAC;QACjC,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC;QACpC,OAAO;YACH,MAAM;YACN,QAAQ;SACX,CAAC;IACN,CAAC;CAIJ"}
@@ -0,0 +1,31 @@
1
+ import type { ISeedResult } from '../config/ISeedResult.js';
2
+ import type { ISeedContext } from '../config/ISeedContext.js';
3
+ import type { ISeeder } from '../config/ISeeder.js';
4
+ /**
5
+ * Result returned by a timed operation executed by a seeder.
6
+ */
7
+ export interface ITimedExecutionResult<T> {
8
+ readonly result: T;
9
+ readonly duration: number;
10
+ }
11
+ /**
12
+ * Utilities provided to functional seeders for consistent result creation and instrumentation.
13
+ */
14
+ export interface IFunctionalSeederUtilities {
15
+ measureExecutionTime<T>(operation: () => Promise<T>): Promise<ITimedExecutionResult<T>>;
16
+ createSeedResult(itemsCreated: number, duration: number, errors?: readonly string[], warnings?: readonly string[], metadata?: Readonly<Record<string, unknown>>): ISeedResult;
17
+ }
18
+ /**
19
+ * Configuration contract used to construct a functional seeder.
20
+ */
21
+ export interface IFunctionalSeederConfig {
22
+ readonly name: string;
23
+ readonly run: (context: ISeedContext, utilities: IFunctionalSeederUtilities) => Promise<ISeedResult>;
24
+ readonly validate?: (context: ISeedContext) => Promise<boolean>;
25
+ readonly cleanup?: (context: ISeedContext) => Promise<void>;
26
+ }
27
+ /**
28
+ * Creates an {@link ISeeder} implementation backed by functional handlers.
29
+ */
30
+ export declare const createFunctionalSeeder: (config: IFunctionalSeederConfig) => ISeeder;
31
+ //# sourceMappingURL=functionalSeeder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"functionalSeeder.d.ts","sourceRoot":"","sources":["../../src/base/functionalSeeder.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAIpD;;GAEG;AACH,MAAM,WAAW,qBAAqB,CAAC,CAAC;IACpC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;IACnB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC7B;AAED;;GAEG;AACH,MAAM,WAAW,0BAA0B;IACvC,oBAAoB,CAAC,CAAC,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC;IACxF,gBAAgB,CAAC,YAAY,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,SAAS,MAAM,EAAE,EAAE,QAAQ,CAAC,EAAE,SAAS,MAAM,EAAE,EAAE,QAAQ,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GAAG,WAAW,CAAC;CACjL;AAED;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACpC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,0BAA0B,KAAK,OAAO,CAAC,WAAW,CAAC,CAAC;IACrG,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,YAAY,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IAChE,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,YAAY,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CAC/D;AAED;;GAEG;AACH,eAAO,MAAM,sBAAsB,GAAI,QAAQ,uBAAuB,KAAG,OAKvE,CAAC"}
@@ -0,0 +1,33 @@
1
+ /* eslint-disable no-unused-vars */
2
+ /**
3
+ * Creates an {@link ISeeder} implementation backed by functional handlers.
4
+ */
5
+ export const createFunctionalSeeder = (config) => ({
6
+ name: config.name,
7
+ seed: (context) => config.run(context, createFunctionalSeederUtilities()),
8
+ ...config.validate && { validate: (context) => config.validate(context) },
9
+ ...config.cleanup && { cleanup: (context) => config.cleanup(context) }
10
+ });
11
+ const createFunctionalSeederUtilities = () => {
12
+ const createSeedResult = (itemsCreated, duration, errors = [], warnings = [], metadata = {}) => ({
13
+ success: errors.length === 0,
14
+ itemsCreated,
15
+ duration,
16
+ errors: [...errors],
17
+ warnings: [...warnings],
18
+ metadata: { ...metadata }
19
+ });
20
+ const measureExecutionTime = async (operation) => {
21
+ const startedAt = Date.now();
22
+ const result = await operation();
23
+ return {
24
+ result,
25
+ duration: Date.now() - startedAt
26
+ };
27
+ };
28
+ return {
29
+ createSeedResult,
30
+ measureExecutionTime
31
+ };
32
+ };
33
+ //# sourceMappingURL=functionalSeeder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"functionalSeeder.js","sourceRoot":"","sources":["../../src/base/functionalSeeder.ts"],"names":[],"mappings":"AAAA,mCAAmC;AAoCnC;;GAEG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,MAA+B,EAAW,EAAE,CAAC,CAAC;IACjF,IAAI,EAAE,MAAM,CAAC,IAAI;IACjB,IAAI,EAAE,CAAC,OAAqB,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,+BAA+B,EAAE,CAAC;IACvF,GAAG,MAAM,CAAC,QAAQ,IAAI,EAAE,QAAQ,EAAE,CAAC,OAAqB,EAAE,EAAE,CAAC,MAAM,CAAC,QAAS,CAAC,OAAO,CAAC,EAAE;IACxF,GAAG,MAAM,CAAC,OAAO,IAAI,EAAE,OAAO,EAAE,CAAC,OAAqB,EAAE,EAAE,CAAC,MAAM,CAAC,OAAQ,CAAC,OAAO,CAAC,EAAE;CACxF,CAAC,CAAC;AAEH,MAAM,+BAA+B,GAAG,GAA+B,EAAE;IACrE,MAAM,gBAAgB,GAAG,CACrB,YAAoB,EACpB,QAAgB,EAChB,SAA4B,EAAE,EAC9B,WAA8B,EAAE,EAChC,WAA8C,EAAE,EACrC,EAAE,CAAC,CAAC;QACf,OAAO,EAAE,MAAM,CAAC,MAAM,KAAK,CAAC;QAC5B,YAAY;QACZ,QAAQ;QACR,MAAM,EAAE,CAAC,GAAG,MAAM,CAAC;QACnB,QAAQ,EAAE,CAAC,GAAG,QAAQ,CAAC;QACvB,QAAQ,EAAE,EAAE,GAAG,QAAQ,EAAE;KAC5B,CAAC,CAAC;IAEH,MAAM,oBAAoB,GAAG,KAAK,EAAK,SAA2B,EAAqC,EAAE;QACrG,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC7B,MAAM,MAAM,GAAG,MAAM,SAAS,EAAE,CAAC;QACjC,OAAO;YACH,MAAM;YACN,QAAQ,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS;SACnC,CAAC;IACN,CAAC,CAAC;IAEF,OAAO;QACH,gBAAgB;QAChB,oBAAoB;KACvB,CAAC;AACN,CAAC,CAAC"}
package/cli/Cli.d.ts ADDED
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=Cli.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Cli.d.ts","sourceRoot":"","sources":["../../src/cli/Cli.ts"],"names":[],"mappings":""}
package/cli/Cli.js ADDED
@@ -0,0 +1,32 @@
1
+ // #region Imports
2
+ import { Program } from '@breadstone-infrastructure/utilities';
3
+ import { CLI_ARGS } from './CliArgs.js';
4
+ import { DEFAULT_CLI_ARGS_CONFIG } from './CliArgsConfig.js';
5
+ import { SeedCommand } from './commands/SeedCommand.js';
6
+ import { DEFAULT_SEED_COMMAND_ARGS_CONFIG } from './commands/SeedCommandArgsConfig.js';
7
+ // #endregion
8
+ /**
9
+ * @description Prisma Seeds CLI application.
10
+ * @internal
11
+ */
12
+ export class Cli extends Program {
13
+ // #region Ctor
14
+ constructor() {
15
+ super({
16
+ moduleName: 'prisma-seeds',
17
+ prog: 'prisma-seeds',
18
+ description: 'Prisma Seeds — A configurable database seeding tool.',
19
+ version: '@@VERSION',
20
+ addHelp: true,
21
+ debug: true,
22
+ });
23
+ this.config
24
+ .assign(DEFAULT_CLI_ARGS_CONFIG);
25
+ this.args
26
+ .register(...CLI_ARGS);
27
+ const seedCtorFn = () => [DEFAULT_SEED_COMMAND_ARGS_CONFIG];
28
+ this.commands
29
+ .register('seed', SeedCommand, seedCtorFn);
30
+ }
31
+ }
32
+ //# sourceMappingURL=Cli.js.map
package/cli/Cli.js.map ADDED
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Cli.js","sourceRoot":"","sources":["../../src/cli/Cli.ts"],"names":[],"mappings":"AAAA,kBAAkB;AAElB,OAAO,EAAE,OAAO,EAAE,MAAM,sCAAsC,CAAC;AAC/D,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AACxC,OAAO,EAAE,uBAAuB,EAAuB,MAAM,oBAAoB,CAAC;AAClF,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,EAAE,gCAAgC,EAAE,MAAM,qCAAqC,CAAC;AAEvF,aAAa;AAEb;;;GAGG;AACH,MAAM,OAAO,GAAI,SAAQ,OAAuB;IAE5C,eAAe;IAEf;QACI,KAAK,CAAC;YACF,UAAU,EAAE,cAAc;YAC1B,IAAI,EAAE,cAAc;YACpB,WAAW,EAAE,sDAAsD;YACnE,OAAO,EAAE,WAAW;YACpB,OAAO,EAAE,IAAI;YACb,KAAK,EAAE,IAAI;SACd,CAAC,CAAC;QAEH,IAAI,CAAC,MAAM;aACN,MAAM,CAAC,uBAAuB,CAAC,CAAC;QAErC,IAAI,CAAC,IAAI;aACJ,QAAQ,CAAC,GAAG,QAAQ,CAAC,CAAC;QAE3B,MAAM,UAAU,GAAoD,GAAG,EAAE,CAAC,CAAC,gCAAgC,CAAC,CAAC;QAE7G,IAAI,CAAC,QAAQ;aACR,QAAQ,CAAC,MAAM,EAAE,WAAW,EAAE,UAAU,CAAC,CAAC;IACnD,CAAC;CAGJ"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=CliArgs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CliArgs.d.ts","sourceRoot":"","sources":["../../src/cli/CliArgs.ts"],"names":[],"mappings":""}
package/cli/CliArgs.js ADDED
@@ -0,0 +1,133 @@
1
+ // #region Imports
2
+ import { Boolean } from '@breadstone-infrastructure/utilities';
3
+ import { DEFAULT_CLI_ARGS_CONFIG } from './CliArgsConfig.js';
4
+ // #endregion
5
+ // #region Arguments
6
+ /**
7
+ * @description Drops existing data before seeding.
8
+ * @internal
9
+ */
10
+ export const DROP_ARG = {
11
+ alias: ['-d', '--drop'],
12
+ options: {
13
+ type: (value) => Boolean.parse(value),
14
+ required: false,
15
+ default: DEFAULT_CLI_ARGS_CONFIG.drop,
16
+ metavar: 'boolean',
17
+ help: 'Drops existing data before seeding.',
18
+ },
19
+ };
20
+ /**
21
+ * @description Sets the number of items to seed per entity.
22
+ * @internal
23
+ */
24
+ export const COUNT_ARG = {
25
+ alias: ['-n', '--count'],
26
+ options: {
27
+ type: (value) => parseInt(value, 10),
28
+ required: false,
29
+ default: DEFAULT_CLI_ARGS_CONFIG.count,
30
+ metavar: 'number',
31
+ help: 'Number of items to seed per entity.',
32
+ },
33
+ };
34
+ /**
35
+ * @description Forces the seeding operation.
36
+ * @internal
37
+ */
38
+ export const FORCE_ARG = {
39
+ alias: ['-f', '--force'],
40
+ options: {
41
+ type: (value) => Boolean.parse(value),
42
+ required: false,
43
+ default: DEFAULT_CLI_ARGS_CONFIG.force,
44
+ metavar: 'boolean',
45
+ help: 'Forces the seeding operation without confirmation.',
46
+ },
47
+ };
48
+ /**
49
+ * @description Enables dry run mode.
50
+ * @internal
51
+ */
52
+ export const DRY_RUN_ARG = {
53
+ alias: ['-dr', '--dry-run'],
54
+ options: {
55
+ type: (value) => Boolean.parse(value),
56
+ required: false,
57
+ default: DEFAULT_CLI_ARGS_CONFIG.dryRun,
58
+ metavar: 'boolean',
59
+ help: 'Enables dry run mode to prevent any database changes.',
60
+ },
61
+ };
62
+ /**
63
+ * @description Sets the seed value for deterministic randomness.
64
+ * @internal
65
+ */
66
+ export const SEED_ARG = {
67
+ alias: ['-s', '--seed'],
68
+ options: {
69
+ type: (value) => parseInt(value, 10),
70
+ required: false,
71
+ default: DEFAULT_CLI_ARGS_CONFIG.seed,
72
+ metavar: 'number',
73
+ help: 'Seed value for deterministic random generation.',
74
+ },
75
+ };
76
+ /**
77
+ * @description Sets the environment for seeding.
78
+ * @internal
79
+ */
80
+ export const ENVIRONMENT_ARG = {
81
+ alias: ['-e', '--environment'],
82
+ options: {
83
+ required: false,
84
+ default: DEFAULT_CLI_ARGS_CONFIG.environment,
85
+ metavar: 'string',
86
+ help: 'Environment to use for seeding (e.g. development, staging, production).',
87
+ },
88
+ };
89
+ /**
90
+ * @description Enables verbose logging output.
91
+ * @internal
92
+ */
93
+ export const VERBOSE_ARG = {
94
+ alias: ['-v', '--verbose'],
95
+ options: {
96
+ type: (value) => Boolean.parse(value),
97
+ required: false,
98
+ default: DEFAULT_CLI_ARGS_CONFIG.verbose,
99
+ metavar: 'boolean',
100
+ help: 'Enables verbose logging output.',
101
+ },
102
+ };
103
+ /**
104
+ * @description Sets the current working directory.
105
+ * @internal
106
+ */
107
+ export const CWD_ARG = {
108
+ alias: ['-c', '--cwd'],
109
+ options: {
110
+ required: false,
111
+ default: DEFAULT_CLI_ARGS_CONFIG.cwd,
112
+ metavar: 'string',
113
+ help: 'Specifies the current working directory for config discovery.',
114
+ },
115
+ };
116
+ // #endregion
117
+ // #region Exports
118
+ /**
119
+ * @description Aggregate export for all CLI arguments.
120
+ * @internal
121
+ */
122
+ export const CLI_ARGS = [
123
+ DROP_ARG,
124
+ COUNT_ARG,
125
+ FORCE_ARG,
126
+ DRY_RUN_ARG,
127
+ SEED_ARG,
128
+ ENVIRONMENT_ARG,
129
+ VERBOSE_ARG,
130
+ CWD_ARG,
131
+ ];
132
+ // #endregion
133
+ //# sourceMappingURL=CliArgs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CliArgs.js","sourceRoot":"","sources":["../../src/cli/CliArgs.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=CliArgsConfig.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CliArgsConfig.d.ts","sourceRoot":"","sources":["../../src/cli/CliArgsConfig.ts"],"names":[],"mappings":""}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * @description Default CLI argument values.
3
+ * @internal
4
+ */
5
+ export const DEFAULT_CLI_ARGS_CONFIG = {
6
+ drop: false,
7
+ count: 5,
8
+ force: false,
9
+ dryRun: false,
10
+ seed: Date.now(),
11
+ environment: 'development',
12
+ verbose: false,
13
+ cwd: process.cwd(),
14
+ };
15
+ //# sourceMappingURL=CliArgsConfig.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CliArgsConfig.js","sourceRoot":"","sources":["../../src/cli/CliArgsConfig.ts"],"names":[],"mappings":"AAoEA;;;GAGG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAmB;IACnD,IAAI,EAAE,KAAK;IACX,KAAK,EAAE,CAAC;IACR,KAAK,EAAE,KAAK;IACZ,MAAM,EAAE,KAAK;IACb,IAAI,EAAE,IAAI,CAAC,GAAG,EAAE;IAChB,WAAW,EAAE,aAAa;IAC1B,OAAO,EAAE,KAAK;IACd,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE;CACrB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=CliRun.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CliRun.d.ts","sourceRoot":"","sources":["../../src/cli/CliRun.ts"],"names":[],"mappings":""}
package/cli/CliRun.js ADDED
@@ -0,0 +1,34 @@
1
+ // #region Imports
2
+ import { ConsoleLogger } from '@breadstone-infrastructure/utilities';
3
+ import { Cli } from './Cli.js';
4
+ // #endregion
5
+ const logger = new ConsoleLogger();
6
+ /**
7
+ * @description Bootstrap the Prisma Seeds CLI.
8
+ * @internal
9
+ */
10
+ (async () => {
11
+ const catchAction = (error) => {
12
+ logger.error(String(error));
13
+ };
14
+ let cli = null;
15
+ try {
16
+ cli = new Cli();
17
+ }
18
+ catch (error) {
19
+ catchAction(error);
20
+ return;
21
+ }
22
+ try {
23
+ await cli.init();
24
+ }
25
+ catch (error) {
26
+ catchAction(error);
27
+ return;
28
+ }
29
+ await cli.run();
30
+ })().catch((error) => {
31
+ logger.error(error);
32
+ process.exit(1);
33
+ });
34
+ //# sourceMappingURL=CliRun.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CliRun.js","sourceRoot":"","sources":["../../src/cli/CliRun.ts"],"names":[],"mappings":"AAAA,kBAAkB;AAElB,OAAO,EAAE,aAAa,EAAE,MAAM,sCAAsC,CAAC;AACrE,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAE/B,aAAa;AAEb,MAAM,MAAM,GAAG,IAAI,aAAa,EAAE,CAAC;AAEnC;;;GAGG;AACH,CAAC,KAAK,IAAI,EAAE;IACR,MAAM,WAAW,GAAG,CAAC,KAAY,EAAQ,EAAE;QACvC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;IAChC,CAAC,CAAC;IAEF,IAAI,GAAG,GAAe,IAAI,CAAC;IAC3B,IAAI,CAAC;QACD,GAAG,GAAG,IAAI,GAAG,EAAE,CAAC;IACpB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACb,WAAW,CAAC,KAAc,CAAC,CAAC;QAC5B,OAAO;IACX,CAAC;IAED,IAAI,CAAC;QACD,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC;IACrB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACb,WAAW,CAAC,KAAc,CAAC,CAAC;QAC5B,OAAO;IACX,CAAC;IAED,MAAM,GAAG,CAAC,GAAG,EAAE,CAAC;AACpB,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,KAAc,EAAE,EAAE;IAC1B,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACpB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACpB,CAAC,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=SeedCommand.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SeedCommand.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/SeedCommand.ts"],"names":[],"mappings":""}
@@ -0,0 +1,73 @@
1
+ // #region Imports
2
+ import { ProgramCommandBase } from '@breadstone-infrastructure/utilities';
3
+ import { SeedOrchestrator } from '../../orchestration/SeedOrchestrator.js';
4
+ import { DEFAULT_SEED_COMMAND_ARGS_CONFIG, SEED_COMMAND_ARGS } from './SeedCommandArgsConfig.js';
5
+ // #endregion
6
+ /**
7
+ * @description CLI command that executes the prisma seeder.
8
+ * @internal
9
+ */
10
+ export class SeedCommand extends ProgramCommandBase {
11
+ // #region Fields
12
+ _orchestrator;
13
+ // #endregion
14
+ // #region Ctor
15
+ constructor(config) {
16
+ super(config);
17
+ this._orchestrator = new SeedOrchestrator();
18
+ }
19
+ // #endregion
20
+ // #region Properties
21
+ get name() {
22
+ return 'seed';
23
+ }
24
+ get args() {
25
+ return SEED_COMMAND_ARGS;
26
+ }
27
+ // #endregion
28
+ // #region Methods
29
+ configure(config) {
30
+ return Object.assign(this.config, DEFAULT_SEED_COMMAND_ARGS_CONFIG, super.configure(config));
31
+ }
32
+ async execute() {
33
+ const rootPath = this.config.cwd || process.cwd();
34
+ const overrides = {};
35
+ if (this.config.drop) {
36
+ overrides['drop'] = true;
37
+ }
38
+ if (this.config.count !== DEFAULT_SEED_COMMAND_ARGS_CONFIG.count) {
39
+ overrides['count'] = this.config.count;
40
+ }
41
+ if (this.config.force) {
42
+ overrides['force'] = true;
43
+ }
44
+ if (this.config.dryRun) {
45
+ overrides['dryRun'] = true;
46
+ }
47
+ if (this.config.seed !== DEFAULT_SEED_COMMAND_ARGS_CONFIG.seed) {
48
+ overrides['seed'] = this.config.seed;
49
+ }
50
+ if (this.config.environment !== DEFAULT_SEED_COMMAND_ARGS_CONFIG.environment) {
51
+ overrides['environment'] = this.config.environment;
52
+ }
53
+ const hasOverrides = Object.keys(overrides).length > 0;
54
+ const result = hasOverrides
55
+ ? await this._orchestrator.executeWithOverrides(rootPath, overrides)
56
+ : await this._orchestrator.execute(rootPath, {
57
+ drop: this.config.drop,
58
+ count: this.config.count,
59
+ force: this.config.force,
60
+ dryRun: this.config.dryRun,
61
+ seed: this.config.seed,
62
+ environment: this.config.environment,
63
+ });
64
+ if (!result.success) {
65
+ return {
66
+ canceled: true,
67
+ error: Object.assign(new Error(`Seeding failed with ${result.errors.length} error(s).`), { code: 1 }),
68
+ };
69
+ }
70
+ return { canceled: false, result };
71
+ }
72
+ }
73
+ //# sourceMappingURL=SeedCommand.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SeedCommand.js","sourceRoot":"","sources":["../../../src/cli/commands/SeedCommand.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=SeedCommandArgsConfig.d.ts.map