@jrmc/adonis-attachment 6.0.0-alpha.1 → 6.0.0-alpha.2

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 (162) hide show
  1. package/build/commands/make/attachment_v5_migration.d.ts.map +1 -1
  2. package/build/commands/make/attachment_v5_migration.js +6 -3
  3. package/build/commands/make/attachment_v5_migration.js.map +1 -1
  4. package/build/commands/make/attachments_table.d.ts.map +1 -1
  5. package/build/commands/make/attachments_table.js +8 -2
  6. package/build/commands/make/attachments_table.js.map +1 -1
  7. package/build/index.d.ts +6 -6
  8. package/build/index.d.ts.map +1 -1
  9. package/build/index.js +5 -5
  10. package/build/index.js.map +1 -1
  11. package/build/providers/attachment_provider.d.ts.map +1 -1
  12. package/build/providers/attachment_provider.js +16 -0
  13. package/build/providers/attachment_provider.js.map +1 -1
  14. package/build/src/define_config.d.ts +13 -0
  15. package/build/src/define_config.d.ts.map +1 -1
  16. package/build/src/define_config.js +8 -0
  17. package/build/src/define_config.js.map +1 -1
  18. package/build/src/integrations/lucid/{attachment_column.d.ts → column/attachment_column.d.ts} +2 -2
  19. package/build/src/integrations/lucid/column/attachment_column.d.ts.map +1 -0
  20. package/build/src/integrations/lucid/{attachment_column.js → column/attachment_column.js} +2 -2
  21. package/build/src/integrations/lucid/column/attachment_column.js.map +1 -0
  22. package/build/src/integrations/lucid/index.d.ts +16 -13
  23. package/build/src/integrations/lucid/index.d.ts.map +1 -1
  24. package/build/src/integrations/lucid/index.js +16 -13
  25. package/build/src/integrations/lucid/index.js.map +1 -1
  26. package/build/src/integrations/lucid/migrations/legacy/legacy_attachment_migration_stub.d.ts +20 -0
  27. package/build/src/integrations/lucid/migrations/legacy/legacy_attachment_migration_stub.d.ts.map +1 -0
  28. package/build/src/integrations/lucid/migrations/legacy/legacy_attachment_migration_stub.js +18 -0
  29. package/build/src/integrations/lucid/migrations/legacy/legacy_attachment_migration_stub.js.map +1 -0
  30. package/build/src/integrations/lucid/{migrate_legacy_attachment.d.ts → migrations/legacy/migrate_legacy_attachment.d.ts} +19 -10
  31. package/build/src/integrations/lucid/migrations/legacy/migrate_legacy_attachment.d.ts.map +1 -0
  32. package/build/src/integrations/lucid/{migrate_legacy_attachment.js → migrations/legacy/migrate_legacy_attachment.js} +28 -23
  33. package/build/src/integrations/lucid/migrations/legacy/migrate_legacy_attachment.js.map +1 -0
  34. package/build/src/integrations/lucid/{migrate_legacy_attachment_records.d.ts → migrations/legacy/migrate_legacy_attachment_records.d.ts} +3 -3
  35. package/build/src/integrations/lucid/migrations/legacy/migrate_legacy_attachment_records.d.ts.map +1 -0
  36. package/build/src/integrations/lucid/{migrate_legacy_attachment_records.js → migrations/legacy/migrate_legacy_attachment_records.js} +7 -6
  37. package/build/src/integrations/lucid/migrations/legacy/migrate_legacy_attachment_records.js.map +1 -0
  38. package/build/src/integrations/lucid/models/attachment_link_model.d.ts +30 -0
  39. package/build/src/integrations/lucid/models/attachment_link_model.d.ts.map +1 -0
  40. package/build/src/integrations/lucid/models/attachment_link_model.js +58 -0
  41. package/build/src/integrations/lucid/models/attachment_link_model.js.map +1 -0
  42. package/build/src/integrations/lucid/{attachment_model.d.ts → models/attachment_model.d.ts} +2 -7
  43. package/build/src/integrations/lucid/models/attachment_model.d.ts.map +1 -0
  44. package/build/src/integrations/lucid/{attachment_model.js → models/attachment_model.js} +1 -16
  45. package/build/src/integrations/lucid/models/attachment_model.js.map +1 -0
  46. package/build/src/integrations/lucid/{lucid_attachment_lifecycle_service.d.ts → persistence/lucid_attachment_lifecycle_service.d.ts} +17 -13
  47. package/build/src/integrations/lucid/persistence/lucid_attachment_lifecycle_service.d.ts.map +1 -0
  48. package/build/src/integrations/lucid/{lucid_attachment_lifecycle_service.js → persistence/lucid_attachment_lifecycle_service.js} +27 -20
  49. package/build/src/integrations/lucid/persistence/lucid_attachment_lifecycle_service.js.map +1 -0
  50. package/build/src/integrations/lucid/{lucid_attachment_repository.d.ts → persistence/lucid_attachment_repository.d.ts} +3 -3
  51. package/build/src/integrations/lucid/persistence/lucid_attachment_repository.d.ts.map +1 -0
  52. package/build/src/integrations/lucid/{lucid_attachment_repository.js → persistence/lucid_attachment_repository.js} +1 -1
  53. package/build/src/integrations/lucid/persistence/lucid_attachment_repository.js.map +1 -0
  54. package/build/src/integrations/lucid/persistence/lucid_attachment_store.d.ts +48 -0
  55. package/build/src/integrations/lucid/persistence/lucid_attachment_store.d.ts.map +1 -0
  56. package/build/src/integrations/lucid/persistence/lucid_attachment_store.js +224 -0
  57. package/build/src/integrations/lucid/persistence/lucid_attachment_store.js.map +1 -0
  58. package/build/src/integrations/lucid/{lucid_variant_generation_service.d.ts → persistence/lucid_variant_generation_service.d.ts} +3 -3
  59. package/build/src/integrations/lucid/persistence/lucid_variant_generation_service.d.ts.map +1 -0
  60. package/build/src/integrations/lucid/persistence/lucid_variant_generation_service.js.map +1 -0
  61. package/build/src/integrations/lucid/relations/attachment_owner.d.ts.map +1 -0
  62. package/build/src/integrations/lucid/relations/attachment_owner.js.map +1 -0
  63. package/build/src/integrations/lucid/{attachment_relation.d.ts → relations/attachment_relation.d.ts} +25 -14
  64. package/build/src/integrations/lucid/relations/attachment_relation.d.ts.map +1 -0
  65. package/build/src/integrations/lucid/relations/attachment_relation.js +266 -0
  66. package/build/src/integrations/lucid/relations/attachment_relation.js.map +1 -0
  67. package/build/src/integrations/lucid/schema/attachment_schema_service.d.ts +24 -0
  68. package/build/src/integrations/lucid/schema/attachment_schema_service.d.ts.map +1 -0
  69. package/build/src/integrations/lucid/schema/attachment_schema_service.js +68 -0
  70. package/build/src/integrations/lucid/schema/attachment_schema_service.js.map +1 -0
  71. package/build/src/integrations/lucid/schema/attachment_table_names.d.ts +15 -0
  72. package/build/src/integrations/lucid/schema/attachment_table_names.d.ts.map +1 -0
  73. package/build/src/integrations/lucid/schema/attachment_table_names.js +20 -0
  74. package/build/src/integrations/lucid/schema/attachment_table_names.js.map +1 -0
  75. package/build/src/integrations/lucid/schema/attachments_table_stub.d.ts.map +1 -0
  76. package/build/src/integrations/lucid/{attachments_table_stub.js → schema/attachments_table_stub.js} +2 -4
  77. package/build/src/integrations/lucid/schema/attachments_table_stub.js.map +1 -0
  78. package/build/src/integrations/lucid/schema/configure_lucid_attachment_tables.d.ts +12 -0
  79. package/build/src/integrations/lucid/schema/configure_lucid_attachment_tables.d.ts.map +1 -0
  80. package/build/src/integrations/lucid/schema/configure_lucid_attachment_tables.js +19 -0
  81. package/build/src/integrations/lucid/schema/configure_lucid_attachment_tables.js.map +1 -0
  82. package/build/stubs/migrations/attachments_table.stub +7 -25
  83. package/build/{src/integrations/lucid/render_legacy_attachment_migration_script.js → stubs/migrations/legacy_attachment_migration.stub} +13 -15
  84. package/build/tests/attachment_provider.spec.js +30 -1
  85. package/build/tests/attachment_provider.spec.js.map +1 -1
  86. package/build/tests/{create_legacy_attachment_migration_script.spec.d.ts → attachment_schema_service.spec.d.ts} +1 -1
  87. package/build/tests/attachment_schema_service.spec.d.ts.map +1 -0
  88. package/build/tests/attachment_schema_service.spec.js +38 -0
  89. package/build/tests/attachment_schema_service.spec.js.map +1 -0
  90. package/build/tests/attachment_table_names.spec.d.ts +8 -0
  91. package/build/tests/attachment_table_names.spec.d.ts.map +1 -0
  92. package/build/tests/attachment_table_names.spec.js +36 -0
  93. package/build/tests/attachment_table_names.spec.js.map +1 -0
  94. package/build/tests/attachments_table_stub.spec.js +41 -6
  95. package/build/tests/attachments_table_stub.spec.js.map +1 -1
  96. package/build/tests/define_config.spec.js +22 -0
  97. package/build/tests/define_config.spec.js.map +1 -1
  98. package/build/tests/helpers/lucid_test_database.d.ts.map +1 -1
  99. package/build/tests/helpers/lucid_test_database.js +16 -7
  100. package/build/tests/helpers/lucid_test_database.js.map +1 -1
  101. package/build/tests/legacy_attachment_migration_stub.spec.d.ts +8 -0
  102. package/build/tests/legacy_attachment_migration_stub.spec.d.ts.map +1 -0
  103. package/build/tests/legacy_attachment_migration_stub.spec.js +57 -0
  104. package/build/tests/legacy_attachment_migration_stub.spec.js.map +1 -0
  105. package/build/tests/lucid_attachment_collection_store.spec.js +5 -4
  106. package/build/tests/lucid_attachment_collection_store.spec.js.map +1 -1
  107. package/build/tests/lucid_attachment_lifecycle_service.spec.js +96 -262
  108. package/build/tests/lucid_attachment_lifecycle_service.spec.js.map +1 -1
  109. package/build/tests/lucid_attachment_relation.spec.js +103 -24
  110. package/build/tests/lucid_attachment_relation.spec.js.map +1 -1
  111. package/build/tests/lucid_attachment_repository.spec.js +1 -1
  112. package/build/tests/lucid_attachment_repository.spec.js.map +1 -1
  113. package/build/tests/lucid_attachment_store.spec.js +24 -52
  114. package/build/tests/lucid_attachment_store.spec.js.map +1 -1
  115. package/build/tests/lucid_sqlite_integration.spec.js +23 -18
  116. package/build/tests/lucid_sqlite_integration.spec.js.map +1 -1
  117. package/build/tests/lucid_variant_generation_service.spec.js +1 -1
  118. package/build/tests/lucid_variant_generation_service.spec.js.map +1 -1
  119. package/build/tests/migrate_legacy_attachment.spec.js +48 -43
  120. package/build/tests/migrate_legacy_attachment.spec.js.map +1 -1
  121. package/build/tests/migrate_legacy_attachment_records.spec.js +4 -3
  122. package/build/tests/migrate_legacy_attachment_records.spec.js.map +1 -1
  123. package/package.json +1 -1
  124. package/build/src/integrations/lucid/attachment_column.d.ts.map +0 -1
  125. package/build/src/integrations/lucid/attachment_column.js.map +0 -1
  126. package/build/src/integrations/lucid/attachment_model.d.ts.map +0 -1
  127. package/build/src/integrations/lucid/attachment_model.js.map +0 -1
  128. package/build/src/integrations/lucid/attachment_owner.d.ts.map +0 -1
  129. package/build/src/integrations/lucid/attachment_owner.js.map +0 -1
  130. package/build/src/integrations/lucid/attachment_relation.d.ts.map +0 -1
  131. package/build/src/integrations/lucid/attachment_relation.js +0 -163
  132. package/build/src/integrations/lucid/attachment_relation.js.map +0 -1
  133. package/build/src/integrations/lucid/attachments_table_stub.d.ts.map +0 -1
  134. package/build/src/integrations/lucid/attachments_table_stub.js.map +0 -1
  135. package/build/src/integrations/lucid/create_legacy_attachment_migration_script.d.ts +0 -13
  136. package/build/src/integrations/lucid/create_legacy_attachment_migration_script.d.ts.map +0 -1
  137. package/build/src/integrations/lucid/create_legacy_attachment_migration_script.js +0 -20
  138. package/build/src/integrations/lucid/create_legacy_attachment_migration_script.js.map +0 -1
  139. package/build/src/integrations/lucid/lucid_attachment_lifecycle_service.d.ts.map +0 -1
  140. package/build/src/integrations/lucid/lucid_attachment_lifecycle_service.js.map +0 -1
  141. package/build/src/integrations/lucid/lucid_attachment_repository.d.ts.map +0 -1
  142. package/build/src/integrations/lucid/lucid_attachment_repository.js.map +0 -1
  143. package/build/src/integrations/lucid/lucid_attachment_store.d.ts +0 -36
  144. package/build/src/integrations/lucid/lucid_attachment_store.d.ts.map +0 -1
  145. package/build/src/integrations/lucid/lucid_attachment_store.js +0 -179
  146. package/build/src/integrations/lucid/lucid_attachment_store.js.map +0 -1
  147. package/build/src/integrations/lucid/lucid_variant_generation_service.d.ts.map +0 -1
  148. package/build/src/integrations/lucid/lucid_variant_generation_service.js.map +0 -1
  149. package/build/src/integrations/lucid/migrate_legacy_attachment.d.ts.map +0 -1
  150. package/build/src/integrations/lucid/migrate_legacy_attachment.js.map +0 -1
  151. package/build/src/integrations/lucid/migrate_legacy_attachment_records.d.ts.map +0 -1
  152. package/build/src/integrations/lucid/migrate_legacy_attachment_records.js.map +0 -1
  153. package/build/src/integrations/lucid/render_legacy_attachment_migration_script.d.ts +0 -11
  154. package/build/src/integrations/lucid/render_legacy_attachment_migration_script.d.ts.map +0 -1
  155. package/build/src/integrations/lucid/render_legacy_attachment_migration_script.js.map +0 -1
  156. package/build/tests/create_legacy_attachment_migration_script.spec.d.ts.map +0 -1
  157. package/build/tests/create_legacy_attachment_migration_script.spec.js +0 -31
  158. package/build/tests/create_legacy_attachment_migration_script.spec.js.map +0 -1
  159. /package/build/src/integrations/lucid/{lucid_variant_generation_service.js → persistence/lucid_variant_generation_service.js} +0 -0
  160. /package/build/src/integrations/lucid/{attachment_owner.d.ts → relations/attachment_owner.d.ts} +0 -0
  161. /package/build/src/integrations/lucid/{attachment_owner.js → relations/attachment_owner.js} +0 -0
  162. /package/build/src/integrations/lucid/{attachments_table_stub.d.ts → schema/attachments_table_stub.d.ts} +0 -0
@@ -0,0 +1,68 @@
1
+ /**
2
+ * @jrmc/adonis-attachment
3
+ *
4
+ * @license MIT
5
+ * @copyright Jeremy Chaufourier <jeremy@chaufourier.fr>
6
+ */
7
+ import { resolveAttachmentTableNames } from './attachment_table_names.js';
8
+ /**
9
+ * Owns the versioned database schema used by the Lucid attachment integration.
10
+ */
11
+ export class AttachmentSchemaService {
12
+ #connection;
13
+ #tableName;
14
+ #linksTableName;
15
+ constructor(connection, options = {}) {
16
+ this.#connection = connection;
17
+ const tables = resolveAttachmentTableNames(options.tableName);
18
+ this.#tableName = tables.tableName;
19
+ this.#linksTableName = tables.linksTableName;
20
+ }
21
+ createTables() {
22
+ return this.createBlobsTable().then(() => this.createLinksTable());
23
+ }
24
+ createBlobsTable() {
25
+ return this.#connection.schema.createTable(this.#tableName, (table) => {
26
+ table.uuid('id').primary();
27
+ table.uuid('parent_id').nullable().references('id').inTable(this.#tableName).onDelete('CASCADE');
28
+ table.string('variant_key').nullable();
29
+ table.string('disk').notNullable();
30
+ table.string('path').notNullable();
31
+ table.string('name').notNullable();
32
+ table.string('original_name').notNullable();
33
+ table.string('mime_type').notNullable();
34
+ table.string('extname').notNullable();
35
+ table.bigInteger('size').unsigned().notNullable();
36
+ table.json('metadata').nullable();
37
+ table.timestamp('created_at').notNullable();
38
+ table.timestamp('updated_at').notNullable();
39
+ table.index(['parent_id']);
40
+ table.unique(['parent_id', 'variant_key']);
41
+ });
42
+ }
43
+ createLinksTable() {
44
+ return this.#connection.schema.createTable(this.#linksTableName, (table) => {
45
+ table.uuid('id').primary();
46
+ table.string('attachable_type').notNullable();
47
+ table.string('attachable_id').notNullable();
48
+ table.string('field').notNullable();
49
+ table.string('owner_key', 64).nullable().unique();
50
+ table.integer('position').unsigned().nullable();
51
+ table.uuid('attachment_id').notNullable().references('id').inTable(this.#tableName).onDelete('CASCADE');
52
+ table.timestamp('created_at').notNullable();
53
+ table.timestamp('updated_at').notNullable();
54
+ table.index(['attachable_type', 'attachable_id', 'field']);
55
+ table.index(['attachment_id']);
56
+ });
57
+ }
58
+ dropTables() {
59
+ return this.dropLinksTable().then(() => this.dropBlobsTable());
60
+ }
61
+ dropBlobsTable() {
62
+ return this.#connection.schema.dropTableIfExists(this.#tableName);
63
+ }
64
+ dropLinksTable() {
65
+ return this.#connection.schema.dropTableIfExists(this.#linksTableName);
66
+ }
67
+ }
68
+ //# sourceMappingURL=attachment_schema_service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"attachment_schema_service.js","sourceRoot":"","sources":["../../../../../src/integrations/lucid/schema/attachment_schema_service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * @jrmc/adonis-attachment
3
+ *
4
+ * @license MIT
5
+ * @copyright Jeremy Chaufourier <jeremy@chaufourier.fr>
6
+ */
7
+ export type AttachmentTableNames = {
8
+ tableName: string;
9
+ linksTableName: string;
10
+ };
11
+ /**
12
+ * Resolves the blob and polymorphic-link table names from one base table name.
13
+ */
14
+ export declare function resolveAttachmentTableNames(tableName?: string): AttachmentTableNames;
15
+ //# sourceMappingURL=attachment_table_names.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"attachment_table_names.d.ts","sourceRoot":"","sources":["../../../../../src/integrations/lucid/schema/attachment_table_names.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,MAAM,MAAM,oBAAoB,GAAG;IACjC,SAAS,EAAE,MAAM,CAAA;IACjB,cAAc,EAAE,MAAM,CAAA;CACvB,CAAA;AAED;;GAEG;AACH,wBAAgB,2BAA2B,CAAC,SAAS,SAAgB,GAAG,oBAAoB,CAS3F"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * @jrmc/adonis-attachment
3
+ *
4
+ * @license MIT
5
+ * @copyright Jeremy Chaufourier <jeremy@chaufourier.fr>
6
+ */
7
+ import string from '@adonisjs/core/helpers/string';
8
+ /**
9
+ * Resolves the blob and polymorphic-link table names from one base table name.
10
+ */
11
+ export function resolveAttachmentTableNames(tableName = 'attachments') {
12
+ if (!/^[a-z][a-z0-9_]*$/.test(tableName)) {
13
+ throw new Error('Lucid attachment table names must be snake_case identifiers');
14
+ }
15
+ return {
16
+ tableName,
17
+ linksTableName: `${string.singular(tableName)}_links`,
18
+ };
19
+ }
20
+ //# sourceMappingURL=attachment_table_names.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"attachment_table_names.js","sourceRoot":"","sources":["../../../../../src/integrations/lucid/schema/attachment_table_names.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,MAAM,MAAM,+BAA+B,CAAA;AAOlD;;GAEG;AACH,MAAM,UAAU,2BAA2B,CAAC,SAAS,GAAG,aAAa;IACnE,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;QACzC,MAAM,IAAI,KAAK,CAAC,6DAA6D,CAAC,CAAA;IAChF,CAAC;IAED,OAAO;QACL,SAAS;QACT,cAAc,EAAE,GAAG,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ;KACtD,CAAA;AACH,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"attachments_table_stub.d.ts","sourceRoot":"","sources":["../../../../../src/integrations/lucid/schema/attachments_table_stub.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,MAAM,MAAM,2BAA2B,GAAG;IACxC,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB,CAAA;AAED,MAAM,MAAM,yBAAyB,GAAG;IACtC,WAAW,EAAE,MAAM,CAAA;IACnB,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,MAAM,CAAA;CAClB,CAAA;AAED;;GAEG;AACH,wBAAgB,+BAA+B,CAC7C,OAAO,EAAE,2BAA2B,GACnC,yBAAyB,CAU3B"}
@@ -5,14 +5,12 @@
5
5
  * @copyright Jeremy Chaufourier <jeremy@chaufourier.fr>
6
6
  */
7
7
  import { join } from 'node:path';
8
+ import { resolveAttachmentTableNames } from './attachment_table_names.js';
8
9
  /**
9
10
  * Builds the state consumed by the attachments-table migration stub.
10
11
  */
11
12
  export function createAttachmentsTableStubState(options) {
12
- const tableName = options.tableName ?? 'attachments';
13
- if (!/^[a-z][a-z0-9_]*$/.test(tableName)) {
14
- throw new Error('Lucid attachment table names must be snake_case identifiers');
15
- }
13
+ const { tableName } = resolveAttachmentTableNames(options.tableName);
16
14
  const timestamp = options.timestamp ?? Date.now();
17
15
  return {
18
16
  destination: join(options.directory, `${timestamp}_create_${tableName}_table.ts`),
@@ -0,0 +1 @@
1
+ {"version":3,"file":"attachments_table_stub.js","sourceRoot":"","sources":["../../../../../src/integrations/lucid/schema/attachments_table_stub.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAChC,OAAO,EAAE,2BAA2B,EAAE,MAAM,6BAA6B,CAAA;AAczE;;GAEG;AACH,MAAM,UAAU,+BAA+B,CAC7C,OAAoC;IAEpC,MAAM,EAAE,SAAS,EAAE,GAAG,2BAA2B,CAAC,OAAO,CAAC,SAAS,CAAC,CAAA;IAEpE,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,IAAI,CAAC,GAAG,EAAE,CAAA;IAEjD,OAAO;QACL,WAAW,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,GAAG,SAAS,WAAW,SAAS,WAAW,CAAC;QACjF,SAAS;QACT,SAAS,EAAE,YAAY,CAAC,SAAS,CAAC;KACnC,CAAA;AACH,CAAC;AAED,SAAS,YAAY,CAAC,KAAa;IACjC,OAAO,KAAK,CAAC,OAAO,CAAC,kBAAkB,EAAE,CAAC,CAAC,EAAE,UAAkB,EAAE,SAAiB,EAAE,EAAE,CACpF,SAAS,CAAC,WAAW,EAAE,CACxB,CAAA;AACH,CAAC"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * @jrmc/adonis-attachment
3
+ *
4
+ * @license MIT
5
+ * @copyright Jeremy Chaufourier <jeremy@chaufourier.fr>
6
+ */
7
+ import { type AttachmentTableNames } from './attachment_table_names.js';
8
+ /**
9
+ * Applies an application's configured attachment table names to the default Lucid models.
10
+ */
11
+ export declare function configureLucidAttachmentTables(tableName?: string): AttachmentTableNames;
12
+ //# sourceMappingURL=configure_lucid_attachment_tables.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"configure_lucid_attachment_tables.d.ts","sourceRoot":"","sources":["../../../../../src/integrations/lucid/schema/configure_lucid_attachment_tables.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,EAA+B,KAAK,oBAAoB,EAAE,MAAM,6BAA6B,CAAA;AAEpG;;GAEG;AACH,wBAAgB,8BAA8B,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,oBAAoB,CAOvF"}
@@ -0,0 +1,19 @@
1
+ /**
2
+ * @jrmc/adonis-attachment
3
+ *
4
+ * @license MIT
5
+ * @copyright Jeremy Chaufourier <jeremy@chaufourier.fr>
6
+ */
7
+ import { AttachmentLinkModel } from '../models/attachment_link_model.js';
8
+ import { AttachmentModel } from '../models/attachment_model.js';
9
+ import { resolveAttachmentTableNames } from './attachment_table_names.js';
10
+ /**
11
+ * Applies an application's configured attachment table names to the default Lucid models.
12
+ */
13
+ export function configureLucidAttachmentTables(tableName) {
14
+ const tables = resolveAttachmentTableNames(tableName);
15
+ AttachmentModel.table = tables.tableName;
16
+ AttachmentLinkModel.table = tables.linksTableName;
17
+ return tables;
18
+ }
19
+ //# sourceMappingURL=configure_lucid_attachment_tables.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"configure_lucid_attachment_tables.js","sourceRoot":"","sources":["../../../../../src/integrations/lucid/schema/configure_lucid_attachment_tables.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,mBAAmB,EAAE,MAAM,oCAAoC,CAAA;AACxE,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAA;AAC/D,OAAO,EAAE,2BAA2B,EAA6B,MAAM,6BAA6B,CAAA;AAEpG;;GAEG;AACH,MAAM,UAAU,8BAA8B,CAAC,SAAkB;IAC/D,MAAM,MAAM,GAAG,2BAA2B,CAAC,SAAS,CAAC,CAAA;IAErD,eAAe,CAAC,KAAK,GAAG,MAAM,CAAC,SAAS,CAAA;IACxC,mBAAmB,CAAC,KAAK,GAAG,MAAM,CAAC,cAAc,CAAA;IAEjD,OAAO,MAAM,CAAA;AACf,CAAC"}
@@ -2,38 +2,20 @@
2
2
  exports({ to: destination })
3
3
  }}}
4
4
  import { BaseSchema } from '@adonisjs/lucid/schema'
5
+ import { AttachmentSchemaService } from '@jrmc/adonis-attachment/lucid'
5
6
 
6
7
  export default class Create{{ className }}Table extends BaseSchema {
7
8
  protected tableName = '{{ tableName }}'
8
9
 
9
10
  async up() {
10
- this.schema.createTable(this.tableName, (table) => {
11
- table.uuid('id').primary()
12
- table.string('attachable_type').notNullable()
13
- table.string('attachable_id').notNullable()
14
- table.string('field').notNullable()
15
- table.string('owner_key', 64).nullable().unique()
16
- table.integer('position').unsigned().nullable()
17
- table.uuid('parent_id').nullable().references('id').inTable(this.tableName).onDelete('CASCADE')
18
- table.string('variant_key').nullable()
19
- table.string('disk').notNullable()
20
- table.string('path').notNullable()
21
- table.string('name').notNullable()
22
- table.string('original_name').notNullable()
23
- table.string('mime_type').notNullable()
24
- table.string('extname').notNullable()
25
- table.bigInteger('size').unsigned().notNullable()
26
- table.json('metadata').nullable()
27
- table.timestamp('created_at').notNullable()
28
- table.timestamp('updated_at').notNullable()
29
-
30
- table.index(['attachable_type', 'attachable_id', 'field'])
31
- table.index(['parent_id'])
32
- table.unique(['parent_id', 'variant_key'])
33
- })
11
+ await new AttachmentSchemaService(this.db.getWriteClient(), {
12
+ tableName: this.tableName,
13
+ }).createTables()
34
14
  }
35
15
 
36
16
  async down() {
37
- this.schema.dropTable(this.tableName)
17
+ await new AttachmentSchemaService(this.db.getWriteClient(), {
18
+ tableName: this.tableName,
19
+ }).dropTables()
38
20
  }
39
21
  }
@@ -1,15 +1,11 @@
1
- /**
2
- * @jrmc/adonis-attachment
3
- *
4
- * @license MIT
5
- * @copyright Jeremy Chaufourier <jeremy@chaufourier.fr>
6
- */
7
- export function renderLegacyAttachmentMigrationScript(options = {}) {
8
- const defaultDisk = options.defaultDisk ?? 'public';
9
- return `import { randomUUID } from 'node:crypto'
1
+ {{{
2
+ exports({ to: destination })
3
+ }}}
4
+ import { randomUUID } from 'node:crypto'
10
5
 
11
6
  import {
12
7
  AttachmentModel,
8
+ AttachmentLinkModel,
13
9
  migrateLegacyAttachmentRecords,
14
10
  type LegacyAttachmentMigrationRecord,
15
11
  } from '@jrmc/adonis-attachment/lucid'
@@ -17,15 +13,20 @@ import {
17
13
  async function main(): Promise<void> {
18
14
  const result = await migrateLegacyAttachmentRecords({
19
15
  records: legacyAttachmentRecords(),
20
- defaultDisk: '${defaultDisk}',
16
+ defaultDisk: '{{ defaultDisk }}',
21
17
  createId: randomUUID,
22
18
  writer: {
23
- insert: (rows) => AttachmentModel.createMany(rows),
19
+ async insert(rows) {
20
+ await AttachmentModel.transaction(async (trx) => {
21
+ await AttachmentModel.createMany(rows.blobs, { client: trx })
22
+ await AttachmentLinkModel.createMany(rows.links, { client: trx })
23
+ })
24
+ },
24
25
  },
25
26
  })
26
27
 
27
28
  console.info(
28
- \`Migrated \${result.attachments} attachments and \${result.variants} variants; skipped \${result.skipped} empty values.\`
29
+ `Migrated ${result.attachments} attachments and ${result.variants} variants; skipped ${result.skipped} empty values.`
29
30
  )
30
31
  }
31
32
 
@@ -36,6 +37,3 @@ async function* legacyAttachmentRecords(): AsyncGenerator<LegacyAttachmentMigrat
36
37
  }
37
38
 
38
39
  void main()
39
- `;
40
- }
41
- //# sourceMappingURL=render_legacy_attachment_migration_script.js.map
@@ -7,6 +7,9 @@
7
7
  import { test } from '@japa/runner';
8
8
  import { defineConfig } from '../index.js';
9
9
  import AttachmentProvider from '../providers/attachment_provider.js';
10
+ import { AttachmentLinkModel } from '../src/integrations/lucid/models/attachment_link_model.js';
11
+ import { AttachmentModel } from '../src/integrations/lucid/models/attachment_model.js';
12
+ import { configureLucidAttachmentTables } from '../src/integrations/lucid/schema/configure_lucid_attachment_tables.js';
10
13
  const storage = {
11
14
  async write() { },
12
15
  async read() {
@@ -19,7 +22,10 @@ const repository = {
19
22
  return null;
20
23
  },
21
24
  };
22
- test.group('AttachmentProvider', () => {
25
+ test.group('AttachmentProvider', (group) => {
26
+ group.each.teardown(() => {
27
+ configureLucidAttachmentTables();
28
+ });
23
29
  test('registers the configured read route when persistence is available', async ({ assert }) => {
24
30
  const routes = [];
25
31
  const provider = new AttachmentProvider({
@@ -67,5 +73,28 @@ test.group('AttachmentProvider', () => {
67
73
  await provider.boot();
68
74
  }
69
75
  });
76
+ test('applies configured Lucid table names during application boot', async ({ assert }) => {
77
+ const provider = new AttachmentProvider({
78
+ config: {
79
+ get() {
80
+ return defineConfig({
81
+ defaultDisk: 'public',
82
+ storage,
83
+ integrations: {
84
+ lucid: { tableName: 'media_attachments' },
85
+ },
86
+ });
87
+ },
88
+ },
89
+ container: {
90
+ async make() {
91
+ assert.fail('The router must not be resolved');
92
+ },
93
+ },
94
+ });
95
+ await provider.boot();
96
+ assert.equal(AttachmentModel.table, 'media_attachments');
97
+ assert.equal(AttachmentLinkModel.table, 'media_attachment_links');
98
+ });
70
99
  });
71
100
  //# sourceMappingURL=attachment_provider.spec.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"attachment_provider.spec.js","sourceRoot":"","sources":["../../tests/attachment_provider.spec.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAA;AAEnC,OAAO,EAAE,YAAY,EAAqD,MAAM,aAAa,CAAA;AAC7F,OAAO,kBAAkB,MAAM,qCAAqC,CAAA;AAEpE,MAAM,OAAO,GAAsB;IACjC,KAAK,CAAC,KAAK,KAAI,CAAC;IAChB,KAAK,CAAC,IAAI;QACR,OAAO,IAAI,UAAU,EAAE,CAAA;IACzB,CAAC;IACD,KAAK,CAAC,MAAM,KAAI,CAAC;CAClB,CAAA;AAED,MAAM,UAAU,GAAyB;IACvC,KAAK,CAAC,QAAQ;QACZ,OAAO,IAAI,CAAA;IACb,CAAC;CACF,CAAA;AAED,IAAI,CAAC,KAAK,CAAC,oBAAoB,EAAE,GAAG,EAAE;IACpC,IAAI,CAAC,mEAAmE,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE;QAC7F,MAAM,MAAM,GAAa,EAAE,CAAA;QAC3B,MAAM,QAAQ,GAAG,IAAI,kBAAkB,CAAC;YACtC,MAAM,EAAE;gBACN,GAAG;oBACD,OAAO,YAAY,CAAC;wBAClB,WAAW,EAAE,QAAQ;wBACrB,OAAO;wBACP,UAAU;wBACV,KAAK,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE;qBAC5B,CAAC,CAAA;gBACJ,CAAC;aACF;YACD,SAAS,EAAE;gBACT,KAAK,CAAC,IAAI,CAAC,OAAe;oBACxB,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAA;oBAC/B,OAAO;wBACL,GAAG,CAAC,IAAY;4BACd,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;wBACnB,CAAC;qBACF,CAAA;gBACH,CAAC;aACF;SACO,CAAC,CAAA;QAEX,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAA;QAErB,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,YAAY,CAAC,CAAC,CAAA;IAC1C,CAAC,CAAC,CAAA;IAEF,IAAI,CAAC,oEAAoE,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE;QAC9F,KAAK,MAAM,MAAM,IAAI;YACnB,YAAY,CAAC,EAAE,WAAW,EAAE,QAAQ,EAAE,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;YAC1E,YAAY,CAAC,EAAE,WAAW,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC;SACjD,EAAE,CAAC;YACF,MAAM,QAAQ,GAAG,IAAI,kBAAkB,CAAC;gBACtC,MAAM,EAAE;oBACN,GAAG;wBACD,OAAO,MAAM,CAAA;oBACf,CAAC;iBACF;gBACD,SAAS,EAAE;oBACT,KAAK,CAAC,IAAI;wBACR,MAAM,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAA;oBAChD,CAAC;iBACF;aACO,CAAC,CAAA;YAEX,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAA;QACvB,CAAC;IACH,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"}
1
+ {"version":3,"file":"attachment_provider.spec.js","sourceRoot":"","sources":["../../tests/attachment_provider.spec.ts"],"names":[],"mappings":"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"}
@@ -5,4 +5,4 @@
5
5
  * @copyright Jeremy Chaufourier <jeremy@chaufourier.fr>
6
6
  */
7
7
  export {};
8
- //# sourceMappingURL=create_legacy_attachment_migration_script.spec.d.ts.map
8
+ //# sourceMappingURL=attachment_schema_service.spec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"attachment_schema_service.spec.d.ts","sourceRoot":"","sources":["../../tests/attachment_schema_service.spec.ts"],"names":[],"mappings":"AAAA;;;;;GAKG"}
@@ -0,0 +1,38 @@
1
+ /**
2
+ * @jrmc/adonis-attachment
3
+ *
4
+ * @license MIT
5
+ * @copyright Jeremy Chaufourier <jeremy@chaufourier.fr>
6
+ */
7
+ import { test } from '@japa/runner';
8
+ import { AttachmentSchemaService } from '../src/integrations/lucid/schema/attachment_schema_service.js';
9
+ import { createLucidTestDatabase } from './helpers/lucid_test_database.js';
10
+ test.group('AttachmentSchemaService', (group) => {
11
+ let database;
12
+ group.setup(async () => {
13
+ database = await createLucidTestDatabase();
14
+ });
15
+ group.teardown(async () => {
16
+ await database.manager.closeAll();
17
+ });
18
+ test('creates and drops both tables using a custom base table name', async ({ assert }) => {
19
+ const service = new AttachmentSchemaService(database.connection().getWriteClient(), {
20
+ tableName: 'media_attachments',
21
+ });
22
+ await service.createTables();
23
+ assert.isTrue(await database.connection().schema.hasTable('media_attachments'));
24
+ assert.isTrue(await database.connection().schema.hasTable('media_attachment_links'));
25
+ await service.dropTables();
26
+ assert.isFalse(await database.connection().schema.hasTable('media_attachments'));
27
+ assert.isFalse(await database.connection().schema.hasTable('media_attachment_links'));
28
+ });
29
+ test('uses the AttachmentLinkModel default table name', async ({ assert }) => {
30
+ const service = new AttachmentSchemaService(database.connection().getWriteClient());
31
+ await service.dropTables();
32
+ await service.createTables();
33
+ assert.isTrue(await database.connection().schema.hasTable('attachments'));
34
+ assert.isTrue(await database.connection().schema.hasTable('attachment_links'));
35
+ assert.isFalse(await database.connection().schema.hasTable('attachments_links'));
36
+ });
37
+ });
38
+ //# sourceMappingURL=attachment_schema_service.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"attachment_schema_service.spec.js","sourceRoot":"","sources":["../../tests/attachment_schema_service.spec.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAA;AAEnC,OAAO,EAAE,uBAAuB,EAAE,MAAM,+DAA+D,CAAA;AACvG,OAAO,EAAE,uBAAuB,EAAE,MAAM,kCAAkC,CAAA;AAE1E,IAAI,CAAC,KAAK,CAAC,yBAAyB,EAAE,CAAC,KAAK,EAAE,EAAE;IAC9C,IAAI,QAA6D,CAAA;IAEjE,KAAK,CAAC,KAAK,CAAC,KAAK,IAAI,EAAE;QACrB,QAAQ,GAAG,MAAM,uBAAuB,EAAE,CAAA;IAC5C,CAAC,CAAC,CAAA;IAEF,KAAK,CAAC,QAAQ,CAAC,KAAK,IAAI,EAAE;QACxB,MAAM,QAAQ,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAA;IACnC,CAAC,CAAC,CAAA;IAEF,IAAI,CAAC,8DAA8D,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE;QACxF,MAAM,OAAO,GAAG,IAAI,uBAAuB,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC,cAAc,EAAE,EAAE;YAClF,SAAS,EAAE,mBAAmB;SAC/B,CAAC,CAAA;QAEF,MAAM,OAAO,CAAC,YAAY,EAAE,CAAA;QAE5B,MAAM,CAAC,MAAM,CAAC,MAAM,QAAQ,CAAC,UAAU,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC,CAAA;QAC/E,MAAM,CAAC,MAAM,CAAC,MAAM,QAAQ,CAAC,UAAU,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,wBAAwB,CAAC,CAAC,CAAA;QAEpF,MAAM,OAAO,CAAC,UAAU,EAAE,CAAA;QAE1B,MAAM,CAAC,OAAO,CAAC,MAAM,QAAQ,CAAC,UAAU,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC,CAAA;QAChF,MAAM,CAAC,OAAO,CAAC,MAAM,QAAQ,CAAC,UAAU,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,wBAAwB,CAAC,CAAC,CAAA;IACvF,CAAC,CAAC,CAAA;IAEF,IAAI,CAAC,iDAAiD,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE;QAC3E,MAAM,OAAO,GAAG,IAAI,uBAAuB,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC,cAAc,EAAE,CAAC,CAAA;QAEnF,MAAM,OAAO,CAAC,UAAU,EAAE,CAAA;QAC1B,MAAM,OAAO,CAAC,YAAY,EAAE,CAAA;QAE5B,MAAM,CAAC,MAAM,CAAC,MAAM,QAAQ,CAAC,UAAU,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAA;QACzE,MAAM,CAAC,MAAM,CAAC,MAAM,QAAQ,CAAC,UAAU,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC,CAAA;QAC9E,MAAM,CAAC,OAAO,CAAC,MAAM,QAAQ,CAAC,UAAU,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC,CAAA;IAClF,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * @jrmc/adonis-attachment
3
+ *
4
+ * @license MIT
5
+ * @copyright Jeremy Chaufourier <jeremy@chaufourier.fr>
6
+ */
7
+ export {};
8
+ //# sourceMappingURL=attachment_table_names.spec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"attachment_table_names.spec.d.ts","sourceRoot":"","sources":["../../tests/attachment_table_names.spec.ts"],"names":[],"mappings":"AAAA;;;;;GAKG"}
@@ -0,0 +1,36 @@
1
+ /**
2
+ * @jrmc/adonis-attachment
3
+ *
4
+ * @license MIT
5
+ * @copyright Jeremy Chaufourier <jeremy@chaufourier.fr>
6
+ */
7
+ import { test } from '@japa/runner';
8
+ import { AttachmentLinkModel } from '../src/integrations/lucid/models/attachment_link_model.js';
9
+ import { AttachmentModel } from '../src/integrations/lucid/models/attachment_model.js';
10
+ import { configureLucidAttachmentTables } from '../src/integrations/lucid/schema/configure_lucid_attachment_tables.js';
11
+ import { resolveAttachmentTableNames } from '../src/integrations/lucid/schema/attachment_table_names.js';
12
+ test.group('Lucid attachment table names', (group) => {
13
+ group.each.teardown(() => {
14
+ configureLucidAttachmentTables();
15
+ });
16
+ test('derives the polymorphic link table from the singular base table name', ({ assert }) => {
17
+ assert.deepEqual(resolveAttachmentTableNames(), {
18
+ tableName: 'attachments',
19
+ linksTableName: 'attachment_links',
20
+ });
21
+ assert.deepEqual(resolveAttachmentTableNames('media_attachments'), {
22
+ tableName: 'media_attachments',
23
+ linksTableName: 'media_attachment_links',
24
+ });
25
+ });
26
+ test('applies configured names to the default Lucid models', ({ assert }) => {
27
+ const tables = configureLucidAttachmentTables('media_attachments');
28
+ assert.equal(tables.linksTableName, 'media_attachment_links');
29
+ assert.equal(AttachmentModel.table, 'media_attachments');
30
+ assert.equal(AttachmentLinkModel.table, 'media_attachment_links');
31
+ });
32
+ test('rejects unsafe base table names', ({ assert }) => {
33
+ assert.throws(() => resolveAttachmentTableNames('attachments; drop table users'), 'Lucid attachment table names must be snake_case identifiers');
34
+ });
35
+ });
36
+ //# sourceMappingURL=attachment_table_names.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"attachment_table_names.spec.js","sourceRoot":"","sources":["../../tests/attachment_table_names.spec.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAA;AAEnC,OAAO,EAAE,mBAAmB,EAAE,MAAM,2DAA2D,CAAA;AAC/F,OAAO,EAAE,eAAe,EAAE,MAAM,sDAAsD,CAAA;AACtF,OAAO,EAAE,8BAA8B,EAAE,MAAM,uEAAuE,CAAA;AACtH,OAAO,EAAE,2BAA2B,EAAE,MAAM,4DAA4D,CAAA;AAExG,IAAI,CAAC,KAAK,CAAC,8BAA8B,EAAE,CAAC,KAAK,EAAE,EAAE;IACnD,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE;QACvB,8BAA8B,EAAE,CAAA;IAClC,CAAC,CAAC,CAAA;IAEF,IAAI,CAAC,sEAAsE,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE;QAC1F,MAAM,CAAC,SAAS,CAAC,2BAA2B,EAAE,EAAE;YAC9C,SAAS,EAAE,aAAa;YACxB,cAAc,EAAE,kBAAkB;SACnC,CAAC,CAAA;QACF,MAAM,CAAC,SAAS,CAAC,2BAA2B,CAAC,mBAAmB,CAAC,EAAE;YACjE,SAAS,EAAE,mBAAmB;YAC9B,cAAc,EAAE,wBAAwB;SACzC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IAEF,IAAI,CAAC,sDAAsD,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE;QAC1E,MAAM,MAAM,GAAG,8BAA8B,CAAC,mBAAmB,CAAC,CAAA;QAElE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,cAAc,EAAE,wBAAwB,CAAC,CAAA;QAC7D,MAAM,CAAC,KAAK,CAAC,eAAe,CAAC,KAAK,EAAE,mBAAmB,CAAC,CAAA;QACxD,MAAM,CAAC,KAAK,CAAC,mBAAmB,CAAC,KAAK,EAAE,wBAAwB,CAAC,CAAA;IACnE,CAAC,CAAC,CAAA;IAEF,IAAI,CAAC,iCAAiC,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE;QACrD,MAAM,CAAC,MAAM,CACX,GAAG,EAAE,CAAC,2BAA2B,CAAC,+BAA+B,CAAC,EAClE,6DAA6D,CAC9D,CAAA;IACH,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"}
@@ -2,8 +2,9 @@ import { readFile } from 'node:fs/promises';
2
2
  import { join } from 'node:path';
3
3
  import { test } from '@japa/runner';
4
4
  import MakeAttachmentsTable from '../commands/make/attachments_table.js';
5
+ import { defineConfig } from '../src/define_config.js';
5
6
  import { stubsRoot } from '../stubs/main.js';
6
- import { createAttachmentsTableStubState } from '../src/integrations/lucid/attachments_table_stub.js';
7
+ import { createAttachmentsTableStubState } from '../src/integrations/lucid/schema/attachments_table_stub.js';
7
8
  test.group('attachments table migration stub', () => {
8
9
  test('prepares a timestamped destination and template state', ({ assert }) => {
9
10
  const state = createAttachmentsTableStubState({
@@ -20,15 +21,15 @@ test.group('attachments table migration stub', () => {
20
21
  test('rejects unsafe table names', ({ assert }) => {
21
22
  assert.throws(() => createAttachmentsTableStubState({ directory: '/app', tableName: 'attachments; drop table users' }), 'Lucid attachment table names must be snake_case identifiers');
22
23
  });
23
- test('contains the polymorphic attachment schema', async ({ assert }) => {
24
+ test('delegates blob and polymorphic-link schemas to the package service', async ({ assert }) => {
24
25
  const stub = await readFile(join(stubsRoot, 'migrations/attachments_table.stub'), 'utf8');
25
26
  assert.include(stub, 'exports({ to: destination })');
26
27
  assert.include(stub, 'Create{{ className }}Table');
27
28
  assert.include(stub, "protected tableName = '{{ tableName }}'");
28
- assert.include(stub, "table.string('attachable_type').notNullable()");
29
- assert.include(stub, "table.integer('position').unsigned().nullable()");
30
- assert.include(stub, "table.uuid('parent_id').nullable()");
31
- assert.include(stub, "table.unique(['parent_id', 'variant_key'])");
29
+ assert.include(stub, "import { AttachmentSchemaService } from '@jrmc/adonis-attachment/lucid'");
30
+ assert.include(stub, 'new AttachmentSchemaService(this.db.getWriteClient()');
31
+ assert.include(stub, 'createTables()');
32
+ assert.include(stub, 'dropTables()');
32
33
  });
33
34
  test('uses the package stub from the Ace command', async ({ assert }) => {
34
35
  const generated = [];
@@ -62,5 +63,39 @@ test.group('attachments table migration stub', () => {
62
63
  assert.match(String(stub.state.destination), /^\/app\/database\/migrations\/\d+_create_media_attachments_table\.ts$/);
63
64
  assert.match(message, /^Created \/app\/database\/migrations\//);
64
65
  });
66
+ test('uses the configured Lucid table when the command has no --table flag', async ({ assert, }) => {
67
+ const generated = [];
68
+ await MakeAttachmentsTable.prototype.run.call({
69
+ parsed: { flags: {} },
70
+ app: {
71
+ makePath: (path) => `/app/${path}`,
72
+ config: {
73
+ get() {
74
+ return defineConfig({
75
+ storage: {
76
+ async write() { },
77
+ async read() {
78
+ return new Uint8Array();
79
+ },
80
+ async remove() { },
81
+ },
82
+ integrations: {
83
+ lucid: { tableName: 'media_attachments' },
84
+ },
85
+ });
86
+ },
87
+ },
88
+ },
89
+ async createCodemods() {
90
+ return {
91
+ async makeUsingStub(_root, _path, state) {
92
+ generated.push({ state });
93
+ },
94
+ };
95
+ },
96
+ logger: { success() { } },
97
+ });
98
+ assert.equal(generated[0]?.state.tableName, 'media_attachments');
99
+ });
65
100
  });
66
101
  //# sourceMappingURL=attachments_table_stub.spec.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"attachments_table_stub.spec.js","sourceRoot":"","sources":["../../tests/attachments_table_stub.spec.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"attachments_table_stub.spec.js","sourceRoot":"","sources":["../../tests/attachments_table_stub.spec.ts"],"names":[],"mappings":"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"}
@@ -161,6 +161,28 @@ test.group('defineConfig', () => {
161
161
  const resolved = await defineConfig({ defaultDisk: 'public', storage, defaults }).resolver({});
162
162
  assert.equal(resolved.defaults, defaults);
163
163
  });
164
+ test('derives Lucid link table names from one configured blob table', async ({ assert }) => {
165
+ const storage = {
166
+ async write() { },
167
+ async read() {
168
+ return new Uint8Array();
169
+ },
170
+ async remove() { },
171
+ };
172
+ const resolved = await defineConfig({
173
+ defaultDisk: 'public',
174
+ storage,
175
+ integrations: {
176
+ lucid: { tableName: 'media_attachments' },
177
+ },
178
+ }).resolver({});
179
+ assert.deepEqual(resolved.integrations, {
180
+ lucid: {
181
+ tableName: 'media_attachments',
182
+ linksTableName: 'media_attachment_links',
183
+ },
184
+ });
185
+ });
164
186
  test('rejects invalid route prefixes', async ({ assert }) => {
165
187
  const storage = {
166
188
  async write() { },
@@ -1 +1 @@
1
- {"version":3,"file":"define_config.spec.js","sourceRoot":"","sources":["../../tests/define_config.spec.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"define_config.spec.js","sourceRoot":"","sources":["../../tests/define_config.spec.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"lucid_test_database.d.ts","sourceRoot":"","sources":["../../../tests/helpers/lucid_test_database.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAA;AAInD,wBAAsB,uBAAuB,IAAI,OAAO,CAAC,QAAQ,CAAC,CAiDjE"}
1
+ {"version":3,"file":"lucid_test_database.d.ts","sourceRoot":"","sources":["../../../tests/helpers/lucid_test_database.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAA;AAKnD,wBAAsB,uBAAuB,IAAI,OAAO,CAAC,QAAQ,CAAC,CA0DjE"}