@scribe-atp/next 0.2.0 → 1.0.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/index.cjs CHANGED
@@ -20,30 +20,31 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
20
20
  // src/index.ts
21
21
  var index_exports = {};
22
22
  __export(index_exports, {
23
- createScribeSite: () => createScribeSite
23
+ createScribeSite: () => createScribeSite,
24
+ createWellKnownHandler: () => createWellKnownHandler
24
25
  });
25
26
  module.exports = __toCommonJS(index_exports);
26
27
 
27
28
  // src/create-scribe-site.ts
28
29
  var import_core = require("@scribe-atp/core");
29
- function createScribeSite(author, siteSlug) {
30
+ function createScribeSite(author, publicationUrl) {
30
31
  return {
31
32
  generateGroupParams: async () => {
32
- const site = await (0, import_core.fetchSite)(author, siteSlug);
33
+ const site = await (0, import_core.fetchSite)(author, publicationUrl);
33
34
  return site.groups.map((g) => ({ groupSlug: g.slug }));
34
35
  },
35
36
  generateArticleParams: async () => {
36
- const site = await (0, import_core.fetchSite)(author, siteSlug);
37
+ const site = await (0, import_core.fetchSite)(author, publicationUrl);
37
38
  return site.groups.flatMap((g) => g.articles).filter((a) => !!a.slug).map((a) => ({ articleSlug: a.slug }));
38
39
  },
39
40
  generateGroupArticleParams: async () => {
40
- const site = await (0, import_core.fetchSite)(author, siteSlug);
41
+ const site = await (0, import_core.fetchSite)(author, publicationUrl);
41
42
  return site.groups.flatMap(
42
43
  (g) => g.articles.filter((a) => !!a.slug).map((a) => ({ groupSlug: g.slug, articleSlug: a.slug }))
43
44
  );
44
45
  },
45
46
  generateSiteMetadata: async () => {
46
- const site = await (0, import_core.fetchSite)(author, siteSlug);
47
+ const site = await (0, import_core.fetchSite)(author, publicationUrl);
47
48
  return {
48
49
  title: site.title,
49
50
  description: site.description ?? void 0,
@@ -55,7 +56,7 @@ function createScribeSite(author, siteSlug) {
55
56
  };
56
57
  },
57
58
  generateGroupMetadata: async (groupSlug) => {
58
- const site = await (0, import_core.fetchSite)(author, siteSlug);
59
+ const site = await (0, import_core.fetchSite)(author, publicationUrl);
59
60
  const group = site.groups.find((g) => g.slug === groupSlug);
60
61
  const title = group ? `${group.title} \u2014 ${site.title}` : site.title;
61
62
  return {
@@ -64,7 +65,7 @@ function createScribeSite(author, siteSlug) {
64
65
  };
65
66
  },
66
67
  generateArticleMetadata: async (articleSlug) => {
67
- const site = await (0, import_core.fetchSite)(author, siteSlug);
68
+ const site = await (0, import_core.fetchSite)(author, publicationUrl);
68
69
  const article = site.groups.flatMap((g) => g.articles).find((a) => a.slug === articleSlug);
69
70
  const title = article ? `${article.title} \u2014 ${site.title}` : site.title;
70
71
  return {
@@ -76,10 +77,18 @@ function createScribeSite(author, siteSlug) {
76
77
  ...article?.splashImageUrl ? { images: [article.splashImageUrl] } : {}
77
78
  }
78
79
  };
79
- }
80
+ },
81
+ getDocumentUri: (articleSlug) => (0, import_core.fetchArticleBySlug)(author, publicationUrl, articleSlug).then(({ uri }) => uri)
82
+ };
83
+ }
84
+ function createWellKnownHandler(author, publicationUrl) {
85
+ return async (request) => {
86
+ const uri = await (0, import_core.resolvePublicationUri)(author, publicationUrl, request.signal);
87
+ return new Response(uri, { headers: { "Content-Type": "text/plain" } });
80
88
  };
81
89
  }
82
90
  // Annotate the CommonJS export names for ESM import in node:
83
91
  0 && (module.exports = {
84
- createScribeSite
92
+ createScribeSite,
93
+ createWellKnownHandler
85
94
  });
package/dist/index.d.cts CHANGED
@@ -1,7 +1,7 @@
1
1
  import { Metadata } from 'next';
2
2
  export { Article, ArticleRef, Site, SiteGroup } from '@scribe-atp/core';
3
3
 
4
- declare function createScribeSite(author: string, siteSlug: string): {
4
+ declare function createScribeSite(author: string, publicationUrl: string): {
5
5
  generateGroupParams: () => Promise<{
6
6
  groupSlug: string;
7
7
  }[]>;
@@ -15,6 +15,8 @@ declare function createScribeSite(author: string, siteSlug: string): {
15
15
  generateSiteMetadata: () => Promise<Metadata>;
16
16
  generateGroupMetadata: (groupSlug: string) => Promise<Metadata>;
17
17
  generateArticleMetadata: (articleSlug: string) => Promise<Metadata>;
18
+ getDocumentUri: (articleSlug: string) => Promise<string>;
18
19
  };
20
+ declare function createWellKnownHandler(author: string, publicationUrl: string): (request: Request) => Promise<Response>;
19
21
 
20
- export { createScribeSite };
22
+ export { createScribeSite, createWellKnownHandler };
package/dist/index.d.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  import { Metadata } from 'next';
2
2
  export { Article, ArticleRef, Site, SiteGroup } from '@scribe-atp/core';
3
3
 
4
- declare function createScribeSite(author: string, siteSlug: string): {
4
+ declare function createScribeSite(author: string, publicationUrl: string): {
5
5
  generateGroupParams: () => Promise<{
6
6
  groupSlug: string;
7
7
  }[]>;
@@ -15,6 +15,8 @@ declare function createScribeSite(author: string, siteSlug: string): {
15
15
  generateSiteMetadata: () => Promise<Metadata>;
16
16
  generateGroupMetadata: (groupSlug: string) => Promise<Metadata>;
17
17
  generateArticleMetadata: (articleSlug: string) => Promise<Metadata>;
18
+ getDocumentUri: (articleSlug: string) => Promise<string>;
18
19
  };
20
+ declare function createWellKnownHandler(author: string, publicationUrl: string): (request: Request) => Promise<Response>;
19
21
 
20
- export { createScribeSite };
22
+ export { createScribeSite, createWellKnownHandler };
package/dist/index.js CHANGED
@@ -1,23 +1,23 @@
1
1
  // src/create-scribe-site.ts
2
- import { fetchSite } from "@scribe-atp/core";
3
- function createScribeSite(author, siteSlug) {
2
+ import { fetchSite, fetchArticleBySlug, resolvePublicationUri } from "@scribe-atp/core";
3
+ function createScribeSite(author, publicationUrl) {
4
4
  return {
5
5
  generateGroupParams: async () => {
6
- const site = await fetchSite(author, siteSlug);
6
+ const site = await fetchSite(author, publicationUrl);
7
7
  return site.groups.map((g) => ({ groupSlug: g.slug }));
8
8
  },
9
9
  generateArticleParams: async () => {
10
- const site = await fetchSite(author, siteSlug);
10
+ const site = await fetchSite(author, publicationUrl);
11
11
  return site.groups.flatMap((g) => g.articles).filter((a) => !!a.slug).map((a) => ({ articleSlug: a.slug }));
12
12
  },
13
13
  generateGroupArticleParams: async () => {
14
- const site = await fetchSite(author, siteSlug);
14
+ const site = await fetchSite(author, publicationUrl);
15
15
  return site.groups.flatMap(
16
16
  (g) => g.articles.filter((a) => !!a.slug).map((a) => ({ groupSlug: g.slug, articleSlug: a.slug }))
17
17
  );
18
18
  },
19
19
  generateSiteMetadata: async () => {
20
- const site = await fetchSite(author, siteSlug);
20
+ const site = await fetchSite(author, publicationUrl);
21
21
  return {
22
22
  title: site.title,
23
23
  description: site.description ?? void 0,
@@ -29,7 +29,7 @@ function createScribeSite(author, siteSlug) {
29
29
  };
30
30
  },
31
31
  generateGroupMetadata: async (groupSlug) => {
32
- const site = await fetchSite(author, siteSlug);
32
+ const site = await fetchSite(author, publicationUrl);
33
33
  const group = site.groups.find((g) => g.slug === groupSlug);
34
34
  const title = group ? `${group.title} \u2014 ${site.title}` : site.title;
35
35
  return {
@@ -38,7 +38,7 @@ function createScribeSite(author, siteSlug) {
38
38
  };
39
39
  },
40
40
  generateArticleMetadata: async (articleSlug) => {
41
- const site = await fetchSite(author, siteSlug);
41
+ const site = await fetchSite(author, publicationUrl);
42
42
  const article = site.groups.flatMap((g) => g.articles).find((a) => a.slug === articleSlug);
43
43
  const title = article ? `${article.title} \u2014 ${site.title}` : site.title;
44
44
  return {
@@ -50,9 +50,17 @@ function createScribeSite(author, siteSlug) {
50
50
  ...article?.splashImageUrl ? { images: [article.splashImageUrl] } : {}
51
51
  }
52
52
  };
53
- }
53
+ },
54
+ getDocumentUri: (articleSlug) => fetchArticleBySlug(author, publicationUrl, articleSlug).then(({ uri }) => uri)
55
+ };
56
+ }
57
+ function createWellKnownHandler(author, publicationUrl) {
58
+ return async (request) => {
59
+ const uri = await resolvePublicationUri(author, publicationUrl, request.signal);
60
+ return new Response(uri, { headers: { "Content-Type": "text/plain" } });
54
61
  };
55
62
  }
56
63
  export {
57
- createScribeSite
64
+ createScribeSite,
65
+ createWellKnownHandler
58
66
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@scribe-atp/next",
3
- "version": "0.2.0",
3
+ "version": "1.0.0",
4
4
  "description": "Next.js App Router adapter for reading Scribe CMS content from the AT Protocol.",
5
5
  "license": "MIT",
6
6
  "engines": {