@adonis-agora/media 0.8.1 → 0.8.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.
- package/CHANGELOG.md +45 -0
- package/README.md +206 -0
- package/dist/providers/media_provider.d.ts +3 -13
- package/dist/providers/media_provider.d.ts.map +1 -1
- package/dist/providers/media_provider.js +38 -4
- package/dist/providers/media_provider.js.map +1 -1
- package/dist/src/services/booted_app.d.ts +9 -0
- package/dist/src/services/booted_app.d.ts.map +1 -0
- package/dist/src/services/booted_app.js +33 -0
- package/dist/src/services/booted_app.js.map +1 -0
- package/dist/src/services/main.d.ts +12 -0
- package/dist/src/services/main.d.ts.map +1 -1
- package/dist/src/services/main.js +15 -3
- package/dist/src/services/main.js.map +1 -1
- package/dist/src/single_file_store.d.ts +4 -0
- package/dist/src/single_file_store.d.ts.map +1 -1
- package/dist/src/single_file_store.js +8 -4
- package/dist/src/single_file_store.js.map +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,50 @@
|
|
|
1
1
|
# @adonis-agora/media
|
|
2
2
|
|
|
3
|
+
## 0.8.2
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- [#17](https://github.com/DavideCarvalho/adonis-media/pull/17) [`e911880`](https://github.com/DavideCarvalho/adonis-media/commit/e911880969a28dd6bdbc0c56181462628eec1a4d) Thanks [@DavideCarvalho](https://github.com/DavideCarvalho)! - Corrige dois pontos onde este pacote ainda capturava um singleton do `@adonisjs/core` via `import`
|
|
8
|
+
de módulo em vez de recebê-lo do provider — o mesmo formato de dual-package hazard que já havia
|
|
9
|
+
derrubado o `Database` do Lucid em produção (ver o changeset `lucid-string-token`), só que agora nos
|
|
10
|
+
singletons `app` e `router` do próprio core.
|
|
11
|
+
|
|
12
|
+
**1 — `app` capturado eager em `services/main.ts` e `single_file_store.ts`.** Ambos faziam
|
|
13
|
+
`import app from '@adonisjs/core/services/app'` no topo do módulo. Esse binding só é preenchido via
|
|
14
|
+
`setApp()` chamado pelo Ignitor da app hospedeira; se a árvore de dependências contiver DUAS cópias
|
|
15
|
+
físicas de `@adonisjs/core` (pnpm workspace hoisting, pins divergentes, ou até a mesma versão
|
|
16
|
+
resolvida sob peer-sets diferentes), a cópia que este pacote importa nunca recebe esse `setApp()` — o
|
|
17
|
+
`app` fica `undefined` e qualquer uso quebra com um `Cannot read properties of undefined` opaco.
|
|
18
|
+
|
|
19
|
+
A correção segue o padrão já usado pelo `@adonis-agora/authz` (`services/booted_app.ts`): o
|
|
20
|
+
`MediaProvider.register()` agora captura a instância de `ApplicationService` que a própria aplicação
|
|
21
|
+
lhe entrega — que é sempre a cópia correta, seja qual for a duplicação na árvore — e a expõe via um
|
|
22
|
+
módulo interno (`src/services/booted_app.ts`) para `services/main.ts` e `single_file_store.ts`
|
|
23
|
+
lerem. Nenhuma mudança de API: `media.library.attach(...)` e as funções `storeSingleFile` /
|
|
24
|
+
`removeSingleFile` / `isSingleFileStoreAvailable` continuam idênticas por fora.
|
|
25
|
+
|
|
26
|
+
**2 — `router` resolvido eager e usado síncrono em `providers/media_provider.ts`.** O provider
|
|
27
|
+
importava `router` de `@adonisjs/core/services/router` no topo do módulo e chamava `router.get(...)`
|
|
28
|
+
/ `router.post(...)` direto dentro de `boot()`. Esse serviço específico só é atribuído dentro de um
|
|
29
|
+
hook `app.booted(...)` no próprio módulo `services/router.ts` do core — que dispara estritamente
|
|
30
|
+
DEPOIS do `boot()` de todos os providers. Ou seja, mesmo numa árvore com uma única cópia do core,
|
|
31
|
+
usar esse import de forma síncrona em `boot()` já é uma corrida contra o próprio mecanismo que o
|
|
32
|
+
preenche; numa árvore duplicada o problema se soma ao caso 1.
|
|
33
|
+
|
|
34
|
+
A montagem das rotas (`/media/uploads/direct/*`, `/media/uploads/proxy`, `/media/uploads/tus/*`)
|
|
35
|
+
agora é adiada para dentro de `app.booted(...)` — o mesmo padrão já documentado e em produção no
|
|
36
|
+
`DashboardProvider` do `@adonis-agora/durable`. Verificado que isso é seguro para o ciclo de vida do
|
|
37
|
+
Adonis: os hooks `booted` de TODOS os providers disparam antes do `Server#boot()` do
|
|
38
|
+
`@adonisjs/http-server` (que roda dentro de `app.start()`) chamar `router.commit()` — o último ponto
|
|
39
|
+
em que rotas ainda podem ser adicionadas. Dentro do hook, o `router` é resolvido pelo container
|
|
40
|
+
(`app.container.make('router')`) a partir do `this.app` do provider, imune à duplicação da mesma
|
|
41
|
+
forma que o caso 1.
|
|
42
|
+
|
|
43
|
+
Nenhuma mudança de comportamento observável: as mesmas rotas são montadas, só que um instante mais
|
|
44
|
+
tarde no boot (antes do servidor HTTP subir, nunca depois).
|
|
45
|
+
|
|
46
|
+
Também adicionado `prepack` ao `package.json` do pacote publicável, espelhando o `build`.
|
|
47
|
+
|
|
3
48
|
## 0.8.1
|
|
4
49
|
|
|
5
50
|
### Patch Changes
|
package/README.md
ADDED
|
@@ -0,0 +1,206 @@
|
|
|
1
|
+
# @adonis-agora/media
|
|
2
|
+
|
|
3
|
+
Media-library for **AdonisJS**, part of the [Agora](https://github.com/DavideCarvalho) ecosystem — the
|
|
4
|
+
spatie/laravel-media-library feel, on top of [`@adonisjs/drive`](https://github.com/adonisjs/drive).
|
|
5
|
+
|
|
6
|
+
Attach files to entities, organize them into collections (MIME whitelist, single-file replace,
|
|
7
|
+
ordering), and generate image conversions (eager or lazy). Storage is delegated entirely to Drive, so
|
|
8
|
+
you reuse your existing `local` / `s3` / `gcs` disks — this package never reimplements disk drivers.
|
|
9
|
+
|
|
10
|
+
This is the **core library**: `MediaLibrary`, `AttachmentManager`, the `MediaStore` SPI (in-memory +
|
|
11
|
+
Lucid), the `ImageProcessor` SPI (sharp), the bundled `disks.s3()` driver, proxy/direct/resumable
|
|
12
|
+
uploads, configurable delivery, the provider + `defineConfig`, and a testing kit. Pair it with
|
|
13
|
+
[`@adonis-agora/media-react`](https://github.com/DavideCarvalho/adonis-media/tree/master/packages/react)
|
|
14
|
+
for a browser upload client, or
|
|
15
|
+
[`@adonis-agora/media-dashboard`](https://github.com/DavideCarvalho/adonis-media/tree/master/packages/dashboard)
|
|
16
|
+
for a management console.
|
|
17
|
+
|
|
18
|
+
## Subpath exports
|
|
19
|
+
|
|
20
|
+
The package uses **subpath exports** (the Agora idiom), so heavy backends stay optional:
|
|
21
|
+
|
|
22
|
+
| Subpath | What |
|
|
23
|
+
|---|---|
|
|
24
|
+
| `@adonis-agora/media` | barrel — `defineConfig`, `stores`, `processors`, `disks`, `uploadSessions`, `MediaManager`, `MediaLibrary`, `AttachmentManager`, `UploadManager`, `ResumableUploadManager`, `MediaDeliveryHandler`, SPIs, errors |
|
|
25
|
+
| `@adonis-agora/media/media_provider` | the service provider (binds `MediaManager`, mounts optional upload/TUS routes) |
|
|
26
|
+
| `@adonis-agora/media/configure` | `node ace configure` hook |
|
|
27
|
+
| `@adonis-agora/media/single-file` | `storeSingleFile` / `removeSingleFile` / `isSingleFileStoreAvailable` — lets other packages delegate single-file uploads (e.g. avatars) to media without a hard dependency |
|
|
28
|
+
| `@adonis-agora/media/stores/lucid` | the Lucid `MediaStore` (`@adonisjs/lucid` peer) |
|
|
29
|
+
| `@adonis-agora/media/upload_sessions/lucid` | the Lucid resumable `UploadSessionStore` (`@adonisjs/lucid` peer) |
|
|
30
|
+
| `@adonis-agora/media/disks/s3` | the bundled `S3Disk` (`@aws-sdk/client-s3` + `@aws-sdk/s3-request-presigner` peers) |
|
|
31
|
+
| `@adonis-agora/media/processors/sharp` | the sharp `ImageProcessor` (`sharp` peer) |
|
|
32
|
+
| `@adonis-agora/media/telescope` | `mediaTelescopeExtension` (`@adonis-agora/telescope` optional peer) |
|
|
33
|
+
| `@adonis-agora/media/testing` | `InMemoryMediaStore`, `InMemoryDisk`, `inMemoryDiskResolver`, `FakeImageProcessor`, `InMemoryUploadSessionStore` |
|
|
34
|
+
| `@adonis-agora/media/types` | the structural `Disk` / `DiskResolver` / `ExtendedDisk` / `MultipartUploadDisk` contracts |
|
|
35
|
+
|
|
36
|
+
## Install
|
|
37
|
+
|
|
38
|
+
```sh
|
|
39
|
+
node ace add @adonisjs/drive # storage backend (required)
|
|
40
|
+
npm i @adonis-agora/media
|
|
41
|
+
node ace configure @adonis-agora/media
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
`configure` registers the provider, publishes `config/media.ts`, and publishes the `media` table
|
|
45
|
+
migration (delete it if you only use the in-memory store; otherwise `node ace migration:run`).
|
|
46
|
+
|
|
47
|
+
Optional peers, loaded lazily only when selected:
|
|
48
|
+
|
|
49
|
+
- `@adonisjs/lucid` (`^22.4.0`) — the `lucid` `MediaStore` / `UploadSessionStore`
|
|
50
|
+
- `sharp` (`^0.33.0`) — image conversions
|
|
51
|
+
- `@aws-sdk/client-s3` + `@aws-sdk/s3-request-presigner` (`^3.0.0`) — the bundled `disks.s3()` driver
|
|
52
|
+
- `@adonis-agora/telescope` (`^0.4.0`) — the Telescope watcher extension
|
|
53
|
+
|
|
54
|
+
## Configure
|
|
55
|
+
|
|
56
|
+
```ts
|
|
57
|
+
// config/media.ts
|
|
58
|
+
import { defineConfig, stores, processors } from '@adonis-agora/media'
|
|
59
|
+
|
|
60
|
+
export default defineConfig({
|
|
61
|
+
// disk: 's3', // omit to use Drive's default disk
|
|
62
|
+
store: 'lucid',
|
|
63
|
+
stores: {
|
|
64
|
+
memory: stores.memory(),
|
|
65
|
+
lucid: stores.lucid({ connection: 'pg' }),
|
|
66
|
+
},
|
|
67
|
+
imageProcessor: processors.sharp(),
|
|
68
|
+
collections: [
|
|
69
|
+
{ name: 'avatar', single: true, acceptsMimeTypes: ['image/png', 'image/jpeg'] },
|
|
70
|
+
{
|
|
71
|
+
name: 'gallery',
|
|
72
|
+
conversions: [
|
|
73
|
+
{ name: 'thumb', width: 200, height: 200 },
|
|
74
|
+
{ name: 'og', width: 1200, eager: true },
|
|
75
|
+
],
|
|
76
|
+
},
|
|
77
|
+
],
|
|
78
|
+
})
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
## Use
|
|
82
|
+
|
|
83
|
+
The provider binds a singleton `MediaManager`; reach it with the service import (or `@inject()` it).
|
|
84
|
+
A real upload controller loads the owner, validates the file, and streams its tmp bytes into a
|
|
85
|
+
collection:
|
|
86
|
+
|
|
87
|
+
```ts
|
|
88
|
+
// app/controllers/post_images_controller.ts
|
|
89
|
+
import { createReadStream } from 'node:fs'
|
|
90
|
+
import Post from '#models/post'
|
|
91
|
+
import media from '@adonis-agora/media/services/main'
|
|
92
|
+
import type { HttpContext } from '@adonisjs/core/http'
|
|
93
|
+
|
|
94
|
+
export default class PostImagesController {
|
|
95
|
+
async store({ request, response, params }: HttpContext) {
|
|
96
|
+
const post = await Post.findOrFail(params.id)
|
|
97
|
+
|
|
98
|
+
const image = request.file('image', { size: '5mb', extnames: ['jpg', 'png', 'webp'] })
|
|
99
|
+
if (!image) return response.badRequest({ error: 'An "image" file is required' })
|
|
100
|
+
|
|
101
|
+
const record = await media.library.attach({
|
|
102
|
+
ownerType: 'Post',
|
|
103
|
+
ownerId: post.id, // string | number — coerced for you
|
|
104
|
+
collection: 'gallery',
|
|
105
|
+
fileName: image.clientName,
|
|
106
|
+
mimeType: image.type!,
|
|
107
|
+
contents: createReadStream(image.tmpPath!), // Buffer | Readable
|
|
108
|
+
})
|
|
109
|
+
|
|
110
|
+
return response.created({ id: record.id, url: await media.library.url(record.id) })
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
Reading, listing and deleting go through the same `media` singleton:
|
|
116
|
+
|
|
117
|
+
```ts
|
|
118
|
+
await media.library.url(record.id) // public url of the original
|
|
119
|
+
await media.library.url(record.id, 'thumb') // generated lazily on first call, then cached
|
|
120
|
+
await media.library.list('Post', post.id, 'gallery')
|
|
121
|
+
await media.library.delete(record.id)
|
|
122
|
+
|
|
123
|
+
// Or bind an owner once for a bulk upload
|
|
124
|
+
const gallery = media.library.for('Post', post.id)
|
|
125
|
+
await gallery.attach({ collection: 'gallery', fileName: image.clientName, mimeType: image.type!, contents })
|
|
126
|
+
|
|
127
|
+
// Column attachments (adonis-attachment style) — store the value object on a JSON column
|
|
128
|
+
const att = await media.attachments.createFromFile(
|
|
129
|
+
{ fileName: image.clientName, mimeType: image.type!, contents },
|
|
130
|
+
{ variants: [{ name: 'thumb', width: 100 }] },
|
|
131
|
+
)
|
|
132
|
+
user.avatarData = att.toJSON()
|
|
133
|
+
await media.attachments.url(att, 'thumb')
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
A `ConversionPreset` is `{ name, width?, height?, fit?, format?, quality?, eager? }`. Eager presets are
|
|
137
|
+
generated synchronously on `attach`; the rest are generated lazily on the first `url(id, name)` and
|
|
138
|
+
cached on the record. `fit` and `format` map straight onto sharp.
|
|
139
|
+
|
|
140
|
+
## Uploads, S3 and delivery
|
|
141
|
+
|
|
142
|
+
Large-file uploads ship in three flavours — **proxy** (bytes stream through your app), **direct-S3
|
|
143
|
+
multipart** (the browser uploads straight to the bucket via presigned part URLs), and **resumable
|
|
144
|
+
[tus](https://tus.io)** sessions (pluggable in-memory + Lucid session stores). Opt in under `uploads`
|
|
145
|
+
in `config/media.ts`; the provider mounts the routes under `/media/uploads` and `/media/uploads/tus`.
|
|
146
|
+
|
|
147
|
+
```ts
|
|
148
|
+
export default defineConfig({
|
|
149
|
+
// ...
|
|
150
|
+
uploads: {
|
|
151
|
+
mode: 'auto', // 'direct' | 'proxy' | 'auto'
|
|
152
|
+
routes: { enabled: true },
|
|
153
|
+
resumable: { routes: { enabled: true } },
|
|
154
|
+
},
|
|
155
|
+
delivery: { mode: 'auto' }, // 'public' | 'signed' | 'proxy' | 'auto'
|
|
156
|
+
})
|
|
157
|
+
```
|
|
158
|
+
|
|
159
|
+
`delivery` is the read-side counterpart to `uploads.mode`: `MediaLibrary.deliver(id, options?)`
|
|
160
|
+
resolves to a discriminated union — `{ kind: 'redirect', url }` for `public`/`signed`, or
|
|
161
|
+
`{ kind: 'stream', stream, mimeType, size, fileName }` for `proxy` — so a private bucket doesn't need
|
|
162
|
+
a hand-rolled streaming route. `MediaDeliveryHandler` and `TusUploadHandler` are the framework-agnostic
|
|
163
|
+
route halves your app mounts with its own middleware; **neither performs authorization** — guard the
|
|
164
|
+
route before calling `handle`.
|
|
165
|
+
|
|
166
|
+
The bundled `disks.s3()` driver adds extended operations (copy/move/deleteMany/list/size/stat) and
|
|
167
|
+
native multipart over the optional AWS SDK peer. Drive it from the browser with
|
|
168
|
+
[`@adonis-agora/media-react`](https://github.com/DavideCarvalho/adonis-media/tree/master/packages/react).
|
|
169
|
+
|
|
170
|
+
## Diagnostics
|
|
171
|
+
|
|
172
|
+
Lifecycle events (`attach`, `delete`, `conversion`, `attachment.create`, `attachment.delete`) are
|
|
173
|
+
emitted on the `agora:media:*` channel via the `@agora/diagnostics:emit` global slot — read
|
|
174
|
+
structurally, with **no hard dependency** on `@adonis-agora/diagnostics`. When that package isn't
|
|
175
|
+
installed, emitting is an inert no-op; when it is, the Telescope generic watcher (or
|
|
176
|
+
`@adonis-agora/media/telescope`) captures every media event automatically.
|
|
177
|
+
|
|
178
|
+
## Testing
|
|
179
|
+
|
|
180
|
+
`@adonis-agora/media/testing` ships in-memory doubles for the SPIs so you can exercise the library
|
|
181
|
+
without a disk, database, or sharp:
|
|
182
|
+
|
|
183
|
+
```ts
|
|
184
|
+
import { MediaLibrary, StorageManager } from '@adonis-agora/media'
|
|
185
|
+
import { InMemoryMediaStore, inMemoryDiskResolver, FakeImageProcessor } from '@adonis-agora/media/testing'
|
|
186
|
+
|
|
187
|
+
const { resolve, disks } = inMemoryDiskResolver(['fs'])
|
|
188
|
+
const library = new MediaLibrary({
|
|
189
|
+
storage: new StorageManager({ default: 'fs', resolve }),
|
|
190
|
+
store: new InMemoryMediaStore(),
|
|
191
|
+
imageProcessor: new FakeImageProcessor(),
|
|
192
|
+
})
|
|
193
|
+
```
|
|
194
|
+
|
|
195
|
+
In a real app you can also `drive.fake()` from `@adonisjs/drive` to back the disks with an in-memory
|
|
196
|
+
fake while keeping the rest of the wiring intact.
|
|
197
|
+
|
|
198
|
+
## Links
|
|
199
|
+
|
|
200
|
+
- Repo: https://github.com/DavideCarvalho/adonis-media
|
|
201
|
+
- Changelog: https://github.com/DavideCarvalho/adonis-media/blob/master/packages/adonis/CHANGELOG.md
|
|
202
|
+
- Sibling packages: [`@adonis-agora/media-react`](https://github.com/DavideCarvalho/adonis-media/tree/master/packages/react), [`@adonis-agora/media-dashboard`](https://github.com/DavideCarvalho/adonis-media/tree/master/packages/dashboard)
|
|
203
|
+
|
|
204
|
+
## License
|
|
205
|
+
|
|
206
|
+
MIT
|
|
@@ -17,19 +17,9 @@ export default class MediaProvider {
|
|
|
17
17
|
constructor(app: ApplicationService);
|
|
18
18
|
register(): void;
|
|
19
19
|
/**
|
|
20
|
-
* Mount the
|
|
21
|
-
*
|
|
22
|
-
* delegates to its upload methods. The object key is taken from the request body/query — resolve
|
|
23
|
-
* it server-side (per user/tenant) in a real app so a client can't point an upload at another
|
|
24
|
-
* object.
|
|
25
|
-
*
|
|
26
|
-
* Routes (relative to `uploads.routes.prefix`, default `/media/uploads`):
|
|
27
|
-
* - `POST /direct/initiate` → presign multipart parts
|
|
28
|
-
* - `POST /direct/:uploadId/parts/:partNumber` → presign one (retried) part
|
|
29
|
-
* - `POST /direct/:uploadId/complete` → assemble the parts
|
|
30
|
-
* - `DELETE /direct/:uploadId` → abort the upload
|
|
31
|
-
* - `PUT /proxy` → stream bytes through the app (proxy mode)
|
|
20
|
+
* Mount the media routes once the app has booted (see the comment inside for why). No-ops when
|
|
21
|
+
* neither the TUS resumable routes nor the direct-upload routes are enabled in config.
|
|
32
22
|
*/
|
|
33
|
-
boot(): void
|
|
23
|
+
boot(): Promise<void>;
|
|
34
24
|
}
|
|
35
25
|
//# sourceMappingURL=media_provider.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"media_provider.d.ts","sourceRoot":"","sources":["../../providers/media_provider.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"media_provider.d.ts","sourceRoot":"","sources":["../../providers/media_provider.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,kBAAkB,EAAqB,MAAM,sBAAsB,CAAC;AAgBlF;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,OAAO,OAAO,aAAa;;IACpB,SAAS,CAAC,GAAG,EAAE,kBAAkB;gBAAvB,GAAG,EAAE,kBAAkB;IAE7C,QAAQ;IAkFR;;;OAGG;IACG,IAAI;CAkPX"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import router from '@adonisjs/core/services/router';
|
|
2
1
|
import { createDriveBackedResolver } from '../src/disks/drive.js';
|
|
3
2
|
import { resolveConfiguredDisks } from '../src/disks/factory.js';
|
|
4
3
|
import { MediaManager } from '../src/media_manager.js';
|
|
4
|
+
import { setBootedApp } from '../src/services/booted_app.js';
|
|
5
5
|
import { resolveStore } from '../src/stores/factory.js';
|
|
6
6
|
import { TusUploadHandler } from '../src/tus.js';
|
|
7
7
|
import { resolveUploadSessionStore } from '../src/upload_sessions/factory.js';
|
|
@@ -23,6 +23,11 @@ export default class MediaProvider {
|
|
|
23
23
|
this.app = app;
|
|
24
24
|
}
|
|
25
25
|
register() {
|
|
26
|
+
// Hand the booted app to the internal singleton so it never has to `import` an
|
|
27
|
+
// `@adonisjs/core` copy that may not be the one `bin/server` booted (see
|
|
28
|
+
// `../src/services/booted_app.js`) — mirrors the fix already applied to the `@adonisjs/lucid`
|
|
29
|
+
// `Database` token (`'lucid.db'` string alias) for the same class of dual-package hazard.
|
|
30
|
+
setBootedApp(this.app);
|
|
26
31
|
this.app.container.singleton(MediaManager, async () => {
|
|
27
32
|
const config = this.app.config.get('media', {});
|
|
28
33
|
// Validate + build the store from config first, so a misconfigured `store` fails fast (before
|
|
@@ -86,6 +91,35 @@ export default class MediaProvider {
|
|
|
86
91
|
});
|
|
87
92
|
});
|
|
88
93
|
}
|
|
94
|
+
/**
|
|
95
|
+
* Mount the media routes once the app has booted (see the comment inside for why). No-ops when
|
|
96
|
+
* neither the TUS resumable routes nor the direct-upload routes are enabled in config.
|
|
97
|
+
*/
|
|
98
|
+
async boot() {
|
|
99
|
+
// Route registration can't happen synchronously in `boot()`: at this point in the AdonisJS
|
|
100
|
+
// lifecycle the HTTP server/router binding may not be resolvable yet (bindings from other
|
|
101
|
+
// providers' `boot()` methods can still be pending), and — critically — the *documented*
|
|
102
|
+
// `@adonisjs/core/services/router` singleton is only assigned once the app's "booted" hooks run
|
|
103
|
+
// (`await app.booted(async () => { router = ... })` inside that service module itself), which
|
|
104
|
+
// fire strictly AFTER every provider's own `boot()`. A provider that imports that singleton and
|
|
105
|
+
// calls `router.get(...)` directly inside `boot()` crashes every entrypoint (serve/ace/tests)
|
|
106
|
+
// that registers it, because `router` is still `undefined` at that point — the same hazard this
|
|
107
|
+
// provider now avoids for `MediaManager` itself (see `../src/services/booted_app.js`).
|
|
108
|
+
//
|
|
109
|
+
// Deferring to `app.booted(...)` runs our route registration as another "booted" hook — the
|
|
110
|
+
// same mechanism the router service uses to become available in the first place — which is
|
|
111
|
+
// guaranteed to fire BEFORE the HTTP server's own `boot()` commits the router (the last point at
|
|
112
|
+
// which routes can still be added; see `Server#boot()` in `@adonisjs/http-server`, which runs
|
|
113
|
+
// inside `app.start()`, strictly after all "booted" hooks). Resolving `router` fresh from the
|
|
114
|
+
// container here (rather than depending on that service singleton) is also the same pattern
|
|
115
|
+
// `@adonisjs/core`'s own `AppServiceProvider` and `@adonis-agora/durable`'s `DashboardProvider`
|
|
116
|
+
// use internally, and is immune to the dual-package hazard for the same reason `booted_app.ts`
|
|
117
|
+
// is: it comes from `this.app` (captured at registration), never from a module-level import.
|
|
118
|
+
await this.app.booted(async () => {
|
|
119
|
+
const router = await this.app.container.make('router');
|
|
120
|
+
this.#registerRoutes(router);
|
|
121
|
+
});
|
|
122
|
+
}
|
|
89
123
|
/**
|
|
90
124
|
* Mount the optional direct-S3 upload routes when `uploads.routes.enabled` is set. These are plain
|
|
91
125
|
* AdonisJS routes (NOT controllers): each resolves the {@link MediaManager} singleton lazily and
|
|
@@ -100,9 +134,9 @@ export default class MediaProvider {
|
|
|
100
134
|
* - `DELETE /direct/:uploadId` → abort the upload
|
|
101
135
|
* - `PUT /proxy` → stream bytes through the app (proxy mode)
|
|
102
136
|
*/
|
|
103
|
-
|
|
137
|
+
#registerRoutes(router) {
|
|
104
138
|
const config = this.app.config.get('media', {});
|
|
105
|
-
this.#mountTusRoutes(config);
|
|
139
|
+
this.#mountTusRoutes(router, config);
|
|
106
140
|
const routes = config.uploads?.routes;
|
|
107
141
|
if (!routes?.enabled)
|
|
108
142
|
return;
|
|
@@ -202,7 +236,7 @@ export default class MediaProvider {
|
|
|
202
236
|
* Set `uploads.resumable.routes.collection` to have the handler enforce that collection's
|
|
203
237
|
* `acceptsMimeTypes` at create time and on the first chunk (`415`), instead of only at attach.
|
|
204
238
|
*/
|
|
205
|
-
#mountTusRoutes(config) {
|
|
239
|
+
#mountTusRoutes(router, config) {
|
|
206
240
|
const resumable = config.uploads?.resumable;
|
|
207
241
|
if (!resumable?.routes?.enabled)
|
|
208
242
|
return;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"media_provider.js","sourceRoot":"","sources":["../../providers/media_provider.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"media_provider.js","sourceRoot":"","sources":["../../providers/media_provider.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { ApplicationService } from '@adonisjs/core/types';
|
|
2
|
+
/** Record the booted app. Called once by {@link MediaProvider} during `register()`. */
|
|
3
|
+
export declare function setBootedApp(app: ApplicationService): void;
|
|
4
|
+
/**
|
|
5
|
+
* The booted app captured by the provider. Throws if read before the provider registered — a clear
|
|
6
|
+
* signal that `@adonis-agora/media/media_provider` is missing from the app's providers.
|
|
7
|
+
*/
|
|
8
|
+
export declare function getBootedApp(): ApplicationService;
|
|
9
|
+
//# sourceMappingURL=booted_app.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"booted_app.d.ts","sourceRoot":"","sources":["../../../src/services/booted_app.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAqB/D,uFAAuF;AACvF,wBAAgB,YAAY,CAAC,GAAG,EAAE,kBAAkB,GAAG,IAAI,CAE1D;AAED;;;GAGG;AACH,wBAAgB,YAAY,IAAI,kBAAkB,CAOjD"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The booted {@link ApplicationService}, captured by `MediaProvider.register()` — which the
|
|
3
|
+
* application instantiates with its OWN booted app instance.
|
|
4
|
+
*
|
|
5
|
+
* Why capture it here instead of `import app from '@adonisjs/core/services/app'`: in a pnpm
|
|
6
|
+
* (workspace / hoisted) install this package can resolve a DIFFERENT physical copy of
|
|
7
|
+
* `@adonisjs/core` than the one `bin/server` booted. `services/app` exposes the app through a
|
|
8
|
+
* module-level binding set at boot (`setApp`), so a non-booted copy's binding stays `undefined` —
|
|
9
|
+
* importing it there yields an undefined app (`Cannot read properties of undefined`). The instance
|
|
10
|
+
* the provider receives is always the booted one, so reading it here is immune to core copy /
|
|
11
|
+
* peer-variant splits.
|
|
12
|
+
*
|
|
13
|
+
* This is the same fix already applied to the `@adonisjs/lucid` `Database` singleton in this
|
|
14
|
+
* package (resolved via the `'lucid.db'` string alias instead of the `Database` class — see the
|
|
15
|
+
* `lucid-string-token` changeset): a class/module import used as a cross-copy token silently splits
|
|
16
|
+
* under a duplicated dependency tree, and only a value handed to us at registration time is immune.
|
|
17
|
+
*/
|
|
18
|
+
let bootedApp;
|
|
19
|
+
/** Record the booted app. Called once by {@link MediaProvider} during `register()`. */
|
|
20
|
+
export function setBootedApp(app) {
|
|
21
|
+
bootedApp = app;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* The booted app captured by the provider. Throws if read before the provider registered — a clear
|
|
25
|
+
* signal that `@adonis-agora/media/media_provider` is missing from the app's providers.
|
|
26
|
+
*/
|
|
27
|
+
export function getBootedApp() {
|
|
28
|
+
if (!bootedApp) {
|
|
29
|
+
throw new Error('@adonis-agora/media: app accessed before MediaProvider registered. Add "@adonis-agora/media/media_provider" to your adonisrc.ts providers.');
|
|
30
|
+
}
|
|
31
|
+
return bootedApp;
|
|
32
|
+
}
|
|
33
|
+
//# sourceMappingURL=booted_app.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"booted_app.js","sourceRoot":"","sources":["../../../src/services/booted_app.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;GAgBG;AACH,IAAI,SAAyC,CAAC;AAE9C,uFAAuF;AACvF,MAAM,UAAU,YAAY,CAAC,GAAuB;IAClD,SAAS,GAAG,GAAG,CAAC;AAClB,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,YAAY;IAC1B,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CACb,4IAA4I,CAC7I,CAAC;IACJ,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC"}
|
|
@@ -8,6 +8,18 @@ import { MediaManager } from '../media_manager.js';
|
|
|
8
8
|
*
|
|
9
9
|
* await media.library.attach({ ownerType: 'Post', ownerId: '1', collection: 'gallery', ... })
|
|
10
10
|
* ```
|
|
11
|
+
*
|
|
12
|
+
* The app is read from the provider-captured booted instance ({@link getBootedApp}) rather than
|
|
13
|
+
* `@adonisjs/core/services/app` — see `./booted_app.js` for why that import is unreliable under a
|
|
14
|
+
* duplicated `@adonisjs/core` tree (pnpm dual-package hazard).
|
|
15
|
+
*
|
|
16
|
+
* This module's top-level `await` runs at import time, so importing it requires
|
|
17
|
+
* `MediaProvider.register()` to already have run. In the previous `@adonisjs/core/services/app`
|
|
18
|
+
* import this "just worked" in a single-copy tree (that module's `app` binding is set very early,
|
|
19
|
+
* long before any provider registers) but threw an opaque `Cannot read properties of undefined
|
|
20
|
+
* (reading 'booted')` in a duplicated-`@adonisjs/core` tree — the exact class of crash this file
|
|
21
|
+
* exists to fix. Importing this module before `MediaProvider.register()` has run now throws the same
|
|
22
|
+
* clear, actionable error {@link getBootedApp} gives everywhere else in this package.
|
|
11
23
|
*/
|
|
12
24
|
declare let media: MediaManager;
|
|
13
25
|
export { media as default };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"main.d.ts","sourceRoot":"","sources":["../../../src/services/main.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"main.d.ts","sourceRoot":"","sources":["../../../src/services/main.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAGnD;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,QAAA,IAAI,KAAK,EAAE,YAAY,CAAC;AAMxB,OAAO,EAAE,KAAK,IAAI,OAAO,EAAE,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import app from '@adonisjs/core/services/app';
|
|
2
1
|
import { MediaManager } from '../media_manager.js';
|
|
2
|
+
import { getBootedApp } from './booted_app.js';
|
|
3
3
|
/**
|
|
4
4
|
* Service-singleton for the {@link MediaManager}, resolved from the container once the app has
|
|
5
5
|
* booted. Import it for a ready-to-use manager instead of resolving the binding by hand:
|
|
@@ -9,10 +9,22 @@ import { MediaManager } from '../media_manager.js';
|
|
|
9
9
|
*
|
|
10
10
|
* await media.library.attach({ ownerType: 'Post', ownerId: '1', collection: 'gallery', ... })
|
|
11
11
|
* ```
|
|
12
|
+
*
|
|
13
|
+
* The app is read from the provider-captured booted instance ({@link getBootedApp}) rather than
|
|
14
|
+
* `@adonisjs/core/services/app` — see `./booted_app.js` for why that import is unreliable under a
|
|
15
|
+
* duplicated `@adonisjs/core` tree (pnpm dual-package hazard).
|
|
16
|
+
*
|
|
17
|
+
* This module's top-level `await` runs at import time, so importing it requires
|
|
18
|
+
* `MediaProvider.register()` to already have run. In the previous `@adonisjs/core/services/app`
|
|
19
|
+
* import this "just worked" in a single-copy tree (that module's `app` binding is set very early,
|
|
20
|
+
* long before any provider registers) but threw an opaque `Cannot read properties of undefined
|
|
21
|
+
* (reading 'booted')` in a duplicated-`@adonisjs/core` tree — the exact class of crash this file
|
|
22
|
+
* exists to fix. Importing this module before `MediaProvider.register()` has run now throws the same
|
|
23
|
+
* clear, actionable error {@link getBootedApp} gives everywhere else in this package.
|
|
12
24
|
*/
|
|
13
25
|
let media;
|
|
14
|
-
await
|
|
15
|
-
media = await
|
|
26
|
+
await getBootedApp().booted(async () => {
|
|
27
|
+
media = await getBootedApp().container.make(MediaManager);
|
|
16
28
|
});
|
|
17
29
|
export { media as default };
|
|
18
30
|
//# sourceMappingURL=main.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"main.js","sourceRoot":"","sources":["../../../src/services/main.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"main.js","sourceRoot":"","sources":["../../../src/services/main.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/C;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,IAAI,KAAmB,CAAC;AAExB,MAAM,YAAY,EAAE,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE;IACrC,KAAK,GAAG,MAAM,YAAY,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;AAC5D,CAAC,CAAC,CAAC;AAEH,OAAO,EAAE,KAAK,IAAI,OAAO,EAAE,CAAC"}
|
|
@@ -43,6 +43,10 @@ export declare function removeSingleFileWith(manager: MediaManager, input: Remov
|
|
|
43
43
|
* Store a single file for an owner via the app-bound {@link MediaManager}. Resolves the manager from
|
|
44
44
|
* the container, then delegates to {@link storeSingleFileWith}. The `collection` must be configured
|
|
45
45
|
* `single: true` in `config/media.ts` for prior files to be replaced.
|
|
46
|
+
*
|
|
47
|
+
* The container is read from the provider-captured booted app ({@link getBootedApp}) rather than
|
|
48
|
+
* `@adonisjs/core/services/app` — see `./services/booted_app.js` for why that import is unreliable
|
|
49
|
+
* under a duplicated `@adonisjs/core` tree (pnpm dual-package hazard).
|
|
46
50
|
*/
|
|
47
51
|
export declare function storeSingleFile(input: StoreSingleFileInput): Promise<StoredSingleFile>;
|
|
48
52
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"single_file_store.d.ts","sourceRoot":"","sources":["../../src/single_file_store.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"single_file_store.d.ts","sourceRoot":"","sources":["../../src/single_file_store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAGlD;;;;;;;GAOG;AACH,MAAM,WAAW,oBAAoB;IACnC,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,mEAAmE;IACnE,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,gBAAgB;IAC/B,yCAAyC;IACzC,GAAG,EAAE,MAAM,CAAC;IACZ,6FAA6F;IAC7F,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;CACzB;AAED,MAAM,WAAW,qBAAqB;IACpC,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;;;;GAKG;AACH,wBAAsB,mBAAmB,CACvC,OAAO,EAAE,YAAY,EACrB,KAAK,EAAE,oBAAoB,GAC1B,OAAO,CAAC,gBAAgB,CAAC,CAoB3B;AAED;;;GAGG;AACH,wBAAsB,oBAAoB,CACxC,OAAO,EAAE,YAAY,EACrB,KAAK,EAAE,qBAAqB,GAC3B,OAAO,CAAC,IAAI,CAAC,CAGf;AAED;;;;;;;;GAQG;AACH,wBAAsB,eAAe,CAAC,KAAK,EAAE,oBAAoB,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAG5F;AAED;;;GAGG;AACH,wBAAsB,gBAAgB,CAAC,KAAK,EAAE,qBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC,CAGlF;AAED;;;GAGG;AACH,wBAAsB,0BAA0B,IAAI,OAAO,CAAC,OAAO,CAAC,CAEnE"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import app from '@adonisjs/core/services/app';
|
|
2
1
|
import { MediaManager } from './media_manager.js';
|
|
2
|
+
import { getBootedApp } from './services/booted_app.js';
|
|
3
3
|
/**
|
|
4
4
|
* Core of {@link storeSingleFile} driven by an explicit {@link MediaManager}, so tests can exercise
|
|
5
5
|
* it with an in-memory manager without booting an app. Attaches the file to the owner's collection
|
|
@@ -38,9 +38,13 @@ export async function removeSingleFileWith(manager, input) {
|
|
|
38
38
|
* Store a single file for an owner via the app-bound {@link MediaManager}. Resolves the manager from
|
|
39
39
|
* the container, then delegates to {@link storeSingleFileWith}. The `collection` must be configured
|
|
40
40
|
* `single: true` in `config/media.ts` for prior files to be replaced.
|
|
41
|
+
*
|
|
42
|
+
* The container is read from the provider-captured booted app ({@link getBootedApp}) rather than
|
|
43
|
+
* `@adonisjs/core/services/app` — see `./services/booted_app.js` for why that import is unreliable
|
|
44
|
+
* under a duplicated `@adonisjs/core` tree (pnpm dual-package hazard).
|
|
41
45
|
*/
|
|
42
46
|
export async function storeSingleFile(input) {
|
|
43
|
-
const manager = await
|
|
47
|
+
const manager = await getBootedApp().container.make(MediaManager);
|
|
44
48
|
return storeSingleFileWith(manager, input);
|
|
45
49
|
}
|
|
46
50
|
/**
|
|
@@ -48,7 +52,7 @@ export async function storeSingleFile(input) {
|
|
|
48
52
|
* manager from the container, then delegates to {@link removeSingleFileWith}.
|
|
49
53
|
*/
|
|
50
54
|
export async function removeSingleFile(input) {
|
|
51
|
-
const manager = await
|
|
55
|
+
const manager = await getBootedApp().container.make(MediaManager);
|
|
52
56
|
return removeSingleFileWith(manager, input);
|
|
53
57
|
}
|
|
54
58
|
/**
|
|
@@ -56,6 +60,6 @@ export async function removeSingleFile(input) {
|
|
|
56
60
|
* container. Callers use this to feature-detect media before routing a store through it.
|
|
57
61
|
*/
|
|
58
62
|
export async function isSingleFileStoreAvailable() {
|
|
59
|
-
return
|
|
63
|
+
return getBootedApp().container.hasBinding(MediaManager);
|
|
60
64
|
}
|
|
61
65
|
//# sourceMappingURL=single_file_store.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"single_file_store.js","sourceRoot":"","sources":["../../src/single_file_store.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"single_file_store.js","sourceRoot":"","sources":["../../src/single_file_store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAiCxD;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,OAAqB,EACrB,KAA2B;IAE3B,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC;QAC9E,UAAU,EAAE,KAAK,CAAC,UAAU;QAC5B,QAAQ,EAAE,KAAK,CAAC,QAAQ;QACxB,QAAQ,EAAE,KAAK,CAAC,QAAQ;QACxB,QAAQ,EAAE,KAAK,CAAC,QAAQ;KACzB,CAAC,CAAC;IAEH,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAEjD,0FAA0F;IAC1F,6FAA6F;IAC7F,IAAI,QAAQ,GAAkB,IAAI,CAAC;IACnC,IAAI,CAAC;QACH,QAAQ,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;IAC3D,CAAC;IAAC,MAAM,CAAC;QACP,QAAQ,GAAG,IAAI,CAAC;IAClB,CAAC;IAED,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC;AAC3B,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,OAAqB,EACrB,KAA4B;IAE5B,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;IACjG,KAAK,MAAM,MAAM,IAAI,OAAO;QAAE,MAAM,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;AACxE,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,KAA2B;IAC/D,MAAM,OAAO,GAAG,MAAM,YAAY,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IAClE,OAAO,mBAAmB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;AAC7C,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,KAA4B;IACjE,MAAM,OAAO,GAAG,MAAM,YAAY,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IAClE,OAAO,oBAAoB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;AAC9C,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,0BAA0B;IAC9C,OAAO,YAAY,EAAE,CAAC,SAAS,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;AAC3D,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@adonis-agora/media",
|
|
3
|
-
"version": "0.8.
|
|
3
|
+
"version": "0.8.2",
|
|
4
4
|
"description": "Media-library for AdonisJS — owner collections (MIME whitelist, single-file replace, ordering), image conversions (eager/lazy), and column attachments, all on top of @adonisjs/drive. Pluggable MediaStore (in-memory + Lucid) and ImageProcessor (sharp). Part of the Agora ecosystem.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|