@fairu/sdk 1.0.1
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 +16 -0
- package/README.md +447 -0
- package/dist/FairuClient-BUObk5LJ.cjs +91 -0
- package/dist/FairuClient-BUObk5LJ.cjs.map +1 -0
- package/dist/FairuClient-CT-IPh8i.js +92 -0
- package/dist/FairuClient-CT-IPh8i.js.map +1 -0
- package/dist/FairuError-D8sSmRAa.js +214 -0
- package/dist/FairuError-D8sSmRAa.js.map +1 -0
- package/dist/FairuError-DWH_Nwk0.cjs +213 -0
- package/dist/FairuError-DWH_Nwk0.cjs.map +1 -0
- package/dist/FairuProvider-BRpRddCI.cjs +51 -0
- package/dist/FairuProvider-BRpRddCI.cjs.map +1 -0
- package/dist/FairuProvider-Tc0vFo5L.js +52 -0
- package/dist/FairuProvider-Tc0vFo5L.js.map +1 -0
- package/dist/FileProxyBuilder-D-jZpAtd.cjs +269 -0
- package/dist/FileProxyBuilder-D-jZpAtd.cjs.map +1 -0
- package/dist/FileProxyBuilder-vHw1zBpJ.js +270 -0
- package/dist/FileProxyBuilder-vHw1zBpJ.js.map +1 -0
- package/dist/FragmentBuilder-BinoxeVS.js +194 -0
- package/dist/FragmentBuilder-BinoxeVS.js.map +1 -0
- package/dist/FragmentBuilder-BuvIC0aT.cjs +193 -0
- package/dist/FragmentBuilder-BuvIC0aT.cjs.map +1 -0
- package/dist/UploadError-CHBJuChw.cjs +81 -0
- package/dist/UploadError-CHBJuChw.cjs.map +1 -0
- package/dist/UploadError-_gEcJqSS.js +82 -0
- package/dist/UploadError-_gEcJqSS.js.map +1 -0
- package/dist/client/FairuClient.d.ts +8 -0
- package/dist/client/FairuClient.d.ts.map +1 -0
- package/dist/client/FairuProvider.d.ts +78 -0
- package/dist/client/FairuProvider.d.ts.map +1 -0
- package/dist/client/cache.d.ts +6 -0
- package/dist/client/cache.d.ts.map +1 -0
- package/dist/client/config.d.ts +77 -0
- package/dist/client/config.d.ts.map +1 -0
- package/dist/client/index.d.ts +5 -0
- package/dist/client/index.d.ts.map +1 -0
- package/dist/errors/FairuError.d.ts +107 -0
- package/dist/errors/FairuError.d.ts.map +1 -0
- package/dist/errors/UploadError.d.ts +54 -0
- package/dist/errors/UploadError.d.ts.map +1 -0
- package/dist/errors/index.d.ts +3 -0
- package/dist/errors/index.d.ts.map +1 -0
- package/dist/fileproxy/FileProxyBuilder.d.ts +141 -0
- package/dist/fileproxy/FileProxyBuilder.d.ts.map +1 -0
- package/dist/fileproxy/index.d.ts +4 -0
- package/dist/fileproxy/index.d.ts.map +1 -0
- package/dist/fileproxy/types.d.ts +79 -0
- package/dist/fileproxy/types.d.ts.map +1 -0
- package/dist/fileproxy/useFileProxyUrl.d.ts +91 -0
- package/dist/fileproxy/useFileProxyUrl.d.ts.map +1 -0
- package/dist/fileproxy.cjs +10 -0
- package/dist/fileproxy.cjs.map +1 -0
- package/dist/fileproxy.d.ts +2 -0
- package/dist/fileproxy.js +10 -0
- package/dist/fileproxy.js.map +1 -0
- package/dist/fragments/FragmentBuilder.d.ts +107 -0
- package/dist/fragments/FragmentBuilder.d.ts.map +1 -0
- package/dist/fragments/FragmentRegistry.d.ts +93 -0
- package/dist/fragments/FragmentRegistry.d.ts.map +1 -0
- package/dist/fragments/index.d.ts +5 -0
- package/dist/fragments/index.d.ts.map +1 -0
- package/dist/fragments/predefined/assetFragments.d.ts +39 -0
- package/dist/fragments/predefined/assetFragments.d.ts.map +1 -0
- package/dist/fragments/predefined/copyrightFragments.d.ts +12 -0
- package/dist/fragments/predefined/copyrightFragments.d.ts.map +1 -0
- package/dist/fragments/predefined/folderFragments.d.ts +28 -0
- package/dist/fragments/predefined/folderFragments.d.ts.map +1 -0
- package/dist/fragments/predefined/galleryFragments.d.ts +24 -0
- package/dist/fragments/predefined/galleryFragments.d.ts.map +1 -0
- package/dist/fragments/predefined/index.d.ts +6 -0
- package/dist/fragments/predefined/index.d.ts.map +1 -0
- package/dist/fragments/predefined/licenseFragments.d.ts +12 -0
- package/dist/fragments/predefined/licenseFragments.d.ts.map +1 -0
- package/dist/fragments/types.d.ts +46 -0
- package/dist/fragments/types.d.ts.map +1 -0
- package/dist/fragments.cjs +403 -0
- package/dist/fragments.cjs.map +1 -0
- package/dist/fragments.d.ts +2 -0
- package/dist/fragments.js +403 -0
- package/dist/fragments.js.map +1 -0
- package/dist/generated/graphql.d.ts +3464 -0
- package/dist/generated/graphql.d.ts.map +1 -0
- package/dist/hooks/index.d.ts +3 -0
- package/dist/hooks/index.d.ts.map +1 -0
- package/dist/hooks/mutations/index.d.ts +5 -0
- package/dist/hooks/mutations/index.d.ts.map +1 -0
- package/dist/hooks/mutations/useAssetMutations.d.ts +66 -0
- package/dist/hooks/mutations/useAssetMutations.d.ts.map +1 -0
- package/dist/hooks/mutations/useFolderMutations.d.ts +69 -0
- package/dist/hooks/mutations/useFolderMutations.d.ts.map +1 -0
- package/dist/hooks/mutations/useGalleryMutations.d.ts +39 -0
- package/dist/hooks/mutations/useGalleryMutations.d.ts.map +1 -0
- package/dist/hooks/mutations/useUpdateAsset.d.ts +50 -0
- package/dist/hooks/mutations/useUpdateAsset.d.ts.map +1 -0
- package/dist/hooks/queries/index.d.ts +8 -0
- package/dist/hooks/queries/index.d.ts.map +1 -0
- package/dist/hooks/queries/useAsset.d.ts +46 -0
- package/dist/hooks/queries/useAsset.d.ts.map +1 -0
- package/dist/hooks/queries/useAssets.d.ts +58 -0
- package/dist/hooks/queries/useAssets.d.ts.map +1 -0
- package/dist/hooks/queries/useCopyright.d.ts +51 -0
- package/dist/hooks/queries/useCopyright.d.ts.map +1 -0
- package/dist/hooks/queries/useFolder.d.ts +93 -0
- package/dist/hooks/queries/useFolder.d.ts.map +1 -0
- package/dist/hooks/queries/useGallery.d.ts +101 -0
- package/dist/hooks/queries/useGallery.d.ts.map +1 -0
- package/dist/hooks/queries/useLicense.d.ts +63 -0
- package/dist/hooks/queries/useLicense.d.ts.map +1 -0
- package/dist/hooks/queries/useTenant.d.ts +89 -0
- package/dist/hooks/queries/useTenant.d.ts.map +1 -0
- package/dist/index.cjs +244 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.ts +18 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +244 -0
- package/dist/index.js.map +1 -0
- package/dist/react.cjs +596 -0
- package/dist/react.cjs.map +1 -0
- package/dist/react.d.ts +22 -0
- package/dist/react.d.ts.map +1 -0
- package/dist/react.js +596 -0
- package/dist/react.js.map +1 -0
- package/dist/upload/index.d.ts +4 -0
- package/dist/upload/index.d.ts.map +1 -0
- package/dist/upload/types.d.ts +96 -0
- package/dist/upload/types.d.ts.map +1 -0
- package/dist/upload/useMultipartUpload.d.ts +67 -0
- package/dist/upload/useMultipartUpload.d.ts.map +1 -0
- package/dist/upload/useUpload.d.ts +64 -0
- package/dist/upload/useUpload.d.ts.map +1 -0
- package/dist/upload.cjs +6 -0
- package/dist/upload.cjs.map +1 -0
- package/dist/upload.d.ts +2 -0
- package/dist/upload.js +6 -0
- package/dist/upload.js.map +1 -0
- package/dist/useFileProxyUrl-BCcux6re.cjs +87 -0
- package/dist/useFileProxyUrl-BCcux6re.cjs.map +1 -0
- package/dist/useFileProxyUrl-D_S1R_7O.js +88 -0
- package/dist/useFileProxyUrl-D_S1R_7O.js.map +1 -0
- package/dist/useMultipartUpload-BKnDbl8h.cjs +423 -0
- package/dist/useMultipartUpload-BKnDbl8h.cjs.map +1 -0
- package/dist/useMultipartUpload-CPK_PgUU.js +424 -0
- package/dist/useMultipartUpload-CPK_PgUU.js.map +1 -0
- package/dist/vanilla.cjs +219 -0
- package/dist/vanilla.cjs.map +1 -0
- package/dist/vanilla.d.ts +94 -0
- package/dist/vanilla.d.ts.map +1 -0
- package/dist/vanilla.js +220 -0
- package/dist/vanilla.js.map +1 -0
- package/package.json +177 -0
|
@@ -0,0 +1,403 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
4
|
+
var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
|
|
5
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
6
|
+
const FragmentBuilder = require("./FragmentBuilder-BuvIC0aT.cjs");
|
|
7
|
+
const assetFragments = {
|
|
8
|
+
/**
|
|
9
|
+
* Get a fragment by variant name.
|
|
10
|
+
*/
|
|
11
|
+
get(variant = "default") {
|
|
12
|
+
switch (variant) {
|
|
13
|
+
case "minimal":
|
|
14
|
+
return this.minimal();
|
|
15
|
+
case "full":
|
|
16
|
+
return this.full();
|
|
17
|
+
default:
|
|
18
|
+
return this.default();
|
|
19
|
+
}
|
|
20
|
+
},
|
|
21
|
+
/**
|
|
22
|
+
* Minimal fragment with just id and name.
|
|
23
|
+
*/
|
|
24
|
+
minimal() {
|
|
25
|
+
return FragmentBuilder.FragmentBuilder.for("FairuAsset").name("AssetMinimal").select(["id", "name"]);
|
|
26
|
+
},
|
|
27
|
+
/**
|
|
28
|
+
* Default fragment with common fields.
|
|
29
|
+
*/
|
|
30
|
+
default() {
|
|
31
|
+
return FragmentBuilder.FragmentBuilder.for("FairuAsset").name("AssetDefault").select([
|
|
32
|
+
"id",
|
|
33
|
+
"name",
|
|
34
|
+
"mime",
|
|
35
|
+
"alt",
|
|
36
|
+
"caption",
|
|
37
|
+
"description",
|
|
38
|
+
"url",
|
|
39
|
+
"width",
|
|
40
|
+
"height",
|
|
41
|
+
"blurhash",
|
|
42
|
+
"focal_point",
|
|
43
|
+
"blocked",
|
|
44
|
+
"has_error",
|
|
45
|
+
"created_at",
|
|
46
|
+
"updated_at"
|
|
47
|
+
]);
|
|
48
|
+
},
|
|
49
|
+
/**
|
|
50
|
+
* Full fragment with all fields and relations.
|
|
51
|
+
*/
|
|
52
|
+
full() {
|
|
53
|
+
return FragmentBuilder.FragmentBuilder.for("FairuAsset").name("AssetFull").select([
|
|
54
|
+
"id",
|
|
55
|
+
"name",
|
|
56
|
+
"mime",
|
|
57
|
+
"alt",
|
|
58
|
+
"caption",
|
|
59
|
+
"description",
|
|
60
|
+
"copyright_text",
|
|
61
|
+
"url",
|
|
62
|
+
"width",
|
|
63
|
+
"height",
|
|
64
|
+
"original_width",
|
|
65
|
+
"original_height",
|
|
66
|
+
"blurhash",
|
|
67
|
+
"focal_point",
|
|
68
|
+
"blocked",
|
|
69
|
+
"has_error",
|
|
70
|
+
"size",
|
|
71
|
+
"versions",
|
|
72
|
+
"created_at",
|
|
73
|
+
"updated_at"
|
|
74
|
+
]).with(
|
|
75
|
+
"copyrights",
|
|
76
|
+
(f) => f.select(["id", "name", "email", "phone", "website", "active"])
|
|
77
|
+
).with(
|
|
78
|
+
"licenses",
|
|
79
|
+
(f) => f.select(["id", "name", "type", "start", "end", "active"])
|
|
80
|
+
);
|
|
81
|
+
},
|
|
82
|
+
/**
|
|
83
|
+
* Fragment with parameterized URL generation.
|
|
84
|
+
*/
|
|
85
|
+
withUrls(options) {
|
|
86
|
+
const builder = FragmentBuilder.FragmentBuilder.for("FairuAsset").name("AssetWithUrls").select([
|
|
87
|
+
"id",
|
|
88
|
+
"name",
|
|
89
|
+
"mime",
|
|
90
|
+
"alt",
|
|
91
|
+
"width",
|
|
92
|
+
"height",
|
|
93
|
+
"blurhash",
|
|
94
|
+
"focal_point"
|
|
95
|
+
]);
|
|
96
|
+
if (options && Object.keys(options).length > 0) {
|
|
97
|
+
builder.withArguments("url", {
|
|
98
|
+
width: options.width,
|
|
99
|
+
height: options.height,
|
|
100
|
+
quality: options.quality,
|
|
101
|
+
format: options.format,
|
|
102
|
+
fit: options.fit,
|
|
103
|
+
withStoredFocalPoint: options.withStoredFocalPoint ?? true
|
|
104
|
+
});
|
|
105
|
+
} else {
|
|
106
|
+
builder.field("url");
|
|
107
|
+
}
|
|
108
|
+
return builder;
|
|
109
|
+
}
|
|
110
|
+
};
|
|
111
|
+
const folderFragments = {
|
|
112
|
+
/**
|
|
113
|
+
* Get a fragment by variant name.
|
|
114
|
+
*/
|
|
115
|
+
get(variant = "default") {
|
|
116
|
+
switch (variant) {
|
|
117
|
+
case "minimal":
|
|
118
|
+
return this.minimal();
|
|
119
|
+
case "full":
|
|
120
|
+
return this.full();
|
|
121
|
+
default:
|
|
122
|
+
return this.default();
|
|
123
|
+
}
|
|
124
|
+
},
|
|
125
|
+
/**
|
|
126
|
+
* Minimal fragment with just id and name.
|
|
127
|
+
*/
|
|
128
|
+
minimal() {
|
|
129
|
+
return FragmentBuilder.FragmentBuilder.for("FairuFolder").name("FolderMinimal").select(["id", "name"]);
|
|
130
|
+
},
|
|
131
|
+
/**
|
|
132
|
+
* Default fragment with common fields.
|
|
133
|
+
*/
|
|
134
|
+
default() {
|
|
135
|
+
return FragmentBuilder.FragmentBuilder.for("FairuFolder").name("FolderDefault").select([
|
|
136
|
+
"id",
|
|
137
|
+
"name",
|
|
138
|
+
"parent_id",
|
|
139
|
+
"created_at",
|
|
140
|
+
"updated_at"
|
|
141
|
+
]);
|
|
142
|
+
},
|
|
143
|
+
/**
|
|
144
|
+
* Full fragment with all fields and relations.
|
|
145
|
+
*/
|
|
146
|
+
full() {
|
|
147
|
+
return FragmentBuilder.FragmentBuilder.for("FairuFolder").name("FolderFull").select([
|
|
148
|
+
"id",
|
|
149
|
+
"name",
|
|
150
|
+
"parent_id",
|
|
151
|
+
"auto_assign_copyright",
|
|
152
|
+
"created_at",
|
|
153
|
+
"updated_at"
|
|
154
|
+
]).with("parent", (f) => f.select(["id", "name"])).with("copyright", (f) => f.select(["id", "name"]));
|
|
155
|
+
},
|
|
156
|
+
/**
|
|
157
|
+
* Fragment with nested content (folders and assets).
|
|
158
|
+
*/
|
|
159
|
+
withContent() {
|
|
160
|
+
return FragmentBuilder.FragmentBuilder.for("FairuFolder").name("FolderWithContent").select([
|
|
161
|
+
"id",
|
|
162
|
+
"name",
|
|
163
|
+
"parent_id",
|
|
164
|
+
"created_at",
|
|
165
|
+
"updated_at"
|
|
166
|
+
]).with("folders", (f) => f.select(["id", "name", "parent_id"])).with(
|
|
167
|
+
"assets",
|
|
168
|
+
(f) => f.select([
|
|
169
|
+
"id",
|
|
170
|
+
"name",
|
|
171
|
+
"mime",
|
|
172
|
+
"url",
|
|
173
|
+
"width",
|
|
174
|
+
"height",
|
|
175
|
+
"blurhash"
|
|
176
|
+
])
|
|
177
|
+
);
|
|
178
|
+
}
|
|
179
|
+
};
|
|
180
|
+
const galleryFragments = {
|
|
181
|
+
/**
|
|
182
|
+
* Get a fragment by variant name.
|
|
183
|
+
*/
|
|
184
|
+
get(variant = "default") {
|
|
185
|
+
switch (variant) {
|
|
186
|
+
case "minimal":
|
|
187
|
+
return this.minimal();
|
|
188
|
+
case "full":
|
|
189
|
+
return this.full();
|
|
190
|
+
default:
|
|
191
|
+
return this.default();
|
|
192
|
+
}
|
|
193
|
+
},
|
|
194
|
+
/**
|
|
195
|
+
* Minimal fragment with just id and name.
|
|
196
|
+
*/
|
|
197
|
+
minimal() {
|
|
198
|
+
return FragmentBuilder.FragmentBuilder.for("FairuGallery").name("GalleryMinimal").select(["id", "name"]);
|
|
199
|
+
},
|
|
200
|
+
/**
|
|
201
|
+
* Default fragment with common fields.
|
|
202
|
+
*/
|
|
203
|
+
default() {
|
|
204
|
+
return FragmentBuilder.FragmentBuilder.for("FairuGallery").name("GalleryDefault").select([
|
|
205
|
+
"id",
|
|
206
|
+
"name",
|
|
207
|
+
"description",
|
|
208
|
+
"public",
|
|
209
|
+
"sorting_field",
|
|
210
|
+
"sorting_direction",
|
|
211
|
+
"created_at",
|
|
212
|
+
"updated_at"
|
|
213
|
+
]);
|
|
214
|
+
},
|
|
215
|
+
/**
|
|
216
|
+
* Full fragment with all fields and relations.
|
|
217
|
+
*/
|
|
218
|
+
full() {
|
|
219
|
+
return FragmentBuilder.FragmentBuilder.for("FairuGallery").name("GalleryFull").select([
|
|
220
|
+
"id",
|
|
221
|
+
"name",
|
|
222
|
+
"description",
|
|
223
|
+
"public",
|
|
224
|
+
"sorting_field",
|
|
225
|
+
"sorting_direction",
|
|
226
|
+
"share_link",
|
|
227
|
+
"created_at",
|
|
228
|
+
"updated_at"
|
|
229
|
+
]).with(
|
|
230
|
+
"items",
|
|
231
|
+
(f) => f.select([
|
|
232
|
+
"id",
|
|
233
|
+
"name",
|
|
234
|
+
"mime",
|
|
235
|
+
"url",
|
|
236
|
+
"width",
|
|
237
|
+
"height",
|
|
238
|
+
"blurhash"
|
|
239
|
+
])
|
|
240
|
+
);
|
|
241
|
+
}
|
|
242
|
+
};
|
|
243
|
+
const copyrightFragments = {
|
|
244
|
+
get(variant = "default") {
|
|
245
|
+
switch (variant) {
|
|
246
|
+
case "minimal":
|
|
247
|
+
return this.minimal();
|
|
248
|
+
case "full":
|
|
249
|
+
return this.full();
|
|
250
|
+
default:
|
|
251
|
+
return this.default();
|
|
252
|
+
}
|
|
253
|
+
},
|
|
254
|
+
minimal() {
|
|
255
|
+
return FragmentBuilder.FragmentBuilder.for("FairuCopyright").name("CopyrightMinimal").select(["id", "name"]);
|
|
256
|
+
},
|
|
257
|
+
default() {
|
|
258
|
+
return FragmentBuilder.FragmentBuilder.for("FairuCopyright").name("CopyrightDefault").select(["id", "name", "email", "phone", "website", "active"]);
|
|
259
|
+
},
|
|
260
|
+
full() {
|
|
261
|
+
return FragmentBuilder.FragmentBuilder.for("FairuCopyright").name("CopyrightFull").select([
|
|
262
|
+
"id",
|
|
263
|
+
"name",
|
|
264
|
+
"email",
|
|
265
|
+
"phone",
|
|
266
|
+
"website",
|
|
267
|
+
"active",
|
|
268
|
+
"created_at",
|
|
269
|
+
"updated_at"
|
|
270
|
+
]);
|
|
271
|
+
}
|
|
272
|
+
};
|
|
273
|
+
const licenseFragments = {
|
|
274
|
+
get(variant = "default") {
|
|
275
|
+
switch (variant) {
|
|
276
|
+
case "minimal":
|
|
277
|
+
return this.minimal();
|
|
278
|
+
case "full":
|
|
279
|
+
return this.full();
|
|
280
|
+
default:
|
|
281
|
+
return this.default();
|
|
282
|
+
}
|
|
283
|
+
},
|
|
284
|
+
minimal() {
|
|
285
|
+
return FragmentBuilder.FragmentBuilder.for("FairuLicense").name("LicenseMinimal").select(["id", "name"]);
|
|
286
|
+
},
|
|
287
|
+
default() {
|
|
288
|
+
return FragmentBuilder.FragmentBuilder.for("FairuLicense").name("LicenseDefault").select(["id", "name", "type", "start", "end", "active"]);
|
|
289
|
+
},
|
|
290
|
+
full() {
|
|
291
|
+
return FragmentBuilder.FragmentBuilder.for("FairuLicense").name("LicenseFull").select([
|
|
292
|
+
"id",
|
|
293
|
+
"name",
|
|
294
|
+
"type",
|
|
295
|
+
"start",
|
|
296
|
+
"end",
|
|
297
|
+
"active",
|
|
298
|
+
"replaces",
|
|
299
|
+
"created_at",
|
|
300
|
+
"updated_at"
|
|
301
|
+
]);
|
|
302
|
+
}
|
|
303
|
+
};
|
|
304
|
+
class FragmentRegistry {
|
|
305
|
+
constructor() {
|
|
306
|
+
__publicField(this, "customFragments", /* @__PURE__ */ new Map());
|
|
307
|
+
}
|
|
308
|
+
/**
|
|
309
|
+
* Get an asset fragment by variant.
|
|
310
|
+
*/
|
|
311
|
+
asset(variant = "default") {
|
|
312
|
+
return assetFragments.get(variant);
|
|
313
|
+
}
|
|
314
|
+
/**
|
|
315
|
+
* Get an asset fragment with custom URL options.
|
|
316
|
+
*/
|
|
317
|
+
assetWithUrls(options) {
|
|
318
|
+
return assetFragments.withUrls(options);
|
|
319
|
+
}
|
|
320
|
+
/**
|
|
321
|
+
* Get a folder fragment by variant.
|
|
322
|
+
*/
|
|
323
|
+
folder(variant = "default") {
|
|
324
|
+
return folderFragments.get(variant);
|
|
325
|
+
}
|
|
326
|
+
/**
|
|
327
|
+
* Get a folder fragment with content.
|
|
328
|
+
*/
|
|
329
|
+
folderWithContent() {
|
|
330
|
+
return folderFragments.withContent();
|
|
331
|
+
}
|
|
332
|
+
/**
|
|
333
|
+
* Get a gallery fragment by variant.
|
|
334
|
+
*/
|
|
335
|
+
gallery(variant = "default") {
|
|
336
|
+
return galleryFragments.get(variant);
|
|
337
|
+
}
|
|
338
|
+
/**
|
|
339
|
+
* Get a copyright fragment by variant.
|
|
340
|
+
*/
|
|
341
|
+
copyright(variant = "default") {
|
|
342
|
+
return copyrightFragments.get(variant);
|
|
343
|
+
}
|
|
344
|
+
/**
|
|
345
|
+
* Get a license fragment by variant.
|
|
346
|
+
*/
|
|
347
|
+
license(variant = "default") {
|
|
348
|
+
return licenseFragments.get(variant);
|
|
349
|
+
}
|
|
350
|
+
/**
|
|
351
|
+
* Register a custom fragment.
|
|
352
|
+
*/
|
|
353
|
+
register(name, fragment) {
|
|
354
|
+
this.customFragments.set(name, fragment);
|
|
355
|
+
return this;
|
|
356
|
+
}
|
|
357
|
+
/**
|
|
358
|
+
* Get a custom fragment by name.
|
|
359
|
+
*/
|
|
360
|
+
get(name) {
|
|
361
|
+
return this.customFragments.get(name);
|
|
362
|
+
}
|
|
363
|
+
/**
|
|
364
|
+
* Check if a custom fragment exists.
|
|
365
|
+
*/
|
|
366
|
+
has(name) {
|
|
367
|
+
return this.customFragments.has(name);
|
|
368
|
+
}
|
|
369
|
+
/**
|
|
370
|
+
* Remove a custom fragment.
|
|
371
|
+
*/
|
|
372
|
+
remove(name) {
|
|
373
|
+
return this.customFragments.delete(name);
|
|
374
|
+
}
|
|
375
|
+
/**
|
|
376
|
+
* Clear all custom fragments.
|
|
377
|
+
*/
|
|
378
|
+
clear() {
|
|
379
|
+
this.customFragments.clear();
|
|
380
|
+
}
|
|
381
|
+
/**
|
|
382
|
+
* Get all custom fragment names.
|
|
383
|
+
*/
|
|
384
|
+
getCustomFragmentNames() {
|
|
385
|
+
return Array.from(this.customFragments.keys());
|
|
386
|
+
}
|
|
387
|
+
/**
|
|
388
|
+
* Create a new FragmentBuilder.
|
|
389
|
+
*/
|
|
390
|
+
builder(typeName) {
|
|
391
|
+
return FragmentBuilder.FragmentBuilder.for(typeName);
|
|
392
|
+
}
|
|
393
|
+
}
|
|
394
|
+
const fragments = new FragmentRegistry();
|
|
395
|
+
exports.FragmentBuilder = FragmentBuilder.FragmentBuilder;
|
|
396
|
+
exports.FragmentRegistry = FragmentRegistry;
|
|
397
|
+
exports.assetFragments = assetFragments;
|
|
398
|
+
exports.copyrightFragments = copyrightFragments;
|
|
399
|
+
exports.folderFragments = folderFragments;
|
|
400
|
+
exports.fragments = fragments;
|
|
401
|
+
exports.galleryFragments = galleryFragments;
|
|
402
|
+
exports.licenseFragments = licenseFragments;
|
|
403
|
+
//# sourceMappingURL=fragments.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fragments.cjs","sources":["../src/fragments/predefined/assetFragments.ts","../src/fragments/predefined/folderFragments.ts","../src/fragments/predefined/galleryFragments.ts","../src/fragments/predefined/copyrightFragments.ts","../src/fragments/predefined/licenseFragments.ts","../src/fragments/FragmentRegistry.ts"],"sourcesContent":["import { FragmentBuilder } from '../FragmentBuilder';\nimport type { FragmentInterface, FragmentVariant } from '../types';\n\n/**\n * URL generation options for asset fragments.\n */\nexport interface AssetUrlOptions {\n width?: number;\n height?: number;\n quality?: number;\n format?: 'jpg' | 'jpeg' | 'png' | 'webp';\n fit?: 'cover' | 'contain';\n withStoredFocalPoint?: boolean;\n}\n\n/**\n * Predefined fragments for FairuAsset.\n */\nexport const assetFragments = {\n /**\n * Get a fragment by variant name.\n */\n get(variant: FragmentVariant = 'default'): FragmentInterface {\n switch (variant) {\n case 'minimal':\n return this.minimal();\n case 'full':\n return this.full();\n default:\n return this.default();\n }\n },\n\n /**\n * Minimal fragment with just id and name.\n */\n minimal(): FragmentBuilder {\n return FragmentBuilder.for('FairuAsset')\n .name('AssetMinimal')\n .select(['id', 'name']);\n },\n\n /**\n * Default fragment with common fields.\n */\n default(): FragmentBuilder {\n return FragmentBuilder.for('FairuAsset')\n .name('AssetDefault')\n .select([\n 'id',\n 'name',\n 'mime',\n 'alt',\n 'caption',\n 'description',\n 'url',\n 'width',\n 'height',\n 'blurhash',\n 'focal_point',\n 'blocked',\n 'has_error',\n 'created_at',\n 'updated_at',\n ]);\n },\n\n /**\n * Full fragment with all fields and relations.\n */\n full(): FragmentBuilder {\n return FragmentBuilder.for('FairuAsset')\n .name('AssetFull')\n .select([\n 'id',\n 'name',\n 'mime',\n 'alt',\n 'caption',\n 'description',\n 'copyright_text',\n 'url',\n 'width',\n 'height',\n 'original_width',\n 'original_height',\n 'blurhash',\n 'focal_point',\n 'blocked',\n 'has_error',\n 'size',\n 'versions',\n 'created_at',\n 'updated_at',\n ])\n .with('copyrights', (f) =>\n f.select(['id', 'name', 'email', 'phone', 'website', 'active'])\n )\n .with('licenses', (f) =>\n f.select(['id', 'name', 'type', 'start', 'end', 'active'])\n );\n },\n\n /**\n * Fragment with parameterized URL generation.\n */\n withUrls(options?: AssetUrlOptions): FragmentBuilder {\n const builder = FragmentBuilder.for('FairuAsset')\n .name('AssetWithUrls')\n .select([\n 'id',\n 'name',\n 'mime',\n 'alt',\n 'width',\n 'height',\n 'blurhash',\n 'focal_point',\n ]);\n\n if (options && Object.keys(options).length > 0) {\n builder.withArguments('url', {\n width: options.width,\n height: options.height,\n quality: options.quality,\n format: options.format,\n fit: options.fit,\n withStoredFocalPoint: options.withStoredFocalPoint ?? true,\n });\n } else {\n builder.field('url');\n }\n\n return builder;\n },\n};\n","import { FragmentBuilder } from '../FragmentBuilder';\nimport type { FragmentInterface, FragmentVariant } from '../types';\n\n/**\n * Predefined fragments for FairuFolder.\n */\nexport const folderFragments = {\n /**\n * Get a fragment by variant name.\n */\n get(variant: FragmentVariant = 'default'): FragmentInterface {\n switch (variant) {\n case 'minimal':\n return this.minimal();\n case 'full':\n return this.full();\n default:\n return this.default();\n }\n },\n\n /**\n * Minimal fragment with just id and name.\n */\n minimal(): FragmentBuilder {\n return FragmentBuilder.for('FairuFolder')\n .name('FolderMinimal')\n .select(['id', 'name']);\n },\n\n /**\n * Default fragment with common fields.\n */\n default(): FragmentBuilder {\n return FragmentBuilder.for('FairuFolder')\n .name('FolderDefault')\n .select([\n 'id',\n 'name',\n 'parent_id',\n 'created_at',\n 'updated_at',\n ]);\n },\n\n /**\n * Full fragment with all fields and relations.\n */\n full(): FragmentBuilder {\n return FragmentBuilder.for('FairuFolder')\n .name('FolderFull')\n .select([\n 'id',\n 'name',\n 'parent_id',\n 'auto_assign_copyright',\n 'created_at',\n 'updated_at',\n ])\n .with('parent', (f) => f.select(['id', 'name']))\n .with('copyright', (f) => f.select(['id', 'name']));\n },\n\n /**\n * Fragment with nested content (folders and assets).\n */\n withContent(): FragmentBuilder {\n return FragmentBuilder.for('FairuFolder')\n .name('FolderWithContent')\n .select([\n 'id',\n 'name',\n 'parent_id',\n 'created_at',\n 'updated_at',\n ])\n .with('folders', (f) => f.select(['id', 'name', 'parent_id']))\n .with('assets', (f) =>\n f.select([\n 'id',\n 'name',\n 'mime',\n 'url',\n 'width',\n 'height',\n 'blurhash',\n ])\n );\n },\n};\n","import { FragmentBuilder } from '../FragmentBuilder';\nimport type { FragmentInterface, FragmentVariant } from '../types';\n\n/**\n * Predefined fragments for FairuGallery.\n */\nexport const galleryFragments = {\n /**\n * Get a fragment by variant name.\n */\n get(variant: FragmentVariant = 'default'): FragmentInterface {\n switch (variant) {\n case 'minimal':\n return this.minimal();\n case 'full':\n return this.full();\n default:\n return this.default();\n }\n },\n\n /**\n * Minimal fragment with just id and name.\n */\n minimal(): FragmentBuilder {\n return FragmentBuilder.for('FairuGallery')\n .name('GalleryMinimal')\n .select(['id', 'name']);\n },\n\n /**\n * Default fragment with common fields.\n */\n default(): FragmentBuilder {\n return FragmentBuilder.for('FairuGallery')\n .name('GalleryDefault')\n .select([\n 'id',\n 'name',\n 'description',\n 'public',\n 'sorting_field',\n 'sorting_direction',\n 'created_at',\n 'updated_at',\n ]);\n },\n\n /**\n * Full fragment with all fields and relations.\n */\n full(): FragmentBuilder {\n return FragmentBuilder.for('FairuGallery')\n .name('GalleryFull')\n .select([\n 'id',\n 'name',\n 'description',\n 'public',\n 'sorting_field',\n 'sorting_direction',\n 'share_link',\n 'created_at',\n 'updated_at',\n ])\n .with('items', (f) =>\n f.select([\n 'id',\n 'name',\n 'mime',\n 'url',\n 'width',\n 'height',\n 'blurhash',\n ])\n );\n },\n};\n","import { FragmentBuilder } from '../FragmentBuilder';\nimport type { FragmentInterface, FragmentVariant } from '../types';\n\n/**\n * Predefined fragments for FairuCopyright.\n */\nexport const copyrightFragments = {\n get(variant: FragmentVariant = 'default'): FragmentInterface {\n switch (variant) {\n case 'minimal':\n return this.minimal();\n case 'full':\n return this.full();\n default:\n return this.default();\n }\n },\n\n minimal(): FragmentBuilder {\n return FragmentBuilder.for('FairuCopyright')\n .name('CopyrightMinimal')\n .select(['id', 'name']);\n },\n\n default(): FragmentBuilder {\n return FragmentBuilder.for('FairuCopyright')\n .name('CopyrightDefault')\n .select(['id', 'name', 'email', 'phone', 'website', 'active']);\n },\n\n full(): FragmentBuilder {\n return FragmentBuilder.for('FairuCopyright')\n .name('CopyrightFull')\n .select([\n 'id',\n 'name',\n 'email',\n 'phone',\n 'website',\n 'active',\n 'created_at',\n 'updated_at',\n ]);\n },\n};\n","import { FragmentBuilder } from '../FragmentBuilder';\nimport type { FragmentInterface, FragmentVariant } from '../types';\n\n/**\n * Predefined fragments for FairuLicense.\n */\nexport const licenseFragments = {\n get(variant: FragmentVariant = 'default'): FragmentInterface {\n switch (variant) {\n case 'minimal':\n return this.minimal();\n case 'full':\n return this.full();\n default:\n return this.default();\n }\n },\n\n minimal(): FragmentBuilder {\n return FragmentBuilder.for('FairuLicense')\n .name('LicenseMinimal')\n .select(['id', 'name']);\n },\n\n default(): FragmentBuilder {\n return FragmentBuilder.for('FairuLicense')\n .name('LicenseDefault')\n .select(['id', 'name', 'type', 'start', 'end', 'active']);\n },\n\n full(): FragmentBuilder {\n return FragmentBuilder.for('FairuLicense')\n .name('LicenseFull')\n .select([\n 'id',\n 'name',\n 'type',\n 'start',\n 'end',\n 'active',\n 'replaces',\n 'created_at',\n 'updated_at',\n ]);\n },\n};\n","import { FragmentBuilder } from './FragmentBuilder';\nimport type { FragmentInterface, FragmentVariant } from './types';\nimport {\n assetFragments,\n folderFragments,\n galleryFragments,\n copyrightFragments,\n licenseFragments,\n} from './predefined';\n\n/**\n * Registry for managing and accessing GraphQL fragments.\n *\n * @example\n * ```typescript\n * const fragments = new FragmentRegistry();\n *\n * // Use predefined fragments\n * const assetFragment = fragments.asset('full');\n *\n * // Register custom fragments\n * fragments.register('myCustomAsset',\n * FragmentBuilder.for('FairuAsset')\n * .select(['id', 'name', 'custom_field'])\n * );\n *\n * // Get custom fragment\n * const custom = fragments.get('myCustomAsset');\n * ```\n */\nexport class FragmentRegistry {\n private customFragments: Map<string, FragmentInterface> = new Map();\n\n /**\n * Get an asset fragment by variant.\n */\n asset(variant: FragmentVariant = 'default'): FragmentInterface {\n return assetFragments.get(variant);\n }\n\n /**\n * Get an asset fragment with custom URL options.\n */\n assetWithUrls(options?: {\n width?: number;\n height?: number;\n quality?: number;\n format?: 'jpg' | 'jpeg' | 'png' | 'webp';\n fit?: 'cover' | 'contain';\n withStoredFocalPoint?: boolean;\n }): FragmentInterface {\n return assetFragments.withUrls(options);\n }\n\n /**\n * Get a folder fragment by variant.\n */\n folder(variant: FragmentVariant = 'default'): FragmentInterface {\n return folderFragments.get(variant);\n }\n\n /**\n * Get a folder fragment with content.\n */\n folderWithContent(): FragmentInterface {\n return folderFragments.withContent();\n }\n\n /**\n * Get a gallery fragment by variant.\n */\n gallery(variant: FragmentVariant = 'default'): FragmentInterface {\n return galleryFragments.get(variant);\n }\n\n /**\n * Get a copyright fragment by variant.\n */\n copyright(variant: FragmentVariant = 'default'): FragmentInterface {\n return copyrightFragments.get(variant);\n }\n\n /**\n * Get a license fragment by variant.\n */\n license(variant: FragmentVariant = 'default'): FragmentInterface {\n return licenseFragments.get(variant);\n }\n\n /**\n * Register a custom fragment.\n */\n register(name: string, fragment: FragmentInterface): this {\n this.customFragments.set(name, fragment);\n return this;\n }\n\n /**\n * Get a custom fragment by name.\n */\n get(name: string): FragmentInterface | undefined {\n return this.customFragments.get(name);\n }\n\n /**\n * Check if a custom fragment exists.\n */\n has(name: string): boolean {\n return this.customFragments.has(name);\n }\n\n /**\n * Remove a custom fragment.\n */\n remove(name: string): boolean {\n return this.customFragments.delete(name);\n }\n\n /**\n * Clear all custom fragments.\n */\n clear(): void {\n this.customFragments.clear();\n }\n\n /**\n * Get all custom fragment names.\n */\n getCustomFragmentNames(): string[] {\n return Array.from(this.customFragments.keys());\n }\n\n /**\n * Create a new FragmentBuilder.\n */\n builder(typeName: string): FragmentBuilder {\n return FragmentBuilder.for(typeName);\n }\n}\n\n/**\n * Default fragment registry instance.\n */\nexport const fragments = new FragmentRegistry();\n"],"names":["FragmentBuilder"],"mappings":"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"}
|