@upstart.gg/sdk 0.0.51

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (126) hide show
  1. package/LICENSE +633 -0
  2. package/README.md +11 -0
  3. package/custom-attrs.d.ts +63 -0
  4. package/dist/node/cli/api.js +3 -0
  5. package/dist/node/cli/commands/build/cmd-build.js +3 -0
  6. package/dist/node/cli/commands/login/cmd-login.js +10 -0
  7. package/dist/node/cli/commands/logout/cmd-logout.js +3 -0
  8. package/dist/node/cli/commands/publish/cmd-publish.js +36 -0
  9. package/dist/node/cli/commands/publish/parse-gitignore.js +14 -0
  10. package/dist/node/cli/commands/publish/uploader.js +17 -0
  11. package/dist/node/cli/constants.js +2 -0
  12. package/dist/node/cli/program.js +48 -0
  13. package/dist/node/cli/store.js +3 -0
  14. package/dist/node/cli/types.js +1 -0
  15. package/dist/node/cli/utils.js +2 -0
  16. package/dist/node/metafile-esm.json +1 -0
  17. package/dist/node/shared/config.js +12 -0
  18. package/dist/node/shared/logger.js +3 -0
  19. package/dist/shared/ajv.d.ts +6 -0
  20. package/dist/shared/ajv.js +2 -0
  21. package/dist/shared/attributes.d.ts +102 -0
  22. package/dist/shared/attributes.js +2 -0
  23. package/dist/shared/bricks.d.ts +140 -0
  24. package/dist/shared/bricks.js +2 -0
  25. package/dist/shared/datasources/external/facebook/posts/fetcher.d.ts +16 -0
  26. package/dist/shared/datasources/external/facebook/posts/fetcher.js +2 -0
  27. package/dist/shared/datasources/external/facebook/posts/schema.d.ts +31 -0
  28. package/dist/shared/datasources/external/facebook/posts/schema.js +2 -0
  29. package/dist/shared/datasources/external/instagram/feed/fetcher.d.ts +16 -0
  30. package/dist/shared/datasources/external/instagram/feed/fetcher.js +2 -0
  31. package/dist/shared/datasources/external/instagram/feed/schema.d.ts +23 -0
  32. package/dist/shared/datasources/external/instagram/feed/schema.js +2 -0
  33. package/dist/shared/datasources/external/json/fetcher.d.ts +17 -0
  34. package/dist/shared/datasources/external/json/fetcher.js +2 -0
  35. package/dist/shared/datasources/external/json/options.d.ts +11 -0
  36. package/dist/shared/datasources/external/json/options.js +2 -0
  37. package/dist/shared/datasources/external/mastodon/account/fetcher.d.ts +15 -0
  38. package/dist/shared/datasources/external/mastodon/account/fetcher.js +2 -0
  39. package/dist/shared/datasources/external/mastodon/account/schema.d.ts +43 -0
  40. package/dist/shared/datasources/external/mastodon/account/schema.js +2 -0
  41. package/dist/shared/datasources/external/mastodon/options.d.ts +10 -0
  42. package/dist/shared/datasources/external/mastodon/options.js +2 -0
  43. package/dist/shared/datasources/external/mastodon/status/fetcher.d.ts +15 -0
  44. package/dist/shared/datasources/external/mastodon/status/fetcher.js +2 -0
  45. package/dist/shared/datasources/external/mastodon/status/sample.array.d.ts +53 -0
  46. package/dist/shared/datasources/external/mastodon/status/sample.array.js +2 -0
  47. package/dist/shared/datasources/external/mastodon/status/sample.single.d.ts +53 -0
  48. package/dist/shared/datasources/external/mastodon/status/sample.single.js +2 -0
  49. package/dist/shared/datasources/external/mastodon/status/schema.d.ts +261 -0
  50. package/dist/shared/datasources/external/mastodon/status/schema.js +2 -0
  51. package/dist/shared/datasources/external/meta/oauth/config.d.ts +21 -0
  52. package/dist/shared/datasources/external/meta/oauth/config.js +1 -0
  53. package/dist/shared/datasources/external/meta/options.d.ts +10 -0
  54. package/dist/shared/datasources/external/meta/options.js +2 -0
  55. package/dist/shared/datasources/external/rss/fetcher.d.ts +15 -0
  56. package/dist/shared/datasources/external/rss/fetcher.js +2 -0
  57. package/dist/shared/datasources/external/rss/options.d.ts +10 -0
  58. package/dist/shared/datasources/external/rss/options.js +2 -0
  59. package/dist/shared/datasources/external/rss/schema.d.ts +19 -0
  60. package/dist/shared/datasources/external/rss/schema.js +2 -0
  61. package/dist/shared/datasources/external/threads/media/fetcher.d.ts +19 -0
  62. package/dist/shared/datasources/external/threads/media/fetcher.js +2 -0
  63. package/dist/shared/datasources/external/threads/media/schema.d.ts +30 -0
  64. package/dist/shared/datasources/external/threads/media/schema.js +2 -0
  65. package/dist/shared/datasources/external/tiktok/oauth/config.d.ts +22 -0
  66. package/dist/shared/datasources/external/tiktok/oauth/config.js +1 -0
  67. package/dist/shared/datasources/external/tiktok/video/fetcher.d.ts +16 -0
  68. package/dist/shared/datasources/external/tiktok/video/fetcher.js +2 -0
  69. package/dist/shared/datasources/external/tiktok/video/options.d.ts +10 -0
  70. package/dist/shared/datasources/external/tiktok/video/options.js +2 -0
  71. package/dist/shared/datasources/external/tiktok/video/schema.d.ts +25 -0
  72. package/dist/shared/datasources/external/tiktok/video/schema.js +2 -0
  73. package/dist/shared/datasources/external/youtube/list/fetcher.d.ts +16 -0
  74. package/dist/shared/datasources/external/youtube/list/fetcher.js +2 -0
  75. package/dist/shared/datasources/external/youtube/list/options.d.ts +14 -0
  76. package/dist/shared/datasources/external/youtube/list/options.js +2 -0
  77. package/dist/shared/datasources/external/youtube/list/schema.d.ts +43 -0
  78. package/dist/shared/datasources/external/youtube/list/schema.js +2 -0
  79. package/dist/shared/datasources/external/youtube/oauth/config.d.ts +22 -0
  80. package/dist/shared/datasources/external/youtube/oauth/config.js +1 -0
  81. package/dist/shared/datasources/internal/contact-info/schema.d.ts +17 -0
  82. package/dist/shared/datasources/internal/contact-info/schema.js +2 -0
  83. package/dist/shared/datasources/internal/faq/schema.d.ts +12 -0
  84. package/dist/shared/datasources/internal/faq/schema.js +2 -0
  85. package/dist/shared/datasources/internal/links/schema.d.ts +12 -0
  86. package/dist/shared/datasources/internal/links/schema.js +2 -0
  87. package/dist/shared/datasources/samples.d.ts +13 -0
  88. package/dist/shared/datasources/samples.js +2 -0
  89. package/dist/shared/datasources/types.d.ts +9 -0
  90. package/dist/shared/datasources/types.js +2 -0
  91. package/dist/shared/datasources/utils.d.ts +3 -0
  92. package/dist/shared/datasources/utils.js +2 -0
  93. package/dist/shared/datasources-DAysbbXK.d.ts +201 -0
  94. package/dist/shared/datasources.d.ts +9 -0
  95. package/dist/shared/datasources.js +2 -0
  96. package/dist/shared/env.d.ts +27 -0
  97. package/dist/shared/env.js +1 -0
  98. package/dist/shared/errors.d.ts +1 -0
  99. package/dist/shared/errors.js +2 -0
  100. package/dist/shared/index.d.ts +5 -0
  101. package/dist/shared/index.js +2 -0
  102. package/dist/shared/layout-constants.d.ts +20 -0
  103. package/dist/shared/layout-constants.js +2 -0
  104. package/dist/shared/manifest.d.ts +34 -0
  105. package/dist/shared/manifest.js +2 -0
  106. package/dist/shared/metafile-esm.json +1 -0
  107. package/dist/shared/page.d.ts +9 -0
  108. package/dist/shared/page.js +2 -0
  109. package/dist/shared/responsive.d.ts +6 -0
  110. package/dist/shared/responsive.js +2 -0
  111. package/dist/shared/social-icons.d.ts +6 -0
  112. package/dist/shared/social-icons.js +2 -0
  113. package/dist/shared/template-config.d.ts +9 -0
  114. package/dist/shared/template-config.js +1 -0
  115. package/dist/shared/theme.d.ts +37 -0
  116. package/dist/shared/theme.js +2 -0
  117. package/dist/shared/themes/all-themes.d.ts +6 -0
  118. package/dist/shared/themes/all-themes.js +2 -0
  119. package/dist/shared/themes/color-system.d.ts +323 -0
  120. package/dist/shared/themes/color-system.js +2 -0
  121. package/dist/shared/utils/invariant.d.ts +8 -0
  122. package/dist/shared/utils/invariant.js +2 -0
  123. package/dist/shared/utils/layout-utils.d.ts +24 -0
  124. package/dist/shared/utils/layout-utils.js +2 -0
  125. package/env.d.ts +24 -0
  126. package/package.json +162 -0
@@ -0,0 +1,14 @@
1
+ import * as _sinclair_typebox from '@sinclair/typebox';
2
+ import { Static } from '@sinclair/typebox';
3
+
4
+ declare const youtubeListOptions: _sinclair_typebox.TObject<{
5
+ nextRefreshDelay: _sinclair_typebox.TOptional<_sinclair_typebox.TNumber>;
6
+ regionCode: _sinclair_typebox.TOptional<_sinclair_typebox.TString>;
7
+ channelId: _sinclair_typebox.TString;
8
+ order: _sinclair_typebox.TOptional<_sinclair_typebox.TString>;
9
+ maxResults: _sinclair_typebox.TOptional<_sinclair_typebox.TNumber>;
10
+ relevanceLanguage: _sinclair_typebox.TOptional<_sinclair_typebox.TString>;
11
+ }>;
12
+ type YoutubeListOptions = Static<typeof youtubeListOptions>;
13
+
14
+ export { type YoutubeListOptions, youtubeListOptions };
@@ -0,0 +1,2 @@
1
+ /*! Enpage - Copyright (C) 2024 Flippable - https://github.com/enpage/enpage/blob/main/LICENSE */
2
+ import{Type as t}from"@sinclair/typebox";import{Type as e}from"@sinclair/typebox";import r from"zod";var o=e.Object({nextRefreshDelay:e.Optional(e.Number())}),i=["facebook-posts","instagram-feed","mastodon-status","rss","threads-media","tiktok-video","youtube-list","json"],p=r.enum(i);var c=t.Composite([o,t.Object({channelId:t.String(),order:t.Optional(t.String()),maxResults:t.Optional(t.Number()),regionCode:t.Optional(t.String()),relevanceLanguage:t.Optional(t.String())})]);export{c as youtubeListOptions};
@@ -0,0 +1,43 @@
1
+ import * as _sinclair_typebox from '@sinclair/typebox';
2
+ import { Static } from '@sinclair/typebox';
3
+
4
+ declare const youtubeListSchema: _sinclair_typebox.TObject<{
5
+ etag: _sinclair_typebox.TString;
6
+ nextPageToken: _sinclair_typebox.TString;
7
+ regionCode: _sinclair_typebox.TString;
8
+ pageInfo: _sinclair_typebox.TObject<{
9
+ totalResults: _sinclair_typebox.TNumber;
10
+ resultsPerPage: _sinclair_typebox.TNumber;
11
+ }>;
12
+ items: _sinclair_typebox.TArray<_sinclair_typebox.TObject<{
13
+ etag: _sinclair_typebox.TString;
14
+ id: _sinclair_typebox.TObject<{
15
+ videoId: _sinclair_typebox.TString;
16
+ channelId: _sinclair_typebox.TString;
17
+ playlistId: _sinclair_typebox.TString;
18
+ }>;
19
+ snippet: _sinclair_typebox.TObject<{
20
+ publishedAt: _sinclair_typebox.TString;
21
+ channelId: _sinclair_typebox.TString;
22
+ title: _sinclair_typebox.TString;
23
+ description: _sinclair_typebox.TString;
24
+ thumbnails: _sinclair_typebox.TObject<{
25
+ default: _sinclair_typebox.TObject<{
26
+ url: _sinclair_typebox.TString;
27
+ width: _sinclair_typebox.TNumber;
28
+ height: _sinclair_typebox.TNumber;
29
+ }>;
30
+ standard: _sinclair_typebox.TObject<{
31
+ url: _sinclair_typebox.TString;
32
+ width: _sinclair_typebox.TNumber;
33
+ height: _sinclair_typebox.TNumber;
34
+ }>;
35
+ }>;
36
+ channelTitle: _sinclair_typebox.TString;
37
+ liveBroadcastContent: _sinclair_typebox.TString;
38
+ }>;
39
+ }>>;
40
+ }>;
41
+ type YoutubeListSchema = Static<typeof youtubeListSchema>;
42
+
43
+ export { type YoutubeListSchema, youtubeListSchema };
@@ -0,0 +1,2 @@
1
+ /*! Enpage - Copyright (C) 2024 Flippable - https://github.com/enpage/enpage/blob/main/LICENSE */
2
+ import{Type as t}from"@sinclair/typebox";var i=t.Object({etag:t.String(),nextPageToken:t.String(),regionCode:t.String(),pageInfo:t.Object({totalResults:t.Number(),resultsPerPage:t.Number()}),items:t.Array(t.Object({etag:t.String(),id:t.Object({videoId:t.String(),channelId:t.String(),playlistId:t.String()}),snippet:t.Object({publishedAt:t.String(),channelId:t.String(),title:t.String(),description:t.String(),thumbnails:t.Object({default:t.Object({url:t.String(),width:t.Number(),height:t.Number()}),standard:t.Object({url:t.String(),width:t.Number(),height:t.Number()})}),channelTitle:t.String(),liveBroadcastContent:t.String()})}))});export{i as youtubeListSchema};
@@ -0,0 +1,22 @@
1
+ import { O as OAuthConfig } from '../../../../datasources-DAysbbXK.js';
2
+ import '@sinclair/typebox';
3
+ import 'zod';
4
+ import '../../../../attributes.js';
5
+ import '../../../../themes/color-system.js';
6
+ import '../../../../theme.js';
7
+ import 'chroma-js';
8
+ import '../../../../bricks.js';
9
+ import '../../../../manifest.js';
10
+
11
+ interface YoutubeOAuthConfig {
12
+ accessToken: string;
13
+ expiresIn: number;
14
+ openId: string;
15
+ refreshExpiresIn: number;
16
+ refreshToken: string;
17
+ scope: string;
18
+ tokenType: string;
19
+ }
20
+ type YoutubekFullOAuthConfig = OAuthConfig<YoutubeOAuthConfig>;
21
+
22
+ export type { YoutubeOAuthConfig, YoutubekFullOAuthConfig };
@@ -0,0 +1 @@
1
+ /*! Enpage - Copyright (C) 2024 Flippable - https://github.com/enpage/enpage/blob/main/LICENSE */
@@ -0,0 +1,17 @@
1
+ import * as _sinclair_typebox from '@sinclair/typebox';
2
+ import { Static } from '@sinclair/typebox';
3
+
4
+ declare const contactInfo: _sinclair_typebox.TObject<{
5
+ email: _sinclair_typebox.TString;
6
+ phone: _sinclair_typebox.TString;
7
+ address: _sinclair_typebox.TString;
8
+ socialLinks: _sinclair_typebox.TArray<_sinclair_typebox.TObject<{
9
+ url: _sinclair_typebox.TString;
10
+ title: _sinclair_typebox.TString;
11
+ description: _sinclair_typebox.TOptional<_sinclair_typebox.TString>;
12
+ icon: _sinclair_typebox.TOptional<_sinclair_typebox.TString>;
13
+ }>>;
14
+ }>;
15
+ type ContactInfo = Static<typeof contactInfo>;
16
+
17
+ export { type ContactInfo, contactInfo };
@@ -0,0 +1,2 @@
1
+ /*! Enpage - Copyright (C) 2024 Flippable - https://github.com/enpage/enpage/blob/main/LICENSE */
2
+ import{Type as i}from"@sinclair/typebox";import{Type as t}from"@sinclair/typebox";var o=t.Array(t.Object({url:t.String({format:"uri",description:"URL"}),title:t.String({description:"Title"}),description:t.Optional(t.String({description:"Description"})),icon:t.Optional(t.String({description:"Icon"}))}));var c=i.Object({email:i.String({format:"email"}),phone:i.String(),address:i.String(),socialLinks:o});export{c as contactInfo};
@@ -0,0 +1,12 @@
1
+ import * as _sinclair_typebox from '@sinclair/typebox';
2
+ import { Static } from '@sinclair/typebox';
3
+
4
+ declare const faq: _sinclair_typebox.TArray<_sinclair_typebox.TObject<{
5
+ question: _sinclair_typebox.TString;
6
+ answer: _sinclair_typebox.TString;
7
+ category: _sinclair_typebox.TOptional<_sinclair_typebox.TString>;
8
+ tags: _sinclair_typebox.TOptional<_sinclair_typebox.TArray<_sinclair_typebox.TString>>;
9
+ }>>;
10
+ type Faq = Static<typeof faq>;
11
+
12
+ export { type Faq, faq };
@@ -0,0 +1,2 @@
1
+ /*! Enpage - Copyright (C) 2024 Flippable - https://github.com/enpage/enpage/blob/main/LICENSE */
2
+ import{Type as t}from"@sinclair/typebox";var i=t.Array(t.Object({question:t.String({description:"Question"}),answer:t.String({description:"Answer"}),category:t.Optional(t.String({description:"Category"})),tags:t.Optional(t.Array(t.String(),{description:"Tags"}))}));export{i as faq};
@@ -0,0 +1,12 @@
1
+ import * as _sinclair_typebox from '@sinclair/typebox';
2
+ import { Static } from '@sinclair/typebox';
3
+
4
+ declare const links: _sinclair_typebox.TArray<_sinclair_typebox.TObject<{
5
+ url: _sinclair_typebox.TString;
6
+ title: _sinclair_typebox.TString;
7
+ description: _sinclair_typebox.TOptional<_sinclair_typebox.TString>;
8
+ icon: _sinclair_typebox.TOptional<_sinclair_typebox.TString>;
9
+ }>>;
10
+ type Links = Static<typeof links>;
11
+
12
+ export { type Links, links };
@@ -0,0 +1,2 @@
1
+ /*! Enpage - Copyright (C) 2024 Flippable - https://github.com/enpage/enpage/blob/main/LICENSE */
2
+ import{Type as i}from"@sinclair/typebox";var r=i.Array(i.Object({url:i.String({format:"uri",description:"URL"}),title:i.String({description:"Title"}),description:i.Optional(i.String({description:"Description"})),icon:i.Optional(i.String({description:"Icon"}))}));export{r as links};
@@ -0,0 +1,13 @@
1
+ import { Static, TSchema } from '@sinclair/typebox';
2
+ import { D as DatasourceProvider } from '../datasources-DAysbbXK.js';
3
+ import 'zod';
4
+ import '../attributes.js';
5
+ import '../themes/color-system.js';
6
+ import '../theme.js';
7
+ import 'chroma-js';
8
+ import '../bricks.js';
9
+ import '../manifest.js';
10
+
11
+ declare const samples: Record<Exclude<DatasourceProvider, "json">, Static<TSchema>>;
12
+
13
+ export { samples };
@@ -0,0 +1,2 @@
1
+ /*! Enpage - Copyright (C) 2024 Flippable - https://github.com/enpage/enpage/blob/main/LICENSE */
2
+ var e={data:[{from:{name:"Facebook",id:"20531316728"},id:"20531316728_10154052815206729",permalink_url:"https://www.facebook.com/facebook/posts/10154052815206729",is_hidden:!1,message:"Great photo!",object_id:"10154052815196729",link:"https://www.facebook.com/photo.php?fbid=10154052815196729&set=a.10150278999681729.345701.20531316728&type=3",is_published:!0,status_type:"added_photos",type:"photo",actions:[{name:"Comment",link:"https://www.facebook.com/20531316728/posts/10154052815206729"},{name:"Like",link:"https://www.facebook.com/20531316728/posts/10154052815206729"}]}],paging:{next:"url",previous:"url"}};var t={data:[{id:"17895695668004550",caption:"Caption",timestamp:"2021-08-26T19:00:00+0000",media_url:"https://www.instagram.com/p/CTB8Vz7p9d4/",permalink:"https://www.instagram.com/p/CTB8Vz7p9d4/",media_type:"IMAGE"},{id:"17895695668004551",caption:"Caption",timestamp:"2021-08-26T19:00:00+0000",media_url:"https://www.instagram.com/p/CTB8Vz7p9d4/",permalink:"https://www.instagram.com/p/CTB8Vz7p9d4/",media_type:"VIDEO"}]};var o=[{account:{acct:"Gargron",avatar:"https://files.mastodon.social/accounts/avatars/000/000/001/original/7b7e3c3e3e7e3e3e.png",avatar_static:"https://files.mastodon.social/accounts/avatars/000/000/001/original/7b7e3c3e3e7e3e3e.png",bot:!1,created_at:"2016-04-04T17:41:54.000Z",display_name:"Eugen",emojis:[{category:"custom",shortcode:"blobawave",static_url:"https://files.mastodon.social/custom_emojis/images/000/000/001/static/1f4a9.png",url:"https://files.mastodon.social/custom_emojis/images/000/000/001/original/1f4a9.png",visible_in_picker:!0}],id:"1",url:"https://mastodon.social/@Gargron",username:"Gargron",discoverable:!0,fields:[],followers_count:100,following_count:100,group:!1,header:"https://files.mastodon.social/accounts/headers/000/000/001/original/7b7e3c3e3e7e3e3e.png",header_static:"https://files.mastodon.social/accounts/headers/000/000/001/original/7b7e3c3e3e7e3e3e.png",last_status_at:"2021-06-26T18:00:00",locked:!1,note:"Admin of mastodon.social",noindex:!1,statuses_count:100,suspended:!1},content:"Hello, world!",created_at:"2021-06-26T18:00:00",id:"1",media_attachments:[],reblogs_count:0,replies_count:0,favourites_count:0,tags:[],uri:"https://mastodon.social/@Gargron/1",visibility:"public",sensitive:!1,application:{name:"Mastodon",website:"https://joinmastodon.org"},mentions:[],emojis:[],url:"https://mastodon.social/@Gargron/1"}];var a={link:"https://example.com",title:"Example RSS",description:"A sample RSS feed",items:[{title:"Example title",link:"https://example.com",pubDate:"2022-01-01T00:00:00Z",content:"Example content"},{title:"Another example title",link:"https://example.com",pubDate:"2022-01-02T00:00:00Z",content:"Another example content"},{title:"Yet another example title",link:"https://example.com",pubDate:"2022-01-03T00:00:00Z",content:"Yet another example content"}]};var s={data:[{id:"1",is_quote_post:!1,media_product_type:"THREADS",media_type:"IMAGE",media_url:"https://example.com/image.jpg",owner:{id:"1"},permalink:"https://example.com/post",shortcode:"123456",text:"Hello, world!",thumbnail_url:"https://example.com/thumbnail.jpg",timestamp:"2022-01-01T00:00:00Z",username:"example"},{id:"2",is_quote_post:!1,media_product_type:"THREADS",media_type:"VIDEO",media_url:"https://example.com/video.mp4",owner:{id:"2"},permalink:"https://example.com/post",shortcode:"654321",text:"Goodbye, world!",thumbnail_url:"https://example.com/thumbnail.jpg",timestamp:"2022-01-02T00:00:00Z",username:"example"}],paging:{cursors:{before:"",after:""}}};var i={data:{has_more:!0,cursor:1,videos:[{title:"Example title",video_description:"Example description",cover_image_url:"https://example.com/image.jpg",duration:60,embed_link:"https://example.com/embed",id:"1"},{title:"Another example title",video_description:"Another example description",cover_image_url:"https://example.com/image.jpg",duration:60,embed_link:"https://example.com/embed",id:"2"}]}};var m={etag:"123456789",nextPageToken:"123456789",regionCode:"US",pageInfo:{totalResults:1e4,resultsPerPage:50},items:[{etag:"123456789",id:{videoId:"dQw4w9WgXcQ",channelId:"UCXuqSBlHAE6Xw-yeJA0Tunw",playlistId:"PLFgquLnL59alCl_2TQvOiD5Vgm1hCaGSI"},snippet:{channelId:"UCXuqSBlHAE6Xw-yeJA0Tunw",channelTitle:"RickAstleyVEVO",description:"Rick Astley's official music video for \u201CNever Gonna Give You Up\u201D Listen to Rick Astley: https://RickAstley.lnk.to/_listenYD Subscribe to the official Rick Astley YouTube channel: https://RickAstley.lnk.to/_subscribeYD Follow Rick Astley: Facebook: https://RickAstley.lnk.to/_followYD Twitter: https://RickAstley.lnk.to/_followYD Instagram: https://RickAstley.lnk.to/_followYD Website: https://RickAstley.lnk.to/_followYD Spotify: https://RickAstley.lnk.to/_followYD Lyrics: We're no strangers to love You know the rules and so do I A full commitment's what I'm thinking of You wouldn't get this from any other guy I just wanna tell you how I'm feeling Gotta make you understand Never gonna give you up Never gonna let you down Never gonna run around and desert you Never gonna make you cry Never gonna say goodbye Never gonna tell a lie and hurt you #RickAstley #NeverGonnaGiveYouUp #DancePop",liveBroadcastContent:"none",publishedAt:"2009-10-25",thumbnails:{default:{height:90,url:"https://i.ytimg.com/vi/dQw4w9WgXcQ/default.jpg",width:120},standard:{height:480,url:"https://i.ytimg.com/vi/dQw4w9WgXcQ/sddefault.jpg",width:640}},title:"Rick Astley - Never Gonna Give You Up (Official Music Video)"}}]};var b={"facebook-posts":e,"instagram-feed":t,"mastodon-status":o,rss:a,"threads-media":s,"tiktok-video":i,"youtube-list":m};export{b as samples};
@@ -0,0 +1,9 @@
1
+ import '@sinclair/typebox';
2
+ import 'zod';
3
+ export { a as DatasourceFetcher, f as DatasourceFetcherParams, D as DatasourceProvider, O as OAuthConfig, e as ProviderOptions, g as datasourceProvider, p as providerOptions } from '../datasources-DAysbbXK.js';
4
+ import '../attributes.js';
5
+ import '../themes/color-system.js';
6
+ import '../theme.js';
7
+ import 'chroma-js';
8
+ import '../bricks.js';
9
+ import '../manifest.js';
@@ -0,0 +1,2 @@
1
+ /*! Enpage - Copyright (C) 2024 Flippable - https://github.com/enpage/enpage/blob/main/LICENSE */
2
+ import{Type as t}from"@sinclair/typebox";import e from"zod";var n=t.Object({nextRefreshDelay:t.Optional(t.Number())}),o=["facebook-posts","instagram-feed","mastodon-status","rss","threads-media","tiktok-video","youtube-list","json"],p=e.enum(o);export{p as datasourceProvider,n as providerOptions};
@@ -0,0 +1,3 @@
1
+ declare function stringifyObjectValues(obj: Record<string, string | number | Date | boolean>): Record<string, string>;
2
+
3
+ export { stringifyObjectValues };
@@ -0,0 +1,2 @@
1
+ /*! Enpage - Copyright (C) 2024 Flippable - https://github.com/enpage/enpage/blob/main/LICENSE */
2
+ function n(t){return Object.fromEntries(Object.entries(t).map(([r,e])=>[r,e.toString()]))}export{n as stringifyObjectValues};
@@ -0,0 +1,201 @@
1
+ import * as _sinclair_typebox from '@sinclair/typebox';
2
+ import { Static, TSchema } from '@sinclair/typebox';
3
+ import z from 'zod';
4
+ import { defineAttributes, AttributesResolved } from './attributes.js';
5
+ import { Brick } from './bricks.js';
6
+ import { defineManifest } from './manifest.js';
7
+
8
+ type EnpageTemplateConfig = {
9
+ /**
10
+ * The template manifest and settings
11
+ */
12
+ manifest: ReturnType<typeof defineManifest>;
13
+ /**
14
+ * The attributes declared for the template
15
+ */
16
+ attributes: ReturnType<typeof defineAttributes>;
17
+ /**
18
+ * The datasources declared for the template
19
+ */
20
+ datasources?: ReturnType<typeof defineDataSources>;
21
+ /**
22
+ * The blocks declared for the template
23
+ */
24
+ pages: ReturnType<typeof definePages>;
25
+ };
26
+
27
+ type PageBasicInfo = {
28
+ id: string;
29
+ siteId: string;
30
+ label: string;
31
+ };
32
+ /**
33
+ * The Page config represents the page configuration (datasources, attributes, etc)
34
+ */
35
+ type PageConfig<D extends DatasourceManifestMap, A extends EnpageTemplateConfig["attributes"], B extends Brick[]> = {
36
+ /**
37
+ * The page id.
38
+ */
39
+ id: string;
40
+ siteId: string;
41
+ /**
42
+ * Pathname to the page
43
+ */
44
+ path: string;
45
+ /**
46
+ * Label of the page
47
+ */
48
+ label: string;
49
+ /**
50
+ * Hostname of the site
51
+ */
52
+ hostname: string;
53
+ /**
54
+ * Map of all pages in the site.
55
+ */
56
+ pagesMap: {
57
+ id: string;
58
+ label: string;
59
+ path: string;
60
+ tags: string[];
61
+ }[];
62
+ /**
63
+ * Data sources manifests for the page. Undefined if no data sources are defined.
64
+ */
65
+ datasources?: D;
66
+ /**
67
+ * Resolved static data sources for the page.
68
+ * Undefined if no data sources are defined.
69
+ */
70
+ data?: D extends DatasourceManifestMap ? DatasourceResolved<D> : undefined;
71
+ /**
72
+ * Page attributes.
73
+ */
74
+ attributes: A;
75
+ /**
76
+ * Resolved attributes for the page.
77
+ */
78
+ attr: AttributesResolved;
79
+ bricks: B;
80
+ };
81
+ type GenericPageConfig = PageConfig<DatasourceManifestMap, EnpageTemplateConfig["attributes"], Brick[]>;
82
+ declare function createPageConfigSampleFromTemplateConfig(templateConfig: EnpageTemplateConfig, path?: string): {
83
+ id: string;
84
+ siteId: string;
85
+ hostname: string;
86
+ label: string;
87
+ pagesMap: never[];
88
+ path: string;
89
+ datasources: DatasourceManifestMap | undefined;
90
+ data: undefined;
91
+ attributes: _sinclair_typebox.TObject<{
92
+ $pageLanguage: _sinclair_typebox.TUnion<_sinclair_typebox.TLiteral<string>[]>;
93
+ $pagePath: _sinclair_typebox.TString;
94
+ $pageTitle: _sinclair_typebox.TString;
95
+ $pageDescription: _sinclair_typebox.TString;
96
+ $pageKeywords: _sinclair_typebox.TString;
97
+ $pageLastUpdated: _sinclair_typebox.TString;
98
+ $pageWidth: _sinclair_typebox.TUnion<_sinclair_typebox.TLiteral<string>[]>;
99
+ $pagePaddingVertical: _sinclair_typebox.TUnion<_sinclair_typebox.TLiteral<string>[]>;
100
+ $pagePaddingHorizontal: _sinclair_typebox.TUnion<_sinclair_typebox.TLiteral<string>[]>;
101
+ $backgroundColor: _sinclair_typebox.TString;
102
+ $textColor: _sinclair_typebox.TString;
103
+ }>;
104
+ attr: {
105
+ $pageLanguage: string;
106
+ $pagePath: string;
107
+ $pageTitle: string;
108
+ $pageDescription: string;
109
+ $pageKeywords: string;
110
+ $pageLastUpdated: string;
111
+ $pageWidth: string;
112
+ $pagePaddingVertical: string;
113
+ $pagePaddingHorizontal: string;
114
+ $backgroundColor: string;
115
+ $textColor: string;
116
+ };
117
+ bricks: Brick[];
118
+ };
119
+ type TemplatePage = {
120
+ label: string;
121
+ path: string;
122
+ bricks: Brick[];
123
+ };
124
+ declare function definePages(pages: TemplatePage[]): TemplatePage[];
125
+
126
+ declare const providerOptions: _sinclair_typebox.TObject<{
127
+ nextRefreshDelay: _sinclair_typebox.TOptional<_sinclair_typebox.TNumber>;
128
+ }>;
129
+ type ProviderOptions = Static<typeof providerOptions>;
130
+ interface OAuthConfig<T> {
131
+ siteId: string;
132
+ siteDatasourceId: string;
133
+ config: T;
134
+ oauthTokenExpireAt: Date;
135
+ oauthRefreshTokenExpireAt: Date | null;
136
+ nextRefreshTokenAt: Date | null;
137
+ }
138
+ type DatasourceFetcherParams<OAuthProps = unknown, Opts extends ProviderOptions = ProviderOptions> = {
139
+ options: Opts;
140
+ pageConfig: GenericPageConfig;
141
+ oauth: OAuthProps extends null ? null : OAuthConfig<OAuthProps>;
142
+ };
143
+ type DatasourceFetcher<T = unknown, OAuthOpts = unknown, Opts extends ProviderOptions = ProviderOptions> = (params: DatasourceFetcherParams<OAuthOpts, Opts>) => Promise<T>;
144
+ declare const providers: readonly ["facebook-posts", "instagram-feed", "mastodon-status", "rss", "threads-media", "tiktok-video", "youtube-list", "json"];
145
+ type DatasourceProvider = (typeof providers)[number];
146
+ declare const datasourceProvider: z.ZodEnum<["facebook-posts", "instagram-feed", "mastodon-status", "rss", "threads-media", "tiktok-video", "youtube-list", "json"]>;
147
+
148
+ type HttpJsonSchema = TSchema;
149
+ declare const providersSchemaMap: Record<DatasourceProvider, TSchema>;
150
+ type DatasourceProviderSchemaMap = {
151
+ [key in DatasourceProvider]: Static<(typeof providersSchemaMap)[key]>;
152
+ };
153
+ declare const providersOptionsMap: Record<DatasourceProvider, TSchema>;
154
+ type DatasourceProviderOptionsMap = {
155
+ [key in DatasourceProvider]: Static<(typeof providersOptionsMap)[key]>;
156
+ };
157
+ type DatasourceProviderManifest<P extends DatasourceProvider, O extends DatasourceProviderOptionsMap[P] = DatasourceProviderOptionsMap[P], S extends TSchema = P extends "json" ? HttpJsonSchema : (typeof providersSchemaMap)[P]> = {
158
+ provider: P;
159
+ options: O;
160
+ name: string;
161
+ description?: string;
162
+ } & (P extends "json" ? {
163
+ schema: S;
164
+ sampleData?: Static<S>;
165
+ } : {
166
+ schema?: never;
167
+ sampleData?: Static<S>;
168
+ }) & {
169
+ refresh?: {
170
+ method: "interval" | "manual" | "live";
171
+ interval?: number;
172
+ };
173
+ };
174
+ type DatasourceGenericManifest<S extends TSchema> = {
175
+ provider?: never;
176
+ name: string;
177
+ description?: string;
178
+ schema: S;
179
+ refresh?: {
180
+ method: "interval" | "manual";
181
+ interval?: number;
182
+ };
183
+ sampleData?: Static<S>;
184
+ };
185
+ type DatasourceManifestMap = Record<string, DatasourceGenericManifest<TSchema> | {
186
+ [P in DatasourceProvider]: DatasourceProviderManifest<P>;
187
+ }[DatasourceProvider]>;
188
+ type EnsureDatasourceManifestMap<T> = T extends DatasourceManifestMap ? T : never;
189
+ type IsProvider<T> = T extends {
190
+ provider: DatasourceProvider;
191
+ } ? T : never;
192
+ type DatasourceResolved<D extends DatasourceManifestMap> = {
193
+ [K in keyof D]: IsProvider<D[K]> extends never ? D[K] extends DatasourceGenericManifest<infer S> ? DatasourceGenericManifest<S> & {
194
+ data: Static<S>;
195
+ } : unknown : D[K] extends DatasourceProviderManifest<infer P, infer O, infer S> ? P extends DatasourceProvider ? DatasourceProviderManifest<P, O, S> & {
196
+ data: P extends "json" ? Static<S> : Static<(typeof providersSchemaMap)[P]>;
197
+ } : unknown : unknown;
198
+ };
199
+ declare function defineDataSources<T extends DatasourceManifestMap>(datasources: T): EnsureDatasourceManifestMap<T>;
200
+
201
+ export { type DatasourceProvider as D, type EnpageTemplateConfig as E, type GenericPageConfig as G, type OAuthConfig as O, type PageBasicInfo as P, type TemplatePage as T, type DatasourceFetcher as a, type PageConfig as b, createPageConfigSampleFromTemplateConfig as c, definePages as d, type ProviderOptions as e, type DatasourceFetcherParams as f, datasourceProvider as g, providersSchemaMap as h, type DatasourceProviderSchemaMap as i, providersOptionsMap as j, type DatasourceProviderOptionsMap as k, type DatasourceProviderManifest as l, type DatasourceGenericManifest as m, type DatasourceManifestMap as n, type DatasourceResolved as o, providerOptions as p, defineDataSources as q };
@@ -0,0 +1,9 @@
1
+ export { TSchema, Type as ds } from '@sinclair/typebox';
2
+ export { m as DatasourceGenericManifest, n as DatasourceManifestMap, l as DatasourceProviderManifest, k as DatasourceProviderOptionsMap, i as DatasourceProviderSchemaMap, o as DatasourceResolved, q as defineDataSources, j as providersOptionsMap, h as providersSchemaMap } from './datasources-DAysbbXK.js';
3
+ import 'zod';
4
+ import './attributes.js';
5
+ import './themes/color-system.js';
6
+ import './theme.js';
7
+ import 'chroma-js';
8
+ import './bricks.js';
9
+ import './manifest.js';
@@ -0,0 +1,2 @@
1
+ /*! Enpage - Copyright (C) 2024 Flippable - https://github.com/enpage/enpage/blob/main/LICENSE */
2
+ import{Type as l}from"@sinclair/typebox";import{Type as o}from"@sinclair/typebox";var y=o.Object({etag:o.String(),nextPageToken:o.String(),regionCode:o.String(),pageInfo:o.Object({totalResults:o.Number(),resultsPerPage:o.Number()}),items:o.Array(o.Object({etag:o.String(),id:o.Object({videoId:o.String(),channelId:o.String(),playlistId:o.String()}),snippet:o.Object({publishedAt:o.String(),channelId:o.String(),title:o.String(),description:o.String(),thumbnails:o.Object({default:o.Object({url:o.String(),width:o.Number(),height:o.Number()}),standard:o.Object({url:o.String(),width:o.Number(),height:o.Number()})}),channelTitle:o.String(),liveBroadcastContent:o.String()})}))});import{Type as r}from"@sinclair/typebox";var f=r.Object({data:r.Array(r.Object({from:r.Object({name:r.String(),id:r.String()}),id:r.String(),permalink_url:r.String(),is_hidden:r.Boolean(),message:r.Optional(r.String()),object_id:r.String(),link:r.String(),is_published:r.Boolean(),status_type:r.String(),type:r.String(),actions:r.Array(r.Object({name:r.String(),link:r.String()}))})),paging:r.Object({previous:r.Optional(r.String()),next:r.Optional(r.String())})});import{Type as n}from"@sinclair/typebox";var b=n.Object({data:n.Array(n.Object({id:n.String(),caption:n.String(),timestamp:n.String(),media_url:n.String(),permalink:n.String(),media_type:n.Union([n.Literal("IMAGE"),n.Literal("VIDEO"),n.Literal("CAROUSEL_ALBUM")])})),paging:n.Object({cursors:n.Object({before:n.Optional(n.String()),after:n.Optional(n.String())}),next:n.Optional(n.String())})});import{Type as t}from"@sinclair/typebox";import{Type as e}from"@sinclair/typebox";var v=e.Object({id:e.String(),username:e.String(),acct:e.String(),url:e.String(),display_name:e.Optional(e.String()),note:e.String(),avatar:e.String(),avatar_static:e.String(),header:e.String(),header_static:e.String(),locked:e.Boolean(),fields:e.Array(e.Object({name:e.String(),value:e.String(),verified_at:e.Optional(e.String())})),emojis:e.Array(e.Object({shortcode:e.String(),url:e.String(),static_url:e.String(),visible_in_picker:e.Boolean(),category:e.Optional(e.String())})),bot:e.Boolean(),group:e.Boolean(),discoverable:e.Union([e.Boolean(),e.Null()]),noindex:e.Optional(e.Boolean()),moved:e.Optional(e.String()),suspended:e.Optional(e.Boolean()),limited:e.Optional(e.Boolean()),created_at:e.String(),last_status_at:e.Optional(e.String()),statuses_count:e.Number(),followers_count:e.Number(),following_count:e.Number()});var B=t.Object({id:t.String(),type:t.Union([t.Literal("audio"),t.Literal("image"),t.Literal("video"),t.Literal("gifv"),t.Literal("unknown")]),url:t.String(),preview_url:t.Optional(t.String()),remote_url:t.Optional(t.String()),meta:t.Record(t.String(),t.Any()),description:t.Optional(t.String()),blurhash:t.Optional(t.String())}),x=t.Object({shortcode:t.String(),url:t.String(),static_url:t.String(),visible_in_picker:t.Boolean(),category:t.Optional(t.String())}),C=t.Object({url:t.String(),title:t.String(),description:t.String(),type:t.Union([t.Literal("link"),t.Literal("photo"),t.Literal("video"),t.Literal("rich")]),author_name:t.String(),author_url:t.String(),provider_name:t.String(),provider_url:t.String(),html:t.String(),width:t.Number(),height:t.Number(),image:t.Optional(t.String()),embed_url:t.String(),blurhash:t.Optional(t.String())}),N=t.Object({id:t.String(),expires_at:t.String(),expired:t.Boolean(),multiple:t.Boolean(),votes_count:t.Number(),options:t.Array(t.Object({title:t.String(),votes_count:t.Number()})),voted:t.Optional(t.Boolean()),own_votes:t.Optional(t.Array(t.Number())),emojis:t.Array(x)}),w=t.Object({id:t.String(),uri:t.String(),created_at:t.String(),account:v,content:t.String(),visibility:t.Union([t.Literal("public"),t.Literal("unlisted"),t.Literal("private"),t.Literal("direct")]),sensitive:t.Boolean(),media_attachments:t.Array(B),application:t.Optional(t.Object({name:t.String(),website:t.Optional(t.String())})),mentions:t.Array(t.Object({id:t.String(),username:t.String(),acct:t.String(),url:t.String()})),tags:t.Array(t.Object({name:t.String(),url:t.String()})),emojis:t.Array(x),reblogs_count:t.Number(),favourites_count:t.Number(),replies_count:t.Number(),url:t.String(),in_reply_to_id:t.Optional(t.String()),in_reply_to_account_id:t.Optional(t.String()),reblog:t.Optional(t.Ref("mastodonStatus")),poll:t.Optional(N),card:t.Optional(C),language:t.Optional(t.String()),text:t.Optional(t.String()),edited_at:t.Optional(t.String()),favourited:t.Optional(t.Boolean()),reblogged:t.Optional(t.Boolean()),muted:t.Optional(t.Boolean()),bookmarked:t.Optional(t.Boolean()),pinned:t.Optional(t.Boolean())},{$id:"mastodonStatus"}),_=t.Array(w);import{Type as a}from"@sinclair/typebox";var k=a.Object({title:a.String({title:"Title",description:"The title of the RSS feed"}),link:a.String({title:"Link",description:"The link to the RSS feed"}),description:a.Optional(a.String({title:"Description",description:"The description of the RSS feed"})),updated:a.Optional(a.String({title:"Updated",description:"The last updated date of the RSS feed"})),items:a.Array(a.Object({title:a.Optional(a.String({title:"Title",description:"The title of the RSS feed item"})),link:a.Optional(a.String({title:"Link",description:"The link to the RSS feed item"})),creator:a.Optional(a.String({title:"Creator",description:"The creator of the RSS feed item"})),content:a.Optional(a.String({title:"Content",description:"The content of the RSS feed item"})),pubDate:a.Optional(a.String({title:"Pub Date",description:"The publication date of the RSS feed item"}))}))});import{Type as i}from"@sinclair/typebox";var P=i.Object({data:i.Array(i.Object({id:i.String(),media_product_type:i.Literal("THREADS"),media_type:i.Union([i.Literal("TEXT_POST"),i.Literal("IMAGE"),i.Literal("VIDEO"),i.Literal("CAROUSEL_ALBUM"),i.Literal("AUDIO"),i.Literal("REPOST_FACADE")]),media_url:i.String(),permalink:i.String(),owner:i.Object({id:i.String()}),username:i.String(),text:i.String(),timestamp:i.String(),thumbnail_url:i.String(),shortcode:i.String(),is_quote_post:i.Boolean()})),paging:i.Object({cursors:i.Object({before:i.String(),after:i.String()})})});import{Type as s}from"@sinclair/typebox";var T=s.Object({data:s.Object({has_more:s.Boolean(),cursor:s.Number(),videos:s.Array(s.Object({title:s.String(),video_description:s.String(),cover_image_url:s.String(),duration:s.Number(),embed_link:s.String(),id:s.String()}))}),error:s.Optional(s.Object({code:s.String(),message:s.String(),log_id:s.String()}))});import{Type as c}from"@sinclair/typebox";import{Type as u}from"@sinclair/typebox";import I from"zod";var p=u.Object({nextRefreshDelay:u.Optional(u.Number())}),E=["facebook-posts","instagram-feed","mastodon-status","rss","threads-media","tiktok-video","youtube-list","json"],rt=I.enum(E);var j=c.Composite([p,c.Object({channelId:c.String(),order:c.Optional(c.String()),maxResults:c.Optional(c.Number()),regionCode:c.Optional(c.String()),relevanceLanguage:c.Optional(c.String())})]);import{Type as S}from"@sinclair/typebox";var d=S.Composite([p,S.Object({limit:S.Optional(S.Number())})]);import{Type as g}from"@sinclair/typebox";var D=g.Composite([p,g.Object({username:g.String()})]);import{Type as m}from"@sinclair/typebox";var A=m.Composite([p,m.Object({url:m.String(),headers:m.Optional(m.Record(m.String(),m.String()))})]);import{Type as O}from"@sinclair/typebox";var M=O.Composite([p,O.Object({url:O.String({format:"uri"})})]);import{Type as h}from"@sinclair/typebox";var L=h.Composite([p,h.Object({maxCount:h.Number()})]);import{Type as Jt}from"@sinclair/typebox";var Et={"youtube-list":y,"facebook-posts":f,"instagram-feed":b,"mastodon-status":_,json:l.Union([l.Array(l.Any()),l.Object({},{additionalProperties:!0})]),rss:k,"threads-media":P,"tiktok-video":T},Ut={"youtube-list":j,"facebook-posts":d,"instagram-feed":d,"mastodon-status":D,json:A,rss:M,"threads-media":d,"tiktok-video":L};function Vt(R){return R}export{Vt as defineDataSources,Jt as ds,Ut as providersOptionsMap,Et as providersSchemaMap};
@@ -0,0 +1,27 @@
1
+ import { HattipHandler } from '@hattip/core';
2
+ import { D1Database, KVNamespace, R2Bucket } from '@cloudflare/workers-types';
3
+
4
+ type EnpageEnv = {
5
+ PUBLIC_ENPAGE_SITE_ID: string;
6
+ PUBLIC_ENPAGE_API_BASE_URL: string;
7
+ PUBLIC_ENPAGE_SITE_HOST: string;
8
+ PUBLIC_ENPAGE_ASSETS_BASE_URL?: string;
9
+ ENPAGE_API_TOKEN: string;
10
+ SITES_DB: D1Database;
11
+ SITES_CACHE: KVNamespace;
12
+ R2_SITES_BUCKET: R2Bucket;
13
+ R2_SITES_BUCKET_NAME: string;
14
+ R2_ACCESS_KEY_ID: string;
15
+ R2_SECRET_ACCESS_KEY: string;
16
+ NODE_ENV: "development" | "production" | "preview" | "local-preview";
17
+ DATASOURCE_REFRESH_DELAY_IN_MINUTE: string;
18
+ FACEBOOK_APP_SECRET?: string;
19
+ INSTAGRAM_APP_SECRET?: string;
20
+ THREADS_APP_SECRET?: string;
21
+ TIKTOK_CLIENT_KEY?: string;
22
+ TIKTOK_CLIENT_SECRET?: string;
23
+ YOUTUBE_API_KEY?: string;
24
+ };
25
+ type PageInfoHandler = HattipHandler;
26
+
27
+ export type { EnpageEnv, PageInfoHandler };
@@ -0,0 +1 @@
1
+ /*! Enpage - Copyright (C) 2024 Flippable - https://github.com/enpage/enpage/blob/main/LICENSE */
@@ -0,0 +1 @@
1
+ export { UnauthorizedError } from 'http-errors-enhanced';
@@ -0,0 +1,2 @@
1
+ /*! Enpage - Copyright (C) 2024 Flippable - https://github.com/enpage/enpage/blob/main/LICENSE */
2
+ import{UnauthorizedError as e}from"http-errors-enhanced";export{e as UnauthorizedError};
@@ -0,0 +1,5 @@
1
+ declare const _default: {
2
+ name: string;
3
+ };
4
+
5
+ export { _default as default };
@@ -0,0 +1,2 @@
1
+ /*! Enpage - Copyright (C) 2024 Flippable - https://github.com/enpage/enpage/blob/main/LICENSE */
2
+ var e={name:"enpage-sdk"};export{e as default};
@@ -0,0 +1,20 @@
1
+ /**
2
+ * The grid on mobile is 18 columns wide, on desktop it's 36 columns wide.
3
+ */
4
+ declare const LAYOUT_COLS: {
5
+ desktop: number;
6
+ mobile: number;
7
+ };
8
+ declare const LAYOUT_BREAKPOINTS: {
9
+ desktop: number;
10
+ mobile: number;
11
+ };
12
+ /**
13
+ * Important: keep the same pdding for x and y.
14
+ */
15
+ /**
16
+ * This is the height of a row in the layout grid.
17
+ */
18
+ declare const LAYOUT_ROW_HEIGHT = 20;
19
+
20
+ export { LAYOUT_BREAKPOINTS, LAYOUT_COLS, LAYOUT_ROW_HEIGHT };
@@ -0,0 +1,2 @@
1
+ /*! Enpage - Copyright (C) 2024 Flippable - https://github.com/enpage/enpage/blob/main/LICENSE */
2
+ var o={desktop:36,mobile:18},t={desktop:1024,mobile:1},e=20;export{t as LAYOUT_BREAKPOINTS,o as LAYOUT_COLS,e as LAYOUT_ROW_HEIGHT};
@@ -0,0 +1,34 @@
1
+ import z from 'zod';
2
+
3
+ declare const templateManifestSchema: z.ZodObject<{
4
+ id: z.ZodOptional<z.ZodString>;
5
+ name: z.ZodString;
6
+ description: z.ZodString;
7
+ readme: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
8
+ tags: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
9
+ author: z.ZodString;
10
+ thumbnail: z.ZodOptional<z.ZodString>;
11
+ homepage: z.ZodOptional<z.ZodString>;
12
+ }, "strip", z.ZodTypeAny, {
13
+ description: string;
14
+ name: string;
15
+ author: string;
16
+ id?: string | undefined;
17
+ tags?: string[] | undefined;
18
+ readme?: Record<string, string> | undefined;
19
+ thumbnail?: string | undefined;
20
+ homepage?: string | undefined;
21
+ }, {
22
+ description: string;
23
+ name: string;
24
+ author: string;
25
+ id?: string | undefined;
26
+ tags?: string[] | undefined;
27
+ readme?: Record<string, string> | undefined;
28
+ thumbnail?: string | undefined;
29
+ homepage?: string | undefined;
30
+ }>;
31
+ type TemplateManifest = z.infer<typeof templateManifestSchema>;
32
+ declare function defineManifest(manifest: Omit<TemplateManifest, "id" | "thumbnail">): TemplateManifest;
33
+
34
+ export { type TemplateManifest, defineManifest, templateManifestSchema };
@@ -0,0 +1,2 @@
1
+ /*! Enpage - Copyright (C) 2024 Flippable - https://github.com/enpage/enpage/blob/main/LICENSE */
2
+ import t from"zod";var n=t.object({id:t.string().optional(),name:t.string(),description:t.string(),readme:t.record(t.string()).optional(),tags:t.array(t.string()).optional(),author:t.string(),thumbnail:t.string().url().optional(),homepage:t.string().url().optional()});function a(e){return e}export{a as defineManifest,n as templateManifestSchema};