@carlonicora/nextjs-jsonapi 5.3.0 → 5.4.0
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/dist/{BlockNoteEditor-UJ6363LC.js → BlockNoteEditor-4YCAIEPT.js} +23 -22
- package/dist/BlockNoteEditor-4YCAIEPT.js.map +1 -0
- package/dist/{BlockNoteEditor-WTSQANKI.mjs → BlockNoteEditor-YQL2SGFR.mjs} +8 -7
- package/dist/BlockNoteEditor-YQL2SGFR.mjs.map +1 -0
- package/dist/{BlockNoteViewer-JVKWJZ6J.mjs → BlockNoteViewer-AEJKJ27Q.mjs} +2 -2
- package/dist/{BlockNoteViewer-EL4JFB6P.js → BlockNoteViewer-YL3J7J2Y.js} +3 -3
- package/dist/{BlockNoteViewer-EL4JFB6P.js.map → BlockNoteViewer-YL3J7J2Y.js.map} +1 -1
- package/dist/BlogCategoryFields-DO48vOTE.d.mts +14 -0
- package/dist/BlogCategoryFields-DO48vOTE.d.ts +14 -0
- package/dist/BlogPostInterface-BB_4wcDR.d.mts +124 -0
- package/dist/BlogPostInterface-bWAT1rfR.d.ts +124 -0
- package/dist/billing/index.js +441 -441
- package/dist/billing/index.mjs +3 -3
- package/dist/blog-public.types-BbrzsC1c.d.mts +30 -0
- package/dist/blog-public.types-BbrzsC1c.d.ts +30 -0
- package/dist/{chunk-3BAM23VA.js → chunk-3NLAXVIN.js} +860 -849
- package/dist/chunk-3NLAXVIN.js.map +1 -0
- package/dist/{chunk-QKZUE5OF.mjs → chunk-3YW35YHQ.mjs} +1 -101
- package/dist/chunk-3YW35YHQ.mjs.map +1 -0
- package/dist/{chunk-QQQE3N2X.js → chunk-5PPG6PL7.js} +3 -3
- package/dist/{chunk-QQQE3N2X.js.map → chunk-5PPG6PL7.js.map} +1 -1
- package/dist/{chunk-FNTQQFLH.mjs → chunk-6DC2WVVB.mjs} +2 -2
- package/dist/{chunk-MIZTWBPX.mjs → chunk-EUKTBOI2.mjs} +19 -8
- package/dist/chunk-EUKTBOI2.mjs.map +1 -0
- package/dist/{chunk-XGTQWBDJ.js → chunk-KSYQEKJX.js} +11 -111
- package/dist/chunk-KSYQEKJX.js.map +1 -0
- package/dist/{chunk-CRI4T47Y.js → chunk-NFBOSPNJ.js} +756 -41
- package/dist/chunk-NFBOSPNJ.js.map +1 -0
- package/dist/{chunk-6WU74VFU.mjs → chunk-QMYQRPQC.mjs} +2 -2
- package/dist/{chunk-JQWI62NV.mjs → chunk-WC63PJSC.mjs} +716 -1
- package/dist/chunk-WC63PJSC.mjs.map +1 -0
- package/dist/chunk-XCHSX3VC.mjs +107 -0
- package/dist/chunk-XCHSX3VC.mjs.map +1 -0
- package/dist/{chunk-EO75CV76.js → chunk-YNCQSWQW.js} +8 -8
- package/dist/{chunk-EO75CV76.js.map → chunk-YNCQSWQW.js.map} +1 -1
- package/dist/chunk-YW4ZCEWB.js +107 -0
- package/dist/chunk-YW4ZCEWB.js.map +1 -0
- package/dist/client/index.js +4 -4
- package/dist/client/index.mjs +3 -3
- package/dist/components/index.d.mts +13 -2
- package/dist/components/index.d.ts +13 -2
- package/dist/components/index.js +4 -4
- package/dist/components/index.mjs +3 -3
- package/dist/contexts/index.js +4 -4
- package/dist/contexts/index.mjs +3 -3
- package/dist/core/index.d.mts +214 -3
- package/dist/core/index.d.ts +214 -3
- package/dist/core/index.js +36 -2
- package/dist/core/index.js.map +1 -1
- package/dist/core/index.mjs +35 -1
- package/dist/email-automations/index.js +92 -92
- package/dist/email-automations/index.mjs +3 -3
- package/dist/features/analytics/index.js +122 -122
- package/dist/features/analytics/index.mjs +4 -4
- package/dist/features/analytics/server.js +6 -5
- package/dist/features/analytics/server.js.map +1 -1
- package/dist/features/analytics/server.mjs +4 -3
- package/dist/features/analytics/server.mjs.map +1 -1
- package/dist/features/blog/index.css +30 -0
- package/dist/features/blog/index.css.map +1 -0
- package/dist/features/blog/index.d.mts +266 -0
- package/dist/features/blog/index.d.ts +266 -0
- package/dist/features/blog/index.js +1799 -0
- package/dist/features/blog/index.js.map +1 -0
- package/dist/features/blog/index.mjs +1799 -0
- package/dist/features/blog/index.mjs.map +1 -0
- package/dist/features/blog/server.d.mts +33 -0
- package/dist/features/blog/server.d.ts +33 -0
- package/dist/features/blog/server.js +139 -0
- package/dist/features/blog/server.js.map +1 -0
- package/dist/features/blog/server.mjs +139 -0
- package/dist/features/blog/server.mjs.map +1 -0
- package/dist/features/help/index.js +37 -37
- package/dist/features/help/index.mjs +3 -3
- package/dist/features/tokenusage/index.js +125 -125
- package/dist/features/tokenusage/index.mjs +4 -4
- package/dist/index.d.mts +4 -2
- package/dist/index.d.ts +4 -2
- package/dist/index.js +37 -3
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +36 -2
- package/dist/{s3.service-CY-jgOAM.d.ts → s3.service-Bz_K-tjz.d.ts} +11 -0
- package/dist/{s3.service-Sri0QP7Z.d.mts → s3.service-D5zNCEW3.d.mts} +11 -0
- package/dist/server/index.d.mts +1 -1
- package/dist/server/index.d.ts +1 -1
- package/dist/server/index.js +8 -6
- package/dist/server/index.js.map +1 -1
- package/dist/server/index.mjs +12 -10
- package/messages/en.json +93 -0
- package/messages/it.json +93 -0
- package/package.json +11 -1
- package/src/components/editors/BlockNoteEditor.tsx +13 -3
- package/src/components/forms/FormBlockNote.tsx +4 -0
- package/src/components/navigations/ContentTitle.tsx +14 -3
- package/src/core/index.ts +4 -0
- package/src/core/registry/ModuleRegistry.ts +6 -0
- package/src/features/blog/BlogModules.ts +49 -0
- package/src/features/blog/components/admin/BlogAdminContainer.tsx +32 -0
- package/src/features/blog/components/admin/BlogCategoriesList.tsx +56 -0
- package/src/features/blog/components/admin/BlogCategoryEditor.tsx +230 -0
- package/src/features/blog/components/admin/BlogCoverImageField.tsx +123 -0
- package/src/features/blog/components/admin/BlogLayoutSetting.tsx +86 -0
- package/src/features/blog/components/admin/BlogPostComparison.tsx +54 -0
- package/src/features/blog/components/admin/BlogPostContainer.tsx +102 -0
- package/src/features/blog/components/admin/BlogPostDeleter.tsx +35 -0
- package/src/features/blog/components/admin/BlogPostEditor.tsx +207 -0
- package/src/features/blog/components/admin/BlogPostPublishButton.tsx +50 -0
- package/src/features/blog/components/admin/BlogPostTranslationEditor.tsx +110 -0
- package/src/features/blog/components/admin/BlogPostTranslationPanel.tsx +136 -0
- package/src/features/blog/components/admin/BlogPostsList.tsx +58 -0
- package/src/features/blog/components/admin/BlogTranslationStatus.tsx +104 -0
- package/src/features/blog/components/admin/__tests__/BlogPostTranslationPanel.spec.tsx +100 -0
- package/src/features/blog/components/admin/__tests__/BlogPostsList.spec.tsx +30 -0
- package/src/features/blog/components/admin/index.ts +14 -0
- package/src/features/blog/components/public/BlogCategoryChips.tsx +59 -0
- package/src/features/blog/components/public/BlogList.tsx +21 -0
- package/src/features/blog/components/public/BlogListColumn.tsx +53 -0
- package/src/features/blog/components/public/BlogListFeatured.tsx +57 -0
- package/src/features/blog/components/public/BlogListParts.tsx +74 -0
- package/src/features/blog/components/public/BlogListRail.tsx +62 -0
- package/src/features/blog/components/public/BlogPostCard.tsx +132 -0
- package/src/features/blog/components/public/BlogPostMeta.tsx +49 -0
- package/src/features/blog/components/public/BlogPostView.tsx +74 -0
- package/src/features/blog/components/public/BlogSearchBox.tsx +52 -0
- package/src/features/blog/components/public/__tests__/BlogList.spec.tsx +173 -0
- package/src/features/blog/components/public/__tests__/BlogPostView.spec.tsx +128 -0
- package/src/features/blog/components/public/blogPublicHelpers.ts +30 -0
- package/src/features/blog/components/public/index.ts +3 -0
- package/src/features/blog/contexts/BlogPostContext.tsx +66 -0
- package/src/features/blog/contexts/index.ts +1 -0
- package/src/features/blog/data/BlogCategory.ts +93 -0
- package/src/features/blog/data/BlogCategoryFields.ts +4 -0
- package/src/features/blog/data/BlogCategoryInterface.ts +24 -0
- package/src/features/blog/data/BlogCategoryService.ts +54 -0
- package/src/features/blog/data/BlogCategoryTranslation.ts +90 -0
- package/src/features/blog/data/BlogCategoryTranslationInterface.ts +22 -0
- package/src/features/blog/data/BlogCategoryTranslationService.ts +30 -0
- package/src/features/blog/data/BlogPost.spec.ts +123 -0
- package/src/features/blog/data/BlogPost.ts +159 -0
- package/src/features/blog/data/BlogPostFields.ts +7 -0
- package/src/features/blog/data/BlogPostInterface.ts +39 -0
- package/src/features/blog/data/BlogPostService.ts +82 -0
- package/src/features/blog/data/BlogPostTranslation.spec.ts +73 -0
- package/src/features/blog/data/BlogPostTranslation.ts +110 -0
- package/src/features/blog/data/BlogPostTranslationInterface.ts +27 -0
- package/src/features/blog/data/BlogPostTranslationService.ts +30 -0
- package/src/features/blog/data/BlogSettings.ts +37 -0
- package/src/features/blog/data/BlogSettingsInterface.ts +11 -0
- package/src/features/blog/data/BlogSettingsService.ts +24 -0
- package/src/features/blog/data/index.ts +17 -0
- package/src/features/blog/hooks/index.ts +3 -0
- package/src/features/blog/hooks/useBlogCategoryNames.ts +34 -0
- package/src/features/blog/hooks/useBlogCategoryTableStructure.tsx +84 -0
- package/src/features/blog/hooks/useBlogPostTableStructure.tsx +126 -0
- package/src/features/blog/index.ts +15 -0
- package/src/features/blog/server/fetchers.ts +120 -0
- package/src/features/blog/server/toPublic.spec.ts +91 -0
- package/src/features/blog/server/toPublic.ts +36 -0
- package/src/features/blog/server-entry.ts +17 -0
- package/src/features/blog/types/blog-public.types.ts +34 -0
- package/src/features/blog/types/blog.constants.ts +40 -0
- package/src/features/s3/data/s3.service.ts +17 -0
- package/dist/BlockNoteEditor-UJ6363LC.js.map +0 -1
- package/dist/BlockNoteEditor-WTSQANKI.mjs.map +0 -1
- package/dist/chunk-3BAM23VA.js.map +0 -1
- package/dist/chunk-CRI4T47Y.js.map +0 -1
- package/dist/chunk-JQWI62NV.mjs.map +0 -1
- package/dist/chunk-MIZTWBPX.mjs.map +0 -1
- package/dist/chunk-QKZUE5OF.mjs.map +0 -1
- package/dist/chunk-XGTQWBDJ.js.map +0 -1
- /package/dist/{BlockNoteViewer-JVKWJZ6J.mjs.map → BlockNoteViewer-AEJKJ27Q.mjs.map} +0 -0
- /package/dist/{chunk-FNTQQFLH.mjs.map → chunk-6DC2WVVB.mjs.map} +0 -0
- /package/dist/{chunk-6WU74VFU.mjs.map → chunk-QMYQRPQC.mjs.map} +0 -0
|
@@ -6711,6 +6711,679 @@ var EmailAutomationEnrollmentFields = /* @__PURE__ */ ((EmailAutomationEnrollmen
|
|
|
6711
6711
|
return EmailAutomationEnrollmentFields2;
|
|
6712
6712
|
})(EmailAutomationEnrollmentFields || {});
|
|
6713
6713
|
|
|
6714
|
+
// src/features/blog/BlogModules.ts
|
|
6715
|
+
import { NewspaperIcon } from "lucide-react";
|
|
6716
|
+
|
|
6717
|
+
// src/features/blog/data/BlogCategory.ts
|
|
6718
|
+
var BlogCategory = class extends AbstractApiData {
|
|
6719
|
+
static {
|
|
6720
|
+
__name(this, "BlogCategory");
|
|
6721
|
+
}
|
|
6722
|
+
_originalLanguage;
|
|
6723
|
+
_image;
|
|
6724
|
+
_translations;
|
|
6725
|
+
_language;
|
|
6726
|
+
_name;
|
|
6727
|
+
_slug;
|
|
6728
|
+
_description;
|
|
6729
|
+
get originalLanguage() {
|
|
6730
|
+
return this._originalLanguage ?? "";
|
|
6731
|
+
}
|
|
6732
|
+
get image() {
|
|
6733
|
+
return this._image;
|
|
6734
|
+
}
|
|
6735
|
+
get translations() {
|
|
6736
|
+
return this._translations ?? [];
|
|
6737
|
+
}
|
|
6738
|
+
get original() {
|
|
6739
|
+
return this.translations.find((translation) => translation.isOriginal);
|
|
6740
|
+
}
|
|
6741
|
+
get language() {
|
|
6742
|
+
return this._language;
|
|
6743
|
+
}
|
|
6744
|
+
get name() {
|
|
6745
|
+
return this._name;
|
|
6746
|
+
}
|
|
6747
|
+
get slug() {
|
|
6748
|
+
return this._slug;
|
|
6749
|
+
}
|
|
6750
|
+
get description() {
|
|
6751
|
+
return this._description;
|
|
6752
|
+
}
|
|
6753
|
+
rehydrate(data) {
|
|
6754
|
+
super.rehydrate(data);
|
|
6755
|
+
const attributes = data.jsonApi.attributes ?? {};
|
|
6756
|
+
const meta = data.jsonApi.meta ?? {};
|
|
6757
|
+
const resolved = /* @__PURE__ */ __name((key) => attributes[key] ?? meta[key] ?? void 0, "resolved");
|
|
6758
|
+
this._originalLanguage = attributes.originalLanguage;
|
|
6759
|
+
this._image = attributes.image ?? void 0;
|
|
6760
|
+
this._language = resolved("language");
|
|
6761
|
+
this._name = resolved("name");
|
|
6762
|
+
this._slug = resolved("slug");
|
|
6763
|
+
this._description = resolved("description");
|
|
6764
|
+
this._translations = this._readIncluded(
|
|
6765
|
+
data,
|
|
6766
|
+
"translations",
|
|
6767
|
+
Modules.BlogCategoryTranslation
|
|
6768
|
+
);
|
|
6769
|
+
return this;
|
|
6770
|
+
}
|
|
6771
|
+
createJsonApi(data) {
|
|
6772
|
+
const response = {
|
|
6773
|
+
data: {
|
|
6774
|
+
type: Modules.BlogCategory.name,
|
|
6775
|
+
id: data.id,
|
|
6776
|
+
attributes: {},
|
|
6777
|
+
meta: {},
|
|
6778
|
+
relationships: {}
|
|
6779
|
+
},
|
|
6780
|
+
included: []
|
|
6781
|
+
};
|
|
6782
|
+
if (data.originalLanguage !== void 0) response.data.attributes.originalLanguage = data.originalLanguage;
|
|
6783
|
+
if (data.name !== void 0) response.data.attributes.name = data.name;
|
|
6784
|
+
if (data.slug !== void 0) response.data.attributes.slug = data.slug;
|
|
6785
|
+
if (data.description !== void 0) response.data.attributes.description = data.description;
|
|
6786
|
+
if (data.image !== void 0) response.data.attributes.image = data.image;
|
|
6787
|
+
return response;
|
|
6788
|
+
}
|
|
6789
|
+
};
|
|
6790
|
+
|
|
6791
|
+
// src/features/blog/data/BlogCategoryTranslation.ts
|
|
6792
|
+
var BlogCategoryTranslation = class extends AbstractApiData {
|
|
6793
|
+
static {
|
|
6794
|
+
__name(this, "BlogCategoryTranslation");
|
|
6795
|
+
}
|
|
6796
|
+
_language;
|
|
6797
|
+
_isOriginal;
|
|
6798
|
+
_source;
|
|
6799
|
+
_aiStatus;
|
|
6800
|
+
_name;
|
|
6801
|
+
_slug;
|
|
6802
|
+
_description;
|
|
6803
|
+
_translatedAt;
|
|
6804
|
+
_category;
|
|
6805
|
+
get language() {
|
|
6806
|
+
return this._language ?? "";
|
|
6807
|
+
}
|
|
6808
|
+
get isOriginal() {
|
|
6809
|
+
return this._isOriginal ?? false;
|
|
6810
|
+
}
|
|
6811
|
+
get source() {
|
|
6812
|
+
return this._source ?? "ai";
|
|
6813
|
+
}
|
|
6814
|
+
get aiStatus() {
|
|
6815
|
+
return this._aiStatus ?? "pending";
|
|
6816
|
+
}
|
|
6817
|
+
get name() {
|
|
6818
|
+
return this._name ?? "";
|
|
6819
|
+
}
|
|
6820
|
+
get slug() {
|
|
6821
|
+
return this._slug ?? "";
|
|
6822
|
+
}
|
|
6823
|
+
get description() {
|
|
6824
|
+
return this._description;
|
|
6825
|
+
}
|
|
6826
|
+
get translatedAt() {
|
|
6827
|
+
return this._translatedAt;
|
|
6828
|
+
}
|
|
6829
|
+
get category() {
|
|
6830
|
+
return this._category;
|
|
6831
|
+
}
|
|
6832
|
+
rehydrate(data) {
|
|
6833
|
+
super.rehydrate(data);
|
|
6834
|
+
const attributes = data.jsonApi.attributes ?? {};
|
|
6835
|
+
this._language = attributes.language;
|
|
6836
|
+
this._isOriginal = attributes.isOriginal === true;
|
|
6837
|
+
this._source = attributes.source;
|
|
6838
|
+
this._aiStatus = attributes.aiStatus;
|
|
6839
|
+
this._name = attributes.name ?? void 0;
|
|
6840
|
+
this._slug = attributes.slug ?? void 0;
|
|
6841
|
+
this._description = attributes.description ?? void 0;
|
|
6842
|
+
this._translatedAt = attributes.translatedAt ? new Date(attributes.translatedAt) : void 0;
|
|
6843
|
+
this._category = this._readIncluded(data, "category", Modules.BlogCategory);
|
|
6844
|
+
return this;
|
|
6845
|
+
}
|
|
6846
|
+
createJsonApi(data) {
|
|
6847
|
+
const response = {
|
|
6848
|
+
data: {
|
|
6849
|
+
type: Modules.BlogCategoryTranslation.name,
|
|
6850
|
+
id: data.id,
|
|
6851
|
+
attributes: {},
|
|
6852
|
+
meta: {},
|
|
6853
|
+
relationships: {}
|
|
6854
|
+
},
|
|
6855
|
+
included: []
|
|
6856
|
+
};
|
|
6857
|
+
if (data.name !== void 0) response.data.attributes.name = data.name;
|
|
6858
|
+
if (data.slug !== void 0) response.data.attributes.slug = data.slug;
|
|
6859
|
+
if (data.description !== void 0) response.data.attributes.description = data.description;
|
|
6860
|
+
return response;
|
|
6861
|
+
}
|
|
6862
|
+
};
|
|
6863
|
+
|
|
6864
|
+
// src/features/blog/data/BlogPost.ts
|
|
6865
|
+
var BlogPost = class extends AbstractApiData {
|
|
6866
|
+
static {
|
|
6867
|
+
__name(this, "BlogPost");
|
|
6868
|
+
}
|
|
6869
|
+
_status;
|
|
6870
|
+
_originalLanguage;
|
|
6871
|
+
_coverImage;
|
|
6872
|
+
_publishedAt;
|
|
6873
|
+
_author;
|
|
6874
|
+
_categories;
|
|
6875
|
+
_translations;
|
|
6876
|
+
_language;
|
|
6877
|
+
_title;
|
|
6878
|
+
_slug;
|
|
6879
|
+
_summary;
|
|
6880
|
+
_body;
|
|
6881
|
+
_coverImageAlt;
|
|
6882
|
+
_readingMinutes;
|
|
6883
|
+
_authorName;
|
|
6884
|
+
_categoryIds;
|
|
6885
|
+
get status() {
|
|
6886
|
+
return this._status ?? "draft";
|
|
6887
|
+
}
|
|
6888
|
+
get originalLanguage() {
|
|
6889
|
+
return this._originalLanguage ?? "";
|
|
6890
|
+
}
|
|
6891
|
+
get coverImage() {
|
|
6892
|
+
return this._coverImage;
|
|
6893
|
+
}
|
|
6894
|
+
get publishedAt() {
|
|
6895
|
+
return this._publishedAt;
|
|
6896
|
+
}
|
|
6897
|
+
get author() {
|
|
6898
|
+
return this._author;
|
|
6899
|
+
}
|
|
6900
|
+
get categories() {
|
|
6901
|
+
return this._categories ?? [];
|
|
6902
|
+
}
|
|
6903
|
+
get translations() {
|
|
6904
|
+
return this._translations ?? [];
|
|
6905
|
+
}
|
|
6906
|
+
get original() {
|
|
6907
|
+
return this.translations.find((translation) => translation.isOriginal);
|
|
6908
|
+
}
|
|
6909
|
+
get language() {
|
|
6910
|
+
return this._language;
|
|
6911
|
+
}
|
|
6912
|
+
get title() {
|
|
6913
|
+
return this._title;
|
|
6914
|
+
}
|
|
6915
|
+
get slug() {
|
|
6916
|
+
return this._slug;
|
|
6917
|
+
}
|
|
6918
|
+
get summary() {
|
|
6919
|
+
return this._summary;
|
|
6920
|
+
}
|
|
6921
|
+
get body() {
|
|
6922
|
+
return this._body ?? [];
|
|
6923
|
+
}
|
|
6924
|
+
get coverImageAlt() {
|
|
6925
|
+
return this._coverImageAlt;
|
|
6926
|
+
}
|
|
6927
|
+
get readingMinutes() {
|
|
6928
|
+
return this._readingMinutes;
|
|
6929
|
+
}
|
|
6930
|
+
get authorName() {
|
|
6931
|
+
return this._authorName;
|
|
6932
|
+
}
|
|
6933
|
+
get categoryIds() {
|
|
6934
|
+
return this._categoryIds ?? [];
|
|
6935
|
+
}
|
|
6936
|
+
rehydrate(data) {
|
|
6937
|
+
super.rehydrate(data);
|
|
6938
|
+
const attributes = data.jsonApi.attributes ?? {};
|
|
6939
|
+
const meta = data.jsonApi.meta ?? {};
|
|
6940
|
+
const resolved = /* @__PURE__ */ __name((key) => attributes[key] ?? meta[key] ?? void 0, "resolved");
|
|
6941
|
+
this._status = attributes.status;
|
|
6942
|
+
this._originalLanguage = attributes.originalLanguage;
|
|
6943
|
+
this._coverImage = attributes.coverImage ?? void 0;
|
|
6944
|
+
this._publishedAt = attributes.publishedAt ? new Date(attributes.publishedAt) : void 0;
|
|
6945
|
+
this._language = resolved("language");
|
|
6946
|
+
this._title = resolved("title");
|
|
6947
|
+
this._slug = resolved("slug");
|
|
6948
|
+
this._summary = resolved("summary");
|
|
6949
|
+
const body = resolved("body");
|
|
6950
|
+
this._body = body ? JSON.parse(body) : void 0;
|
|
6951
|
+
this._coverImageAlt = resolved("coverImageAlt");
|
|
6952
|
+
this._readingMinutes = resolved("readingMinutes");
|
|
6953
|
+
this._authorName = resolved("authorName");
|
|
6954
|
+
this._categoryIds = resolved("categoryIds") ?? [];
|
|
6955
|
+
this._author = this._readIncluded(data, "author", Modules.User);
|
|
6956
|
+
this._categories = this._readIncluded(data, "categories", Modules.BlogCategory);
|
|
6957
|
+
this._translations = this._readIncluded(
|
|
6958
|
+
data,
|
|
6959
|
+
"translations",
|
|
6960
|
+
Modules.BlogPostTranslation
|
|
6961
|
+
);
|
|
6962
|
+
return this;
|
|
6963
|
+
}
|
|
6964
|
+
createJsonApi(data) {
|
|
6965
|
+
const response = {
|
|
6966
|
+
data: {
|
|
6967
|
+
type: Modules.BlogPost.name,
|
|
6968
|
+
id: data.id,
|
|
6969
|
+
attributes: {},
|
|
6970
|
+
meta: {},
|
|
6971
|
+
relationships: {}
|
|
6972
|
+
},
|
|
6973
|
+
included: []
|
|
6974
|
+
};
|
|
6975
|
+
if (data.originalLanguage !== void 0) response.data.attributes.originalLanguage = data.originalLanguage;
|
|
6976
|
+
if (data.title !== void 0) response.data.attributes.title = data.title;
|
|
6977
|
+
if (data.slug !== void 0) response.data.attributes.slug = data.slug;
|
|
6978
|
+
if (data.summary !== void 0) response.data.attributes.summary = data.summary;
|
|
6979
|
+
if (data.body !== void 0) response.data.attributes.body = JSON.stringify(data.body);
|
|
6980
|
+
if (data.coverImage !== void 0) response.data.attributes.coverImage = data.coverImage;
|
|
6981
|
+
if (data.coverImageAlt !== void 0) response.data.attributes.coverImageAlt = data.coverImageAlt;
|
|
6982
|
+
if (data.categoryIds !== void 0) {
|
|
6983
|
+
response.data.relationships.categories = {
|
|
6984
|
+
data: data.categoryIds.map((id) => ({ type: Modules.BlogCategory.name, id }))
|
|
6985
|
+
};
|
|
6986
|
+
}
|
|
6987
|
+
return response;
|
|
6988
|
+
}
|
|
6989
|
+
};
|
|
6990
|
+
|
|
6991
|
+
// src/features/blog/data/BlogPostTranslation.ts
|
|
6992
|
+
var BlogPostTranslation = class extends AbstractApiData {
|
|
6993
|
+
static {
|
|
6994
|
+
__name(this, "BlogPostTranslation");
|
|
6995
|
+
}
|
|
6996
|
+
_language;
|
|
6997
|
+
_isOriginal;
|
|
6998
|
+
_source;
|
|
6999
|
+
_aiStatus;
|
|
7000
|
+
_title;
|
|
7001
|
+
_slug;
|
|
7002
|
+
_summary;
|
|
7003
|
+
_body;
|
|
7004
|
+
_coverImageAlt;
|
|
7005
|
+
_readingMinutes;
|
|
7006
|
+
_translatedAt;
|
|
7007
|
+
_post;
|
|
7008
|
+
get language() {
|
|
7009
|
+
return this._language ?? "";
|
|
7010
|
+
}
|
|
7011
|
+
get isOriginal() {
|
|
7012
|
+
return this._isOriginal ?? false;
|
|
7013
|
+
}
|
|
7014
|
+
get source() {
|
|
7015
|
+
return this._source ?? "ai";
|
|
7016
|
+
}
|
|
7017
|
+
get aiStatus() {
|
|
7018
|
+
return this._aiStatus ?? "pending";
|
|
7019
|
+
}
|
|
7020
|
+
get title() {
|
|
7021
|
+
return this._title ?? "";
|
|
7022
|
+
}
|
|
7023
|
+
get slug() {
|
|
7024
|
+
return this._slug ?? "";
|
|
7025
|
+
}
|
|
7026
|
+
get summary() {
|
|
7027
|
+
return this._summary;
|
|
7028
|
+
}
|
|
7029
|
+
get body() {
|
|
7030
|
+
return this._body ?? [];
|
|
7031
|
+
}
|
|
7032
|
+
get coverImageAlt() {
|
|
7033
|
+
return this._coverImageAlt;
|
|
7034
|
+
}
|
|
7035
|
+
get readingMinutes() {
|
|
7036
|
+
return this._readingMinutes ?? 1;
|
|
7037
|
+
}
|
|
7038
|
+
get translatedAt() {
|
|
7039
|
+
return this._translatedAt;
|
|
7040
|
+
}
|
|
7041
|
+
get post() {
|
|
7042
|
+
return this._post;
|
|
7043
|
+
}
|
|
7044
|
+
rehydrate(data) {
|
|
7045
|
+
super.rehydrate(data);
|
|
7046
|
+
const attributes = data.jsonApi.attributes ?? {};
|
|
7047
|
+
this._language = attributes.language;
|
|
7048
|
+
this._isOriginal = attributes.isOriginal === true;
|
|
7049
|
+
this._source = attributes.source;
|
|
7050
|
+
this._aiStatus = attributes.aiStatus;
|
|
7051
|
+
this._title = attributes.title ?? void 0;
|
|
7052
|
+
this._slug = attributes.slug ?? void 0;
|
|
7053
|
+
this._summary = attributes.summary ?? void 0;
|
|
7054
|
+
this._body = attributes.body ? JSON.parse(attributes.body) : void 0;
|
|
7055
|
+
this._coverImageAlt = attributes.coverImageAlt ?? void 0;
|
|
7056
|
+
this._readingMinutes = attributes.readingMinutes ?? void 0;
|
|
7057
|
+
this._translatedAt = attributes.translatedAt ? new Date(attributes.translatedAt) : void 0;
|
|
7058
|
+
this._post = this._readIncluded(data, "post", Modules.BlogPost);
|
|
7059
|
+
return this;
|
|
7060
|
+
}
|
|
7061
|
+
createJsonApi(data) {
|
|
7062
|
+
const response = {
|
|
7063
|
+
data: {
|
|
7064
|
+
type: Modules.BlogPostTranslation.name,
|
|
7065
|
+
id: data.id,
|
|
7066
|
+
attributes: {},
|
|
7067
|
+
meta: {},
|
|
7068
|
+
relationships: {}
|
|
7069
|
+
},
|
|
7070
|
+
included: []
|
|
7071
|
+
};
|
|
7072
|
+
if (data.title !== void 0) response.data.attributes.title = data.title;
|
|
7073
|
+
if (data.slug !== void 0) response.data.attributes.slug = data.slug;
|
|
7074
|
+
if (data.summary !== void 0) response.data.attributes.summary = data.summary;
|
|
7075
|
+
if (data.body !== void 0) response.data.attributes.body = JSON.stringify(data.body);
|
|
7076
|
+
if (data.coverImageAlt !== void 0) response.data.attributes.coverImageAlt = data.coverImageAlt;
|
|
7077
|
+
return response;
|
|
7078
|
+
}
|
|
7079
|
+
};
|
|
7080
|
+
|
|
7081
|
+
// src/features/blog/types/blog.constants.ts
|
|
7082
|
+
var BLOG_LIST_LAYOUTS = ["featured", "column", "rail"];
|
|
7083
|
+
var BLOG_POST_STATUSES = ["draft", "published", "unpublished"];
|
|
7084
|
+
var BLOG_TRANSLATION_SOURCES = ["original", "ai", "manual"];
|
|
7085
|
+
var BLOG_SETTINGS_ID = "5f3c2a9e-8d41-4b7a-9c2e-1a6b0d4e7f13";
|
|
7086
|
+
var BLOG_MODULE_ID = "c1d0e6a2-4b8f-4f3e-9a7d-2e5b8c6f1a90";
|
|
7087
|
+
var BLOG_UPLOAD_ROOT = "blog";
|
|
7088
|
+
var BLOG_POST_UPLOAD_PREFIX = `${BLOG_UPLOAD_ROOT}/blog-posts`;
|
|
7089
|
+
var BLOG_CATEGORY_UPLOAD_PREFIX = `${BLOG_UPLOAD_ROOT}/blog-categories`;
|
|
7090
|
+
var BLOG_PUBLIC_PREFIX = "public";
|
|
7091
|
+
var BLOG_ACTION = {
|
|
7092
|
+
publish: "publish",
|
|
7093
|
+
unpublish: "unpublish",
|
|
7094
|
+
retranslate: "retranslate",
|
|
7095
|
+
related: "related"
|
|
7096
|
+
};
|
|
7097
|
+
|
|
7098
|
+
// src/features/blog/data/BlogSettings.ts
|
|
7099
|
+
var BlogSettings = class extends AbstractApiData {
|
|
7100
|
+
static {
|
|
7101
|
+
__name(this, "BlogSettings");
|
|
7102
|
+
}
|
|
7103
|
+
_listLayout;
|
|
7104
|
+
get listLayout() {
|
|
7105
|
+
return this._listLayout ?? "featured";
|
|
7106
|
+
}
|
|
7107
|
+
rehydrate(data) {
|
|
7108
|
+
super.rehydrate(data);
|
|
7109
|
+
const listLayout = data.jsonApi.attributes?.listLayout;
|
|
7110
|
+
this._listLayout = BLOG_LIST_LAYOUTS.includes(listLayout) ? listLayout : void 0;
|
|
7111
|
+
return this;
|
|
7112
|
+
}
|
|
7113
|
+
createJsonApi(data) {
|
|
7114
|
+
const response = {
|
|
7115
|
+
data: {
|
|
7116
|
+
type: Modules.BlogSettings.name,
|
|
7117
|
+
id: data.id,
|
|
7118
|
+
attributes: {},
|
|
7119
|
+
meta: {},
|
|
7120
|
+
relationships: {}
|
|
7121
|
+
},
|
|
7122
|
+
included: []
|
|
7123
|
+
};
|
|
7124
|
+
response.data.attributes.listLayout = data.listLayout;
|
|
7125
|
+
return response;
|
|
7126
|
+
}
|
|
7127
|
+
};
|
|
7128
|
+
|
|
7129
|
+
// src/features/blog/BlogModules.ts
|
|
7130
|
+
var BlogPostModule = /* @__PURE__ */ __name((factory) => factory({
|
|
7131
|
+
moduleId: BLOG_MODULE_ID,
|
|
7132
|
+
pageUrl: "/administration/blog",
|
|
7133
|
+
name: "blog-posts",
|
|
7134
|
+
model: BlogPost,
|
|
7135
|
+
icon: NewspaperIcon
|
|
7136
|
+
}), "BlogPostModule");
|
|
7137
|
+
var BlogPostTranslationModule = /* @__PURE__ */ __name((factory) => factory({
|
|
7138
|
+
moduleId: BLOG_MODULE_ID,
|
|
7139
|
+
name: "blog-post-translations",
|
|
7140
|
+
model: BlogPostTranslation,
|
|
7141
|
+
icon: NewspaperIcon
|
|
7142
|
+
}), "BlogPostTranslationModule");
|
|
7143
|
+
var BlogCategoryModule = /* @__PURE__ */ __name((factory) => factory({
|
|
7144
|
+
moduleId: BLOG_MODULE_ID,
|
|
7145
|
+
name: "blog-categories",
|
|
7146
|
+
model: BlogCategory,
|
|
7147
|
+
icon: NewspaperIcon
|
|
7148
|
+
}), "BlogCategoryModule");
|
|
7149
|
+
var BlogCategoryTranslationModule = /* @__PURE__ */ __name((factory) => factory({
|
|
7150
|
+
moduleId: BLOG_MODULE_ID,
|
|
7151
|
+
name: "blog-category-translations",
|
|
7152
|
+
model: BlogCategoryTranslation,
|
|
7153
|
+
icon: NewspaperIcon
|
|
7154
|
+
}), "BlogCategoryTranslationModule");
|
|
7155
|
+
var BlogSettingsModule = /* @__PURE__ */ __name((factory) => factory({
|
|
7156
|
+
moduleId: BLOG_MODULE_ID,
|
|
7157
|
+
name: "blog-settings",
|
|
7158
|
+
model: BlogSettings,
|
|
7159
|
+
icon: NewspaperIcon
|
|
7160
|
+
}), "BlogSettingsModule");
|
|
7161
|
+
|
|
7162
|
+
// src/features/blog/data/BlogPostService.ts
|
|
7163
|
+
var BlogPostService = class extends AbstractService {
|
|
7164
|
+
static {
|
|
7165
|
+
__name(this, "BlogPostService");
|
|
7166
|
+
}
|
|
7167
|
+
static async findMany(params = {}) {
|
|
7168
|
+
const endpoint = new EndpointCreator({ endpoint: Modules.BlogPost });
|
|
7169
|
+
if (params.search) endpoint.addAdditionalParam("search", params.search);
|
|
7170
|
+
return this.callApi({
|
|
7171
|
+
type: Modules.BlogPost,
|
|
7172
|
+
method: "GET" /* GET */,
|
|
7173
|
+
endpoint: endpoint.generate(),
|
|
7174
|
+
next: params.next
|
|
7175
|
+
});
|
|
7176
|
+
}
|
|
7177
|
+
static async findOne(params) {
|
|
7178
|
+
return this.callApi({
|
|
7179
|
+
type: Modules.BlogPost,
|
|
7180
|
+
method: "GET" /* GET */,
|
|
7181
|
+
endpoint: new EndpointCreator({ endpoint: Modules.BlogPost, id: params.id }).generate()
|
|
7182
|
+
});
|
|
7183
|
+
}
|
|
7184
|
+
static async create(params) {
|
|
7185
|
+
return this.callApi({
|
|
7186
|
+
type: Modules.BlogPost,
|
|
7187
|
+
method: "POST" /* POST */,
|
|
7188
|
+
endpoint: new EndpointCreator({ endpoint: Modules.BlogPost }).generate(),
|
|
7189
|
+
input: params
|
|
7190
|
+
});
|
|
7191
|
+
}
|
|
7192
|
+
static async update(params) {
|
|
7193
|
+
return this.callApi({
|
|
7194
|
+
type: Modules.BlogPost,
|
|
7195
|
+
method: "PUT" /* PUT */,
|
|
7196
|
+
endpoint: new EndpointCreator({ endpoint: Modules.BlogPost, id: params.id }).generate(),
|
|
7197
|
+
input: params
|
|
7198
|
+
});
|
|
7199
|
+
}
|
|
7200
|
+
static async delete(params) {
|
|
7201
|
+
await this.callApi({
|
|
7202
|
+
type: Modules.BlogPost,
|
|
7203
|
+
method: "DELETE" /* DELETE */,
|
|
7204
|
+
endpoint: new EndpointCreator({ endpoint: Modules.BlogPost, id: params.id }).generate()
|
|
7205
|
+
});
|
|
7206
|
+
}
|
|
7207
|
+
/**
|
|
7208
|
+
* POST blog-posts/:id/publish. Sends no body; replies with the post.
|
|
7209
|
+
*/
|
|
7210
|
+
static async publish(params) {
|
|
7211
|
+
return this.callApi({
|
|
7212
|
+
type: Modules.BlogPost,
|
|
7213
|
+
method: "POST" /* POST */,
|
|
7214
|
+
endpoint: new EndpointCreator({
|
|
7215
|
+
endpoint: Modules.BlogPost,
|
|
7216
|
+
id: params.id,
|
|
7217
|
+
childEndpoint: BLOG_ACTION.publish
|
|
7218
|
+
}).generate()
|
|
7219
|
+
});
|
|
7220
|
+
}
|
|
7221
|
+
/**
|
|
7222
|
+
* POST blog-posts/:id/unpublish. Sends no body; replies with the post.
|
|
7223
|
+
*/
|
|
7224
|
+
static async unpublish(params) {
|
|
7225
|
+
return this.callApi({
|
|
7226
|
+
type: Modules.BlogPost,
|
|
7227
|
+
method: "POST" /* POST */,
|
|
7228
|
+
endpoint: new EndpointCreator({
|
|
7229
|
+
endpoint: Modules.BlogPost,
|
|
7230
|
+
id: params.id,
|
|
7231
|
+
childEndpoint: BLOG_ACTION.unpublish
|
|
7232
|
+
}).generate()
|
|
7233
|
+
});
|
|
7234
|
+
}
|
|
7235
|
+
};
|
|
7236
|
+
|
|
7237
|
+
// src/features/blog/data/BlogPostTranslationService.ts
|
|
7238
|
+
var BlogPostTranslationService = class extends AbstractService {
|
|
7239
|
+
static {
|
|
7240
|
+
__name(this, "BlogPostTranslationService");
|
|
7241
|
+
}
|
|
7242
|
+
static async update(params) {
|
|
7243
|
+
return this.callApi({
|
|
7244
|
+
type: Modules.BlogPostTranslation,
|
|
7245
|
+
method: "PUT" /* PUT */,
|
|
7246
|
+
endpoint: new EndpointCreator({ endpoint: Modules.BlogPostTranslation, id: params.id }).generate(),
|
|
7247
|
+
input: params
|
|
7248
|
+
});
|
|
7249
|
+
}
|
|
7250
|
+
/**
|
|
7251
|
+
* POST blog-post-translations/:id/retranslate. Re-queues this one language
|
|
7252
|
+
* from the current original. Replies 204.
|
|
7253
|
+
*/
|
|
7254
|
+
static async retranslate(params) {
|
|
7255
|
+
await this.callApi({
|
|
7256
|
+
type: Modules.BlogPostTranslation,
|
|
7257
|
+
method: "POST" /* POST */,
|
|
7258
|
+
endpoint: new EndpointCreator({
|
|
7259
|
+
endpoint: Modules.BlogPostTranslation,
|
|
7260
|
+
id: params.id,
|
|
7261
|
+
childEndpoint: BLOG_ACTION.retranslate
|
|
7262
|
+
}).generate()
|
|
7263
|
+
});
|
|
7264
|
+
}
|
|
7265
|
+
};
|
|
7266
|
+
|
|
7267
|
+
// src/features/blog/data/BlogCategoryService.ts
|
|
7268
|
+
var BlogCategoryService = class extends AbstractService {
|
|
7269
|
+
static {
|
|
7270
|
+
__name(this, "BlogCategoryService");
|
|
7271
|
+
}
|
|
7272
|
+
static async findMany(params = {}) {
|
|
7273
|
+
const endpoint = new EndpointCreator({ endpoint: Modules.BlogCategory });
|
|
7274
|
+
if (params.fetchAll) endpoint.addAdditionalParam("fetchAll", "true");
|
|
7275
|
+
if (params.search) endpoint.addAdditionalParam("search", params.search);
|
|
7276
|
+
return this.callApi({
|
|
7277
|
+
type: Modules.BlogCategory,
|
|
7278
|
+
method: "GET" /* GET */,
|
|
7279
|
+
endpoint: endpoint.generate(),
|
|
7280
|
+
next: params.next
|
|
7281
|
+
});
|
|
7282
|
+
}
|
|
7283
|
+
static async findOne(params) {
|
|
7284
|
+
return this.callApi({
|
|
7285
|
+
type: Modules.BlogCategory,
|
|
7286
|
+
method: "GET" /* GET */,
|
|
7287
|
+
endpoint: new EndpointCreator({ endpoint: Modules.BlogCategory, id: params.id }).generate()
|
|
7288
|
+
});
|
|
7289
|
+
}
|
|
7290
|
+
static async create(params) {
|
|
7291
|
+
return this.callApi({
|
|
7292
|
+
type: Modules.BlogCategory,
|
|
7293
|
+
method: "POST" /* POST */,
|
|
7294
|
+
endpoint: new EndpointCreator({ endpoint: Modules.BlogCategory }).generate(),
|
|
7295
|
+
input: params
|
|
7296
|
+
});
|
|
7297
|
+
}
|
|
7298
|
+
static async update(params) {
|
|
7299
|
+
return this.callApi({
|
|
7300
|
+
type: Modules.BlogCategory,
|
|
7301
|
+
method: "PUT" /* PUT */,
|
|
7302
|
+
endpoint: new EndpointCreator({ endpoint: Modules.BlogCategory, id: params.id }).generate(),
|
|
7303
|
+
input: params
|
|
7304
|
+
});
|
|
7305
|
+
}
|
|
7306
|
+
static async delete(params) {
|
|
7307
|
+
await this.callApi({
|
|
7308
|
+
type: Modules.BlogCategory,
|
|
7309
|
+
method: "DELETE" /* DELETE */,
|
|
7310
|
+
endpoint: new EndpointCreator({ endpoint: Modules.BlogCategory, id: params.id }).generate()
|
|
7311
|
+
});
|
|
7312
|
+
}
|
|
7313
|
+
};
|
|
7314
|
+
|
|
7315
|
+
// src/features/blog/data/BlogCategoryTranslationService.ts
|
|
7316
|
+
var BlogCategoryTranslationService = class extends AbstractService {
|
|
7317
|
+
static {
|
|
7318
|
+
__name(this, "BlogCategoryTranslationService");
|
|
7319
|
+
}
|
|
7320
|
+
static async update(params) {
|
|
7321
|
+
return this.callApi({
|
|
7322
|
+
type: Modules.BlogCategoryTranslation,
|
|
7323
|
+
method: "PUT" /* PUT */,
|
|
7324
|
+
endpoint: new EndpointCreator({ endpoint: Modules.BlogCategoryTranslation, id: params.id }).generate(),
|
|
7325
|
+
input: params
|
|
7326
|
+
});
|
|
7327
|
+
}
|
|
7328
|
+
/**
|
|
7329
|
+
* POST blog-category-translations/:id/retranslate. Re-queues this one
|
|
7330
|
+
* language from the current original. Replies 204.
|
|
7331
|
+
*/
|
|
7332
|
+
static async retranslate(params) {
|
|
7333
|
+
await this.callApi({
|
|
7334
|
+
type: Modules.BlogCategoryTranslation,
|
|
7335
|
+
method: "POST" /* POST */,
|
|
7336
|
+
endpoint: new EndpointCreator({
|
|
7337
|
+
endpoint: Modules.BlogCategoryTranslation,
|
|
7338
|
+
id: params.id,
|
|
7339
|
+
childEndpoint: BLOG_ACTION.retranslate
|
|
7340
|
+
}).generate()
|
|
7341
|
+
});
|
|
7342
|
+
}
|
|
7343
|
+
};
|
|
7344
|
+
|
|
7345
|
+
// src/features/blog/data/BlogSettingsService.ts
|
|
7346
|
+
var BlogSettingsService = class extends AbstractService {
|
|
7347
|
+
static {
|
|
7348
|
+
__name(this, "BlogSettingsService");
|
|
7349
|
+
}
|
|
7350
|
+
/**
|
|
7351
|
+
* GET blog-settings: the stored singleton, or the API's default.
|
|
7352
|
+
*/
|
|
7353
|
+
static async get() {
|
|
7354
|
+
return this.callApi({
|
|
7355
|
+
type: Modules.BlogSettings,
|
|
7356
|
+
method: "GET" /* GET */,
|
|
7357
|
+
endpoint: new EndpointCreator({ endpoint: Modules.BlogSettings }).generate()
|
|
7358
|
+
});
|
|
7359
|
+
}
|
|
7360
|
+
static async save(params) {
|
|
7361
|
+
return this.callApi({
|
|
7362
|
+
type: Modules.BlogSettings,
|
|
7363
|
+
method: "PUT" /* PUT */,
|
|
7364
|
+
endpoint: new EndpointCreator({ endpoint: Modules.BlogSettings, id: params.id }).generate(),
|
|
7365
|
+
input: params
|
|
7366
|
+
});
|
|
7367
|
+
}
|
|
7368
|
+
};
|
|
7369
|
+
|
|
7370
|
+
// src/features/blog/data/BlogPostFields.ts
|
|
7371
|
+
var BlogPostFields = /* @__PURE__ */ ((BlogPostFields2) => {
|
|
7372
|
+
BlogPostFields2["title"] = "title";
|
|
7373
|
+
BlogPostFields2["status"] = "status";
|
|
7374
|
+
BlogPostFields2["categories"] = "categories";
|
|
7375
|
+
BlogPostFields2["publishedAt"] = "publishedAt";
|
|
7376
|
+
BlogPostFields2["languages"] = "languages";
|
|
7377
|
+
return BlogPostFields2;
|
|
7378
|
+
})(BlogPostFields || {});
|
|
7379
|
+
|
|
7380
|
+
// src/features/blog/data/BlogCategoryFields.ts
|
|
7381
|
+
var BlogCategoryFields = /* @__PURE__ */ ((BlogCategoryFields2) => {
|
|
7382
|
+
BlogCategoryFields2["name"] = "name";
|
|
7383
|
+
BlogCategoryFields2["languages"] = "languages";
|
|
7384
|
+
return BlogCategoryFields2;
|
|
7385
|
+
})(BlogCategoryFields || {});
|
|
7386
|
+
|
|
6714
7387
|
// src/features/handbook/HandbookPageModule.ts
|
|
6715
7388
|
import { BookOpenIcon } from "lucide-react";
|
|
6716
7389
|
|
|
@@ -8492,6 +9165,20 @@ var S3Service = class extends AbstractService {
|
|
|
8492
9165
|
if (params.isPublic) endpoint.addAdditionalParam("isPublic", "true");
|
|
8493
9166
|
return this.callApi({ type: Modules.S3, method: "GET" /* GET */, endpoint: endpoint.generate() });
|
|
8494
9167
|
}
|
|
9168
|
+
/**
|
|
9169
|
+
* Presigns `key` and PUTs `file` to the presigned S3 URL. The PUT goes straight
|
|
9170
|
+
* to object storage (not the JSON:API backend), so it cannot use callApi.
|
|
9171
|
+
* Throws when the upload is rejected.
|
|
9172
|
+
*/
|
|
9173
|
+
static async upload(params) {
|
|
9174
|
+
const s3 = await this.getPreSignedUrl({
|
|
9175
|
+
key: params.key,
|
|
9176
|
+
contentType: params.contentType,
|
|
9177
|
+
isPublic: params.isPublic
|
|
9178
|
+
});
|
|
9179
|
+
const response = await fetch(s3.url, { method: "PUT", headers: s3.headers, body: params.file });
|
|
9180
|
+
if (!response.ok) throw new Error(`S3 upload failed: ${response.status}`);
|
|
9181
|
+
}
|
|
8495
9182
|
static async getSignedUrl(params) {
|
|
8496
9183
|
const endpoint = new EndpointCreator({ endpoint: Modules.S3, id: "sign" }).addAdditionalParam("key", params.key);
|
|
8497
9184
|
if (params.isPublic) endpoint.addAdditionalParam("isPublic", "true");
|
|
@@ -10649,6 +11336,7 @@ export {
|
|
|
10649
11336
|
getI18nLink,
|
|
10650
11337
|
useI18nLocale,
|
|
10651
11338
|
useI18nDateFnsLocale,
|
|
11339
|
+
getI18nSupportedLocales,
|
|
10652
11340
|
HttpMethod,
|
|
10653
11341
|
setGlobalErrorHandler,
|
|
10654
11342
|
getGlobalErrorHandler,
|
|
@@ -10813,6 +11501,33 @@ export {
|
|
|
10813
11501
|
EmailAutomationEnrollmentService,
|
|
10814
11502
|
EmailAutomationFields,
|
|
10815
11503
|
EmailAutomationEnrollmentFields,
|
|
11504
|
+
BlogCategory,
|
|
11505
|
+
BlogCategoryTranslation,
|
|
11506
|
+
BlogPost,
|
|
11507
|
+
BlogPostTranslation,
|
|
11508
|
+
BLOG_LIST_LAYOUTS,
|
|
11509
|
+
BLOG_POST_STATUSES,
|
|
11510
|
+
BLOG_TRANSLATION_SOURCES,
|
|
11511
|
+
BLOG_SETTINGS_ID,
|
|
11512
|
+
BLOG_MODULE_ID,
|
|
11513
|
+
BLOG_UPLOAD_ROOT,
|
|
11514
|
+
BLOG_POST_UPLOAD_PREFIX,
|
|
11515
|
+
BLOG_CATEGORY_UPLOAD_PREFIX,
|
|
11516
|
+
BLOG_PUBLIC_PREFIX,
|
|
11517
|
+
BLOG_ACTION,
|
|
11518
|
+
BlogSettings,
|
|
11519
|
+
BlogPostModule,
|
|
11520
|
+
BlogPostTranslationModule,
|
|
11521
|
+
BlogCategoryModule,
|
|
11522
|
+
BlogCategoryTranslationModule,
|
|
11523
|
+
BlogSettingsModule,
|
|
11524
|
+
BlogPostService,
|
|
11525
|
+
BlogPostTranslationService,
|
|
11526
|
+
BlogCategoryService,
|
|
11527
|
+
BlogCategoryTranslationService,
|
|
11528
|
+
BlogSettingsService,
|
|
11529
|
+
BlogPostFields,
|
|
11530
|
+
BlogCategoryFields,
|
|
10816
11531
|
HandbookPage,
|
|
10817
11532
|
HandbookPageModule,
|
|
10818
11533
|
HandbookSection,
|
|
@@ -10912,4 +11627,4 @@ export {
|
|
|
10912
11627
|
AuditLogService,
|
|
10913
11628
|
AuditLogModule
|
|
10914
11629
|
};
|
|
10915
|
-
//# sourceMappingURL=chunk-
|
|
11630
|
+
//# sourceMappingURL=chunk-WC63PJSC.mjs.map
|