@upstart.gg/sdk 0.0.138 → 0.0.139
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/shared/ai/schemas.d.ts +20 -15
- package/dist/shared/ai/schemas.d.ts.map +1 -1
- package/dist/shared/ai/schemas.js +31 -57
- package/dist/shared/ai/schemas.js.map +1 -1
- package/dist/shared/ai/types.d.ts +193 -190
- package/dist/shared/ai/types.d.ts.map +1 -1
- package/dist/shared/ai/types.js +1 -3
- package/dist/shared/analytics/init.d.ts +4 -1
- package/dist/shared/analytics/init.d.ts.map +1 -1
- package/dist/shared/analytics/init.js +14 -20
- package/dist/shared/analytics/init.js.map +1 -1
- package/dist/shared/analytics/track.d.ts +6 -2
- package/dist/shared/analytics/track.d.ts.map +1 -1
- package/dist/shared/analytics/track.js +14 -24
- package/dist/shared/analytics/track.js.map +1 -1
- package/dist/shared/analytics/types.d.ts +10 -8
- package/dist/shared/analytics/types.d.ts.map +1 -1
- package/dist/shared/analytics/types.js +1 -3
- package/dist/shared/attributes.d.ts +488 -483
- package/dist/shared/attributes.d.ts.map +1 -1
- package/dist/shared/attributes.js +369 -45
- package/dist/shared/attributes.js.map +1 -1
- package/dist/shared/brick-manifest.d.ts +126 -108
- package/dist/shared/brick-manifest.d.ts.map +1 -1
- package/dist/shared/brick-manifest.js +36 -12
- package/dist/shared/brick-manifest.js.map +1 -1
- package/dist/shared/bricks/manifests/_types.d.ts +11 -7
- package/dist/shared/bricks/manifests/_types.d.ts.map +1 -1
- package/dist/shared/bricks/manifests/_types.js +1 -3
- package/dist/shared/bricks/manifests/accordion.manifest.d.ts +83 -76
- package/dist/shared/bricks/manifests/accordion.manifest.d.ts.map +1 -1
- package/dist/shared/bricks/manifests/accordion.manifest.js +389 -24
- package/dist/shared/bricks/manifests/accordion.manifest.js.map +1 -1
- package/dist/shared/bricks/manifests/all-manifests.d.ts +15 -10
- package/dist/shared/bricks/manifests/all-manifests.d.ts.map +1 -1
- package/dist/shared/bricks/manifests/all-manifests.js +128 -61
- package/dist/shared/bricks/manifests/all-manifests.js.map +1 -1
- package/dist/shared/bricks/manifests/all-props.d.ts +1510 -1505
- package/dist/shared/bricks/manifests/all-props.d.ts.map +1 -1
- package/dist/shared/bricks/manifests/all-props.js +167 -241
- package/dist/shared/bricks/manifests/all-props.js.map +1 -1
- package/dist/shared/bricks/manifests/box.manifest.d.ts +87 -80
- package/dist/shared/bricks/manifests/box.manifest.d.ts.map +1 -1
- package/dist/shared/bricks/manifests/box.manifest.js +548 -27
- package/dist/shared/bricks/manifests/box.manifest.js.map +1 -1
- package/dist/shared/bricks/manifests/button.manifest.d.ts +75 -68
- package/dist/shared/bricks/manifests/button.manifest.d.ts.map +1 -1
- package/dist/shared/bricks/manifests/button.manifest.js +308 -23
- package/dist/shared/bricks/manifests/button.manifest.js.map +1 -1
- package/dist/shared/bricks/manifests/card.manifest.d.ts +96 -89
- package/dist/shared/bricks/manifests/card.manifest.d.ts.map +1 -1
- package/dist/shared/bricks/manifests/card.manifest.js +392 -28
- package/dist/shared/bricks/manifests/card.manifest.js.map +1 -1
- package/dist/shared/bricks/manifests/carousel.manifest.d.ts +86 -79
- package/dist/shared/bricks/manifests/carousel.manifest.d.ts.map +1 -1
- package/dist/shared/bricks/manifests/carousel.manifest.js +775 -26
- package/dist/shared/bricks/manifests/carousel.manifest.js.map +1 -1
- package/dist/shared/bricks/manifests/footer.manifest.d.ts +117 -110
- package/dist/shared/bricks/manifests/footer.manifest.d.ts.map +1 -1
- package/dist/shared/bricks/manifests/footer.manifest.js +864 -25
- package/dist/shared/bricks/manifests/footer.manifest.js.map +1 -1
- package/dist/shared/bricks/manifests/form.manifest.d.ts +94 -87
- package/dist/shared/bricks/manifests/form.manifest.d.ts.map +1 -1
- package/dist/shared/bricks/manifests/form.manifest.js +324 -25
- package/dist/shared/bricks/manifests/form.manifest.js.map +1 -1
- package/dist/shared/bricks/manifests/hero.manifest.d.ts +80 -73
- package/dist/shared/bricks/manifests/hero.manifest.d.ts.map +1 -1
- package/dist/shared/bricks/manifests/hero.manifest.js +202 -24
- package/dist/shared/bricks/manifests/hero.manifest.js.map +1 -1
- package/dist/shared/bricks/manifests/html.manifest.d.ts +68 -61
- package/dist/shared/bricks/manifests/html.manifest.d.ts.map +1 -1
- package/dist/shared/bricks/manifests/html.manifest.js +95 -18
- package/dist/shared/bricks/manifests/html.manifest.js.map +1 -1
- package/dist/shared/bricks/manifests/icon.manifest.d.ts +74 -67
- package/dist/shared/bricks/manifests/icon.manifest.d.ts.map +1 -1
- package/dist/shared/bricks/manifests/icon.manifest.js +239 -24
- package/dist/shared/bricks/manifests/icon.manifest.js.map +1 -1
- package/dist/shared/bricks/manifests/image.manifest.d.ts +97 -90
- package/dist/shared/bricks/manifests/image.manifest.d.ts.map +1 -1
- package/dist/shared/bricks/manifests/image.manifest.js +456 -27
- package/dist/shared/bricks/manifests/image.manifest.js.map +1 -1
- package/dist/shared/bricks/manifests/images-gallery.manifest.d.ts +93 -86
- package/dist/shared/bricks/manifests/images-gallery.manifest.d.ts.map +1 -1
- package/dist/shared/bricks/manifests/images-gallery.manifest.js +598 -25
- package/dist/shared/bricks/manifests/images-gallery.manifest.js.map +1 -1
- package/dist/shared/bricks/manifests/map.manifest.d.ts +78 -71
- package/dist/shared/bricks/manifests/map.manifest.d.ts.map +1 -1
- package/dist/shared/bricks/manifests/map.manifest.js +138 -23
- package/dist/shared/bricks/manifests/map.manifest.js.map +1 -1
- package/dist/shared/bricks/manifests/navbar.manifest.d.ts +117 -110
- package/dist/shared/bricks/manifests/navbar.manifest.d.ts.map +1 -1
- package/dist/shared/bricks/manifests/navbar.manifest.js +370 -28
- package/dist/shared/bricks/manifests/navbar.manifest.js.map +1 -1
- package/dist/shared/bricks/manifests/sidebar.manifest.d.ts +94 -87
- package/dist/shared/bricks/manifests/sidebar.manifest.d.ts.map +1 -1
- package/dist/shared/bricks/manifests/sidebar.manifest.js +69 -24
- package/dist/shared/bricks/manifests/sidebar.manifest.js.map +1 -1
- package/dist/shared/bricks/manifests/social-links.manifest.d.ts +84 -77
- package/dist/shared/bricks/manifests/social-links.manifest.d.ts.map +1 -1
- package/dist/shared/bricks/manifests/social-links.manifest.js +465 -24
- package/dist/shared/bricks/manifests/social-links.manifest.js.map +1 -1
- package/dist/shared/bricks/manifests/spacer.manifest.d.ts +65 -58
- package/dist/shared/bricks/manifests/spacer.manifest.d.ts.map +1 -1
- package/dist/shared/bricks/manifests/spacer.manifest.js +39 -18
- package/dist/shared/bricks/manifests/spacer.manifest.js.map +1 -1
- package/dist/shared/bricks/manifests/table.manifest.d.ts +93 -86
- package/dist/shared/bricks/manifests/table.manifest.d.ts.map +1 -1
- package/dist/shared/bricks/manifests/table.manifest.js +771 -25
- package/dist/shared/bricks/manifests/table.manifest.js.map +1 -1
- package/dist/shared/bricks/manifests/tabs.manifest.d.ts +91 -84
- package/dist/shared/bricks/manifests/tabs.manifest.d.ts.map +1 -1
- package/dist/shared/bricks/manifests/tabs.manifest.js +119 -25
- package/dist/shared/bricks/manifests/tabs.manifest.js.map +1 -1
- package/dist/shared/bricks/manifests/testimonials.manifest.d.ts +97 -90
- package/dist/shared/bricks/manifests/testimonials.manifest.d.ts.map +1 -1
- package/dist/shared/bricks/manifests/testimonials.manifest.js +223 -28
- package/dist/shared/bricks/manifests/testimonials.manifest.js.map +1 -1
- package/dist/shared/bricks/manifests/text.manifest.d.ts +76 -69
- package/dist/shared/bricks/manifests/text.manifest.d.ts.map +1 -1
- package/dist/shared/bricks/manifests/text.manifest.js +199 -23
- package/dist/shared/bricks/manifests/text.manifest.js.map +1 -1
- package/dist/shared/bricks/manifests/timeline.manifest.d.ts +102 -95
- package/dist/shared/bricks/manifests/timeline.manifest.d.ts.map +1 -1
- package/dist/shared/bricks/manifests/timeline.manifest.js +401 -25
- package/dist/shared/bricks/manifests/timeline.manifest.js.map +1 -1
- package/dist/shared/bricks/manifests/video.manifest.d.ts +74 -67
- package/dist/shared/bricks/manifests/video.manifest.d.ts.map +1 -1
- package/dist/shared/bricks/manifests/video.manifest.js +97 -21
- package/dist/shared/bricks/manifests/video.manifest.js.map +1 -1
- package/dist/shared/bricks/props/align.d.ts +12 -7
- package/dist/shared/bricks/props/align.d.ts.map +1 -1
- package/dist/shared/bricks/props/align.js +74 -13
- package/dist/shared/bricks/props/align.js.map +1 -1
- package/dist/shared/bricks/props/background.d.ts +21 -17
- package/dist/shared/bricks/props/background.d.ts.map +1 -1
- package/dist/shared/bricks/props/background.js +63 -11
- package/dist/shared/bricks/props/background.js.map +1 -1
- package/dist/shared/bricks/props/boolean.d.ts +6 -2
- package/dist/shared/bricks/props/boolean.d.ts.map +1 -1
- package/dist/shared/bricks/props/boolean.js +12 -8
- package/dist/shared/bricks/props/boolean.js.map +1 -1
- package/dist/shared/bricks/props/border.d.ts +12 -7
- package/dist/shared/bricks/props/border.d.ts.map +1 -1
- package/dist/shared/bricks/props/border.js +85 -12
- package/dist/shared/bricks/props/border.js.map +1 -1
- package/dist/shared/bricks/props/color-preset.d.ts +331 -327
- package/dist/shared/bricks/props/color-preset.d.ts.map +1 -1
- package/dist/shared/bricks/props/color-preset.js +378 -10
- package/dist/shared/bricks/props/color-preset.js.map +1 -1
- package/dist/shared/bricks/props/color.d.ts +10 -5
- package/dist/shared/bricks/props/color.d.ts.map +1 -1
- package/dist/shared/bricks/props/color.js +27 -10
- package/dist/shared/bricks/props/color.js.map +1 -1
- package/dist/shared/bricks/props/common.d.ts +32 -28
- package/dist/shared/bricks/props/common.d.ts.map +1 -1
- package/dist/shared/bricks/props/common.js +42 -13
- package/dist/shared/bricks/props/common.js.map +1 -1
- package/dist/shared/bricks/props/css-length.d.ts +10 -5
- package/dist/shared/bricks/props/css-length.d.ts.map +1 -1
- package/dist/shared/bricks/props/css-length.js +39 -12
- package/dist/shared/bricks/props/css-length.js.map +1 -1
- package/dist/shared/bricks/props/datarecord.d.ts +8 -3
- package/dist/shared/bricks/props/datarecord.d.ts.map +1 -1
- package/dist/shared/bricks/props/datarecord.js +12 -8
- package/dist/shared/bricks/props/datarecord.js.map +1 -1
- package/dist/shared/bricks/props/datasource.d.ts +18 -13
- package/dist/shared/bricks/props/datasource.d.ts.map +1 -1
- package/dist/shared/bricks/props/datasource.js +61 -84
- package/dist/shared/bricks/props/datasource.js.map +1 -1
- package/dist/shared/bricks/props/date.d.ts +8 -3
- package/dist/shared/bricks/props/date.d.ts.map +1 -1
- package/dist/shared/bricks/props/date.js +19 -23
- package/dist/shared/bricks/props/date.js.map +1 -1
- package/dist/shared/bricks/props/direction.d.ts +8 -3
- package/dist/shared/bricks/props/direction.d.ts.map +1 -1
- package/dist/shared/bricks/props/direction.js +16 -9
- package/dist/shared/bricks/props/direction.js.map +1 -1
- package/dist/shared/bricks/props/dynamic.d.ts +39 -34
- package/dist/shared/bricks/props/dynamic.d.ts.map +1 -1
- package/dist/shared/bricks/props/dynamic.js +92 -13
- package/dist/shared/bricks/props/dynamic.js.map +1 -1
- package/dist/shared/bricks/props/effects.d.ts +18 -11
- package/dist/shared/bricks/props/effects.d.ts.map +1 -1
- package/dist/shared/bricks/props/effects.js +81 -13
- package/dist/shared/bricks/props/effects.js.map +1 -1
- package/dist/shared/bricks/props/file.d.ts +6 -1
- package/dist/shared/bricks/props/file.d.ts.map +1 -1
- package/dist/shared/bricks/props/file.js +11 -14
- package/dist/shared/bricks/props/file.js.map +1 -1
- package/dist/shared/bricks/props/geolocation.d.ts +15 -10
- package/dist/shared/bricks/props/geolocation.d.ts.map +1 -1
- package/dist/shared/bricks/props/geolocation.js +28 -40
- package/dist/shared/bricks/props/geolocation.js.map +1 -1
- package/dist/shared/bricks/props/grow.d.ts +7 -2
- package/dist/shared/bricks/props/grow.d.ts.map +1 -1
- package/dist/shared/bricks/props/grow.js +14 -8
- package/dist/shared/bricks/props/grow.js.map +1 -1
- package/dist/shared/bricks/props/helpers.d.ts +32 -24
- package/dist/shared/bricks/props/helpers.d.ts.map +1 -1
- package/dist/shared/bricks/props/helpers.js +50 -19
- package/dist/shared/bricks/props/helpers.js.map +1 -1
- package/dist/shared/bricks/props/image.d.ts +15 -12
- package/dist/shared/bricks/props/image.d.ts.map +1 -1
- package/dist/shared/bricks/props/image.js +109 -9
- package/dist/shared/bricks/props/image.js.map +1 -1
- package/dist/shared/bricks/props/number.d.ts +8 -4
- package/dist/shared/bricks/props/number.d.ts.map +1 -1
- package/dist/shared/bricks/props/number.js +11 -8
- package/dist/shared/bricks/props/number.js.map +1 -1
- package/dist/shared/bricks/props/position.d.ts +8 -3
- package/dist/shared/bricks/props/position.d.ts.map +1 -1
- package/dist/shared/bricks/props/position.js +12 -8
- package/dist/shared/bricks/props/position.js.map +1 -1
- package/dist/shared/bricks/props/string.d.ts +13 -9
- package/dist/shared/bricks/props/string.d.ts.map +1 -1
- package/dist/shared/bricks/props/string.js +34 -12
- package/dist/shared/bricks/props/string.js.map +1 -1
- package/dist/shared/bricks/props/tags.d.ts +8 -3
- package/dist/shared/bricks/props/tags.d.ts.map +1 -1
- package/dist/shared/bricks/props/tags.js +16 -8
- package/dist/shared/bricks/props/tags.js.map +1 -1
- package/dist/shared/bricks/props/text.d.ts +22 -11
- package/dist/shared/bricks/props/text.d.ts.map +1 -1
- package/dist/shared/bricks/props/text.js +79 -13
- package/dist/shared/bricks/props/text.js.map +1 -1
- package/dist/shared/bricks/props/types.d.ts +52 -49
- package/dist/shared/bricks/props/types.d.ts.map +1 -1
- package/dist/shared/bricks/props/types.js +1 -3
- package/dist/shared/bricks.d.ts +183 -179
- package/dist/shared/bricks.d.ts.map +1 -1
- package/dist/shared/bricks.js +271 -78
- package/dist/shared/bricks.js.map +1 -1
- package/dist/shared/context.d.ts +405 -398
- package/dist/shared/context.d.ts.map +1 -1
- package/dist/shared/context.js +22 -93
- package/dist/shared/context.js.map +1 -1
- package/dist/shared/datarecords/external/airtable/handler.d.ts +40 -20
- package/dist/shared/datarecords/external/airtable/handler.d.ts.map +1 -1
- package/dist/shared/datarecords/external/airtable/handler.js +242 -366
- package/dist/shared/datarecords/external/airtable/handler.js.map +1 -1
- package/dist/shared/datarecords/external/airtable/oauth/config.d.ts +14 -9
- package/dist/shared/datarecords/external/airtable/oauth/config.d.ts.map +1 -1
- package/dist/shared/datarecords/external/airtable/oauth/config.js +12 -15
- package/dist/shared/datarecords/external/airtable/oauth/config.js.map +1 -1
- package/dist/shared/datarecords/external/airtable/types.d.ts +39 -35
- package/dist/shared/datarecords/external/airtable/types.d.ts.map +1 -1
- package/dist/shared/datarecords/external/airtable/types.js +44 -13
- package/dist/shared/datarecords/external/airtable/types.js.map +1 -1
- package/dist/shared/datarecords/external/generic-webhook/handler.d.ts +6 -2
- package/dist/shared/datarecords/external/generic-webhook/handler.d.ts.map +1 -1
- package/dist/shared/datarecords/external/generic-webhook/handler.js +9 -14
- package/dist/shared/datarecords/external/generic-webhook/handler.js.map +1 -1
- package/dist/shared/datarecords/external/generic-webhook/options.d.ts +10 -5
- package/dist/shared/datarecords/external/generic-webhook/options.d.ts.map +1 -1
- package/dist/shared/datarecords/external/generic-webhook/options.js +14 -16
- package/dist/shared/datarecords/external/generic-webhook/options.js.map +1 -1
- package/dist/shared/datarecords/external/google/oauth/config.d.ts +28 -24
- package/dist/shared/datarecords/external/google/oauth/config.d.ts.map +1 -1
- package/dist/shared/datarecords/external/google/oauth/config.js +25 -34
- package/dist/shared/datarecords/external/google/oauth/config.js.map +1 -1
- package/dist/shared/datarecords/external/google/sheets/client.d.ts +11 -9
- package/dist/shared/datarecords/external/google/sheets/client.d.ts.map +1 -1
- package/dist/shared/datarecords/external/google/sheets/client.js +75 -8
- package/dist/shared/datarecords/external/google/sheets/client.js.map +1 -1
- package/dist/shared/datarecords/external/google/sheets/handler.d.ts +36 -18
- package/dist/shared/datarecords/external/google/sheets/handler.d.ts.map +1 -1
- package/dist/shared/datarecords/external/google/sheets/handler.js +103 -176
- package/dist/shared/datarecords/external/google/sheets/handler.js.map +1 -1
- package/dist/shared/datarecords/external/google/sheets/types.d.ts +12 -7
- package/dist/shared/datarecords/external/google/sheets/types.d.ts.map +1 -1
- package/dist/shared/datarecords/external/google/sheets/types.js +11 -8
- package/dist/shared/datarecords/external/google/sheets/types.js.map +1 -1
- package/dist/shared/datarecords/external/notion/handler.d.ts +48 -26
- package/dist/shared/datarecords/external/notion/handler.d.ts.map +1 -1
- package/dist/shared/datarecords/external/notion/handler.js +233 -386
- package/dist/shared/datarecords/external/notion/handler.js.map +1 -1
- package/dist/shared/datarecords/external/notion/oauth/config.d.ts +10 -5
- package/dist/shared/datarecords/external/notion/oauth/config.d.ts.map +1 -1
- package/dist/shared/datarecords/external/notion/oauth/config.js +8 -11
- package/dist/shared/datarecords/external/notion/oauth/config.js.map +1 -1
- package/dist/shared/datarecords/external/notion/types.d.ts +20 -15
- package/dist/shared/datarecords/external/notion/types.d.ts.map +1 -1
- package/dist/shared/datarecords/external/notion/types.js +14 -8
- package/dist/shared/datarecords/external/notion/types.js.map +1 -1
- package/dist/shared/datarecords/types.d.ts +24 -19
- package/dist/shared/datarecords/types.d.ts.map +1 -1
- package/dist/shared/datarecords/types.js +144 -16
- package/dist/shared/datarecords/types.js.map +1 -1
- package/dist/shared/datarecords.d.ts +6 -2
- package/dist/shared/datarecords.d.ts.map +1 -1
- package/dist/shared/datarecords.js +5 -9
- package/dist/shared/datarecords.js.map +1 -1
- package/dist/shared/datasources/external/facebook/posts/fetcher.d.ts +8 -5
- package/dist/shared/datasources/external/facebook/posts/fetcher.d.ts.map +1 -1
- package/dist/shared/datasources/external/facebook/posts/fetcher.js +38 -48
- package/dist/shared/datasources/external/facebook/posts/fetcher.js.map +1 -1
- package/dist/shared/datasources/external/facebook/posts/schema.d.ts +30 -25
- package/dist/shared/datasources/external/facebook/posts/schema.d.ts.map +1 -1
- package/dist/shared/datasources/external/facebook/posts/schema.js +29 -36
- package/dist/shared/datasources/external/facebook/posts/schema.js.map +1 -1
- package/dist/shared/datasources/external/http-json/fetcher.d.ts +7 -3
- package/dist/shared/datasources/external/http-json/fetcher.d.ts.map +1 -1
- package/dist/shared/datasources/external/http-json/fetcher.js +16 -28
- package/dist/shared/datasources/external/http-json/fetcher.js.map +1 -1
- package/dist/shared/datasources/external/http-json/options.d.ts +10 -5
- package/dist/shared/datasources/external/http-json/options.d.ts.map +1 -1
- package/dist/shared/datasources/external/http-json/options.js +8 -11
- package/dist/shared/datasources/external/http-json/options.js.map +1 -1
- package/dist/shared/datasources/external/http-json/schema.d.ts +9 -4
- package/dist/shared/datasources/external/http-json/schema.d.ts.map +1 -1
- package/dist/shared/datasources/external/http-json/schema.js +6 -10
- package/dist/shared/datasources/external/http-json/schema.js.map +1 -1
- package/dist/shared/datasources/external/instagram/feed/fetcher.d.ts +8 -5
- package/dist/shared/datasources/external/instagram/feed/fetcher.d.ts.map +1 -1
- package/dist/shared/datasources/external/instagram/feed/fetcher.js +26 -28
- package/dist/shared/datasources/external/instagram/feed/fetcher.js.map +1 -1
- package/dist/shared/datasources/external/instagram/feed/schema.d.ts +22 -17
- package/dist/shared/datasources/external/instagram/feed/schema.d.ts.map +1 -1
- package/dist/shared/datasources/external/instagram/feed/schema.js +26 -29
- package/dist/shared/datasources/external/instagram/feed/schema.js.map +1 -1
- package/dist/shared/datasources/external/mastodon/account/fetcher.d.ts +7 -4
- package/dist/shared/datasources/external/mastodon/account/fetcher.d.ts.map +1 -1
- package/dist/shared/datasources/external/mastodon/account/fetcher.js +10 -8
- package/dist/shared/datasources/external/mastodon/account/fetcher.js.map +1 -1
- package/dist/shared/datasources/external/mastodon/account/schema.d.ts +43 -38
- package/dist/shared/datasources/external/mastodon/account/schema.d.ts.map +1 -1
- package/dist/shared/datasources/external/mastodon/account/schema.js +42 -8
- package/dist/shared/datasources/external/mastodon/account/schema.js.map +1 -1
- package/dist/shared/datasources/external/mastodon/options.d.ts +9 -4
- package/dist/shared/datasources/external/mastodon/options.d.ts.map +1 -1
- package/dist/shared/datasources/external/mastodon/options.js +5 -10
- package/dist/shared/datasources/external/mastodon/options.js.map +1 -1
- package/dist/shared/datasources/external/mastodon/status/fetcher.d.ts +7 -4
- package/dist/shared/datasources/external/mastodon/status/fetcher.d.ts.map +1 -1
- package/dist/shared/datasources/external/mastodon/status/fetcher.js +20 -31
- package/dist/shared/datasources/external/mastodon/status/fetcher.js.map +1 -1
- package/dist/shared/datasources/external/mastodon/status/sample.array.d.ts +50 -47
- package/dist/shared/datasources/external/mastodon/status/sample.array.d.ts.map +1 -1
- package/dist/shared/datasources/external/mastodon/status/sample.array.js +54 -62
- package/dist/shared/datasources/external/mastodon/status/sample.array.js.map +1 -1
- package/dist/shared/datasources/external/mastodon/status/sample.single.d.ts +50 -47
- package/dist/shared/datasources/external/mastodon/status/sample.single.d.ts.map +1 -1
- package/dist/shared/datasources/external/mastodon/status/sample.single.js +54 -60
- package/dist/shared/datasources/external/mastodon/status/sample.single.js.map +1 -1
- package/dist/shared/datasources/external/mastodon/status/schema.d.ts +252 -247
- package/dist/shared/datasources/external/mastodon/status/schema.d.ts.map +1 -1
- package/dist/shared/datasources/external/mastodon/status/schema.js +108 -108
- package/dist/shared/datasources/external/mastodon/status/schema.js.map +1 -1
- package/dist/shared/datasources/external/meta/oauth/config.d.ts +29 -25
- package/dist/shared/datasources/external/meta/oauth/config.d.ts.map +1 -1
- package/dist/shared/datasources/external/meta/oauth/config.js +15 -20
- package/dist/shared/datasources/external/meta/oauth/config.js.map +1 -1
- package/dist/shared/datasources/external/meta/options.d.ts +9 -4
- package/dist/shared/datasources/external/meta/options.d.ts.map +1 -1
- package/dist/shared/datasources/external/meta/options.js +5 -10
- package/dist/shared/datasources/external/meta/options.js.map +1 -1
- package/dist/shared/datasources/external/rss/fetcher.d.ts +7 -4
- package/dist/shared/datasources/external/rss/fetcher.d.ts.map +1 -1
- package/dist/shared/datasources/external/rss/fetcher.js +14 -25
- package/dist/shared/datasources/external/rss/fetcher.js.map +1 -1
- package/dist/shared/datasources/external/rss/options.d.ts +9 -4
- package/dist/shared/datasources/external/rss/options.d.ts.map +1 -1
- package/dist/shared/datasources/external/rss/options.js +5 -10
- package/dist/shared/datasources/external/rss/options.js.map +1 -1
- package/dist/shared/datasources/external/rss/sample.js +25 -0
- package/dist/shared/datasources/external/rss/sample.js.map +1 -0
- package/dist/shared/datasources/external/rss/schema.d.ts +13 -8
- package/dist/shared/datasources/external/rss/schema.d.ts.map +1 -1
- package/dist/shared/datasources/external/rss/schema.js +30 -8
- package/dist/shared/datasources/external/rss/schema.js.map +1 -1
- package/dist/shared/datasources/external/threads/media/fetcher.d.ts +9 -5
- package/dist/shared/datasources/external/threads/media/fetcher.d.ts.map +1 -1
- package/dist/shared/datasources/external/threads/media/fetcher.js +37 -46
- package/dist/shared/datasources/external/threads/media/fetcher.js.map +1 -1
- package/dist/shared/datasources/external/threads/media/schema.d.ts +29 -24
- package/dist/shared/datasources/external/threads/media/schema.d.ts.map +1 -1
- package/dist/shared/datasources/external/threads/media/schema.js +32 -36
- package/dist/shared/datasources/external/threads/media/schema.js.map +1 -1
- package/dist/shared/datasources/external/tiktok/oauth/config.d.ts +31 -27
- package/dist/shared/datasources/external/tiktok/oauth/config.d.ts.map +1 -1
- package/dist/shared/datasources/external/tiktok/oauth/config.js +15 -18
- package/dist/shared/datasources/external/tiktok/oauth/config.js.map +1 -1
- package/dist/shared/datasources/external/tiktok/video/fetcher.d.ts +8 -5
- package/dist/shared/datasources/external/tiktok/video/fetcher.d.ts.map +1 -1
- package/dist/shared/datasources/external/tiktok/video/fetcher.js +31 -33
- package/dist/shared/datasources/external/tiktok/video/fetcher.js.map +1 -1
- package/dist/shared/datasources/external/tiktok/video/options.d.ts +10 -5
- package/dist/shared/datasources/external/tiktok/video/options.d.ts.map +1 -1
- package/dist/shared/datasources/external/tiktok/video/options.js +8 -11
- package/dist/shared/datasources/external/tiktok/video/options.js.map +1 -1
- package/dist/shared/datasources/external/tiktok/video/schema.d.ts +24 -19
- package/dist/shared/datasources/external/tiktok/video/schema.d.ts.map +1 -1
- package/dist/shared/datasources/external/tiktok/video/schema.js +23 -30
- package/dist/shared/datasources/external/tiktok/video/schema.js.map +1 -1
- package/dist/shared/datasources/external/youtube/list/fetcher.d.ts +8 -5
- package/dist/shared/datasources/external/youtube/list/fetcher.d.ts.map +1 -1
- package/dist/shared/datasources/external/youtube/list/fetcher.js +20 -31
- package/dist/shared/datasources/external/youtube/list/fetcher.js.map +1 -1
- package/dist/shared/datasources/external/youtube/list/options.d.ts +13 -8
- package/dist/shared/datasources/external/youtube/list/options.d.ts.map +1 -1
- package/dist/shared/datasources/external/youtube/list/options.js +11 -14
- package/dist/shared/datasources/external/youtube/list/options.js.map +1 -1
- package/dist/shared/datasources/external/youtube/list/sample.js +33 -0
- package/dist/shared/datasources/external/youtube/list/sample.js.map +1 -0
- package/dist/shared/datasources/external/youtube/list/schema.d.ts +33 -28
- package/dist/shared/datasources/external/youtube/list/schema.d.ts.map +1 -1
- package/dist/shared/datasources/external/youtube/list/schema.js +36 -8
- package/dist/shared/datasources/external/youtube/list/schema.js.map +1 -1
- package/dist/shared/datasources/external/youtube/oauth/config.d.ts +22 -18
- package/dist/shared/datasources/external/youtube/oauth/config.d.ts.map +1 -1
- package/dist/shared/datasources/external/youtube/oauth/config.js +15 -18
- package/dist/shared/datasources/external/youtube/oauth/config.js.map +1 -1
- package/dist/shared/datasources/fetcher.d.ts +10 -6
- package/dist/shared/datasources/fetcher.d.ts.map +1 -1
- package/dist/shared/datasources/fetcher.js +1 -3
- package/dist/shared/datasources/internal/blog/schema.d.ts +20 -15
- package/dist/shared/datasources/internal/blog/schema.d.ts.map +1 -1
- package/dist/shared/datasources/internal/blog/schema.js +59 -75
- package/dist/shared/datasources/internal/blog/schema.js.map +1 -1
- package/dist/shared/datasources/internal/changelog/schema.d.ts +15 -10
- package/dist/shared/datasources/internal/changelog/schema.d.ts.map +1 -1
- package/dist/shared/datasources/internal/changelog/schema.js +36 -51
- package/dist/shared/datasources/internal/changelog/schema.js.map +1 -1
- package/dist/shared/datasources/internal/contact-info/schema.d.ts +21 -16
- package/dist/shared/datasources/internal/contact-info/schema.d.ts.map +1 -1
- package/dist/shared/datasources/internal/contact-info/schema.js +21 -25
- package/dist/shared/datasources/internal/contact-info/schema.js.map +1 -1
- package/dist/shared/datasources/internal/cv/schema.d.ts +71 -66
- package/dist/shared/datasources/internal/cv/schema.d.ts.map +1 -1
- package/dist/shared/datasources/internal/cv/schema.js +155 -222
- package/dist/shared/datasources/internal/cv/schema.js.map +1 -1
- package/dist/shared/datasources/internal/faq/schema.d.ts +13 -8
- package/dist/shared/datasources/internal/faq/schema.d.ts.map +1 -1
- package/dist/shared/datasources/internal/faq/schema.js +20 -30
- package/dist/shared/datasources/internal/faq/schema.js.map +1 -1
- package/dist/shared/datasources/internal/job-board/schema.d.ts +86 -81
- package/dist/shared/datasources/internal/job-board/schema.d.ts.map +1 -1
- package/dist/shared/datasources/internal/job-board/schema.js +194 -224
- package/dist/shared/datasources/internal/job-board/schema.js.map +1 -1
- package/dist/shared/datasources/internal/links/schema.d.ts +12 -7
- package/dist/shared/datasources/internal/links/schema.d.ts.map +1 -1
- package/dist/shared/datasources/internal/links/schema.js +20 -8
- package/dist/shared/datasources/internal/links/schema.js.map +1 -1
- package/dist/shared/datasources/internal/recipes/schema.d.ts +19 -14
- package/dist/shared/datasources/internal/recipes/schema.d.ts.map +1 -1
- package/dist/shared/datasources/internal/recipes/schema.js +23 -45
- package/dist/shared/datasources/internal/recipes/schema.js.map +1 -1
- package/dist/shared/datasources/internal/restaurant/schema.d.ts +82 -77
- package/dist/shared/datasources/internal/restaurant/schema.d.ts.map +1 -1
- package/dist/shared/datasources/internal/restaurant/schema.js +154 -226
- package/dist/shared/datasources/internal/restaurant/schema.js.map +1 -1
- package/dist/shared/datasources/samples.d.ts +7 -3
- package/dist/shared/datasources/samples.d.ts.map +1 -1
- package/dist/shared/datasources/samples.js +9 -69
- package/dist/shared/datasources/samples.js.map +1 -1
- package/dist/shared/datasources/schemas.d.ts +43 -38
- package/dist/shared/datasources/schemas.d.ts.map +1 -1
- package/dist/shared/datasources/schemas.js +10 -34
- package/dist/shared/datasources/schemas.js.map +1 -1
- package/dist/shared/datasources/types.d.ts +142 -138
- package/dist/shared/datasources/types.d.ts.map +1 -1
- package/dist/shared/datasources/types.js +384 -20
- package/dist/shared/datasources/types.js.map +1 -1
- package/dist/shared/datasources/utils.d.ts +8 -4
- package/dist/shared/datasources/utils.d.ts.map +1 -1
- package/dist/shared/datasources/utils.js +15 -12
- package/dist/shared/datasources/utils.js.map +1 -1
- package/dist/shared/datasources.d.ts +22 -9
- package/dist/shared/datasources.d.ts.map +1 -1
- package/dist/shared/datasources.js +65 -44
- package/dist/shared/datasources.js.map +1 -1
- package/dist/shared/env.d.ts +25 -21
- package/dist/shared/env.d.ts.map +1 -1
- package/dist/shared/env.js +1 -3
- package/dist/shared/errors.d.ts +2 -2
- package/dist/shared/errors.js +2 -9
- package/dist/shared/images.d.ts +21 -16
- package/dist/shared/images.d.ts.map +1 -1
- package/dist/shared/images.js +24 -11
- package/dist/shared/images.js.map +1 -1
- package/dist/shared/index.d.ts +4 -2
- package/dist/shared/index.d.ts.map +1 -1
- package/dist/shared/index.js +4 -10
- package/dist/shared/index.js.map +1 -1
- package/dist/shared/layout-constants.d.ts +8 -5
- package/dist/shared/layout-constants.d.ts.map +1 -1
- package/dist/shared/layout-constants.js +15 -15
- package/dist/shared/layout-constants.js.map +1 -1
- package/dist/shared/manifest.d.ts +17 -12
- package/dist/shared/manifest.d.ts.map +1 -1
- package/dist/shared/manifest.js +26 -52
- package/dist/shared/manifest.js.map +1 -1
- package/dist/shared/oauth.d.ts +14 -9
- package/dist/shared/oauth.d.ts.map +1 -1
- package/dist/shared/oauth.js +14 -9
- package/dist/shared/oauth.js.map +1 -1
- package/dist/shared/page.d.ts +250 -243
- package/dist/shared/page.d.ts.map +1 -1
- package/dist/shared/page.js +29 -62
- package/dist/shared/page.js.map +1 -1
- package/dist/shared/prompt.d.ts +8 -3
- package/dist/shared/prompt.d.ts.map +1 -1
- package/dist/shared/prompt.js +10 -8
- package/dist/shared/prompt.js.map +1 -1
- package/dist/shared/responsive.d.ts +8 -3
- package/dist/shared/responsive.d.ts.map +1 -1
- package/dist/shared/responsive.js +5 -10
- package/dist/shared/responsive.js.map +1 -1
- package/dist/shared/site.d.ts +629 -622
- package/dist/shared/site.d.ts.map +1 -1
- package/dist/shared/site.js +56 -70
- package/dist/shared/site.js.map +1 -1
- package/dist/shared/sitemap.d.ts +21 -14
- package/dist/shared/sitemap.d.ts.map +1 -1
- package/dist/shared/sitemap.js +29 -63
- package/dist/shared/sitemap.js.map +1 -1
- package/dist/shared/social-icons.d.ts +6 -3
- package/dist/shared/social-icons.d.ts.map +1 -1
- package/dist/shared/social-icons.js +309 -313
- package/dist/shared/social-icons.js.map +1 -1
- package/dist/shared/theme.d.ts +83 -78
- package/dist/shared/theme.d.ts.map +1 -1
- package/dist/shared/theme.js +261 -18
- package/dist/shared/theme.js.map +1 -1
- package/dist/shared/themes/color-system.d.ts +16 -12
- package/dist/shared/themes/color-system.d.ts.map +1 -1
- package/dist/shared/themes/color-system.js +81 -89
- package/dist/shared/themes/color-system.js.map +1 -1
- package/dist/shared/utils/canvas-data-uri.d.ts +4 -1
- package/dist/shared/utils/canvas-data-uri.d.ts.map +1 -1
- package/dist/shared/utils/canvas-data-uri.js +4 -8
- package/dist/shared/utils/canvas-data-uri.js.map +1 -1
- package/dist/shared/utils/invariant.d.ts +4 -1
- package/dist/shared/utils/invariant.d.ts.map +1 -1
- package/dist/shared/utils/invariant.js +10 -8
- package/dist/shared/utils/invariant.js.map +1 -1
- package/dist/shared/utils/json-date.d.ts +9 -4
- package/dist/shared/utils/json-date.d.ts.map +1 -1
- package/dist/shared/utils/json-date.js +6 -8
- package/dist/shared/utils/json-date.js.map +1 -1
- package/dist/shared/utils/llm.d.ts +7 -2
- package/dist/shared/utils/llm.d.ts.map +1 -1
- package/dist/shared/utils/llm.js +57 -8
- package/dist/shared/utils/llm.js.map +1 -1
- package/dist/shared/utils/merge.d.ts +4 -1
- package/dist/shared/utils/merge.d.ts.map +1 -1
- package/dist/shared/utils/merge.js +11 -8
- package/dist/shared/utils/merge.js.map +1 -1
- package/dist/shared/utils/object-hash.d.ts +4 -1
- package/dist/shared/utils/object-hash.d.ts.map +1 -1
- package/dist/shared/utils/object-hash.js +8 -13
- package/dist/shared/utils/object-hash.js.map +1 -1
- package/dist/shared/utils/schema.d.ts +13 -10
- package/dist/shared/utils/schema.d.ts.map +1 -1
- package/dist/shared/utils/schema.js +91 -14
- package/dist/shared/utils/schema.js.map +1 -1
- package/dist/shared/utils/string-enum.d.ts +13 -8
- package/dist/shared/utils/string-enum.d.ts.map +1 -1
- package/dist/shared/utils/string-enum.js +18 -8
- package/dist/shared/utils/string-enum.js.map +1 -1
- package/dist/shared/utils/try-catch.d.ts +4 -2
- package/dist/shared/utils/try-catch.d.ts.map +1 -1
- package/dist/shared/utils/try-catch.js +12 -13
- package/dist/shared/utils/try-catch.js.map +1 -1
- package/package.json +10 -20
- package/src/shared/ai/schemas.ts +5 -3
- package/src/shared/attributes.ts +10 -6
- package/src/shared/bricks/manifests/card.manifest.ts +2 -5
- package/src/shared/bricks/manifests/image.manifest.ts +1 -5
- package/src/shared/bricks/props/color.ts +3 -2
- package/src/shared/bricks/props/dynamic.ts +4 -1
- package/src/shared/bricks/props/image.ts +2 -3
- package/src/shared/bricks.ts +3 -2
- package/src/shared/datarecords/types.ts +41 -33
- package/src/shared/datasources/external/rss/fetcher.ts +0 -6
- package/src/shared/datasources.ts +13 -5
- package/src/shared/prompt.ts +1 -1
- package/src/shared/site.ts +2 -1
- package/src/shared/sitemap.ts +7 -0
- package/src/shared/utils/schema.ts +12 -43
- package/src/shared/utils/tests/schema.test.ts +53 -28
- package/dist/shared/ai/types.js.map +0 -1
- package/dist/shared/ajv.d.ts +0 -7
- package/dist/shared/ajv.d.ts.map +0 -1
- package/dist/shared/ajv.js +0 -6866
- package/dist/shared/ajv.js.map +0 -1
- package/dist/shared/analytics/types.js.map +0 -1
- package/dist/shared/bricks/manifests/_types.js.map +0 -1
- package/dist/shared/bricks/manifests/tests/header.manifest.test.d.ts +0 -2
- package/dist/shared/bricks/manifests/tests/header.manifest.test.d.ts.map +0 -1
- package/dist/shared/bricks/props/tests/background.test.d.ts +0 -2
- package/dist/shared/bricks/props/tests/background.test.d.ts.map +0 -1
- package/dist/shared/bricks/props/tests/border.test.d.ts +0 -2
- package/dist/shared/bricks/props/tests/border.test.d.ts.map +0 -1
- package/dist/shared/bricks/props/tests/effects.test.d.ts +0 -2
- package/dist/shared/bricks/props/tests/effects.test.d.ts.map +0 -1
- package/dist/shared/bricks/props/tests/helpers.test.d.ts +0 -2
- package/dist/shared/bricks/props/tests/helpers.test.d.ts.map +0 -1
- package/dist/shared/bricks/props/tests/image.test.d.ts +0 -2
- package/dist/shared/bricks/props/tests/image.test.d.ts.map +0 -1
- package/dist/shared/bricks/props/tests/string.test.d.ts +0 -2
- package/dist/shared/bricks/props/tests/string.test.d.ts.map +0 -1
- package/dist/shared/bricks/props/types.js.map +0 -1
- package/dist/shared/chunk-2BPYOTKA.js +0 -21
- package/dist/shared/chunk-2BPYOTKA.js.map +0 -1
- package/dist/shared/chunk-2EOCK66Z.js +0 -19
- package/dist/shared/chunk-2EOCK66Z.js.map +0 -1
- package/dist/shared/chunk-2U5U3CCJ.js +0 -90
- package/dist/shared/chunk-2U5U3CCJ.js.map +0 -1
- package/dist/shared/chunk-2UEPTT5J.js +0 -67
- package/dist/shared/chunk-2UEPTT5J.js.map +0 -1
- package/dist/shared/chunk-2Z5WOCFS.js +0 -126
- package/dist/shared/chunk-2Z5WOCFS.js.map +0 -1
- package/dist/shared/chunk-34IUWNRX.js +0 -346
- package/dist/shared/chunk-34IUWNRX.js.map +0 -1
- package/dist/shared/chunk-3ZDN5BWN.js +0 -18
- package/dist/shared/chunk-3ZDN5BWN.js.map +0 -1
- package/dist/shared/chunk-55C6MTX2.js +0 -21
- package/dist/shared/chunk-55C6MTX2.js.map +0 -1
- package/dist/shared/chunk-57NRTXRA.js +0 -309
- package/dist/shared/chunk-57NRTXRA.js.map +0 -1
- package/dist/shared/chunk-5HJT5NJ3.js +0 -422
- package/dist/shared/chunk-5HJT5NJ3.js.map +0 -1
- package/dist/shared/chunk-5J4Y43RM.js +0 -388
- package/dist/shared/chunk-5J4Y43RM.js.map +0 -1
- package/dist/shared/chunk-5OVOXUFX.js +0 -61
- package/dist/shared/chunk-5OVOXUFX.js.map +0 -1
- package/dist/shared/chunk-5RCC2STG.js +0 -58
- package/dist/shared/chunk-5RCC2STG.js.map +0 -1
- package/dist/shared/chunk-5SNSUC6Q.js +0 -364
- package/dist/shared/chunk-5SNSUC6Q.js.map +0 -1
- package/dist/shared/chunk-6TVVKUWM.js +0 -15
- package/dist/shared/chunk-6TVVKUWM.js.map +0 -1
- package/dist/shared/chunk-6WIMWLCJ.js +0 -17
- package/dist/shared/chunk-6WIMWLCJ.js.map +0 -1
- package/dist/shared/chunk-7LAWWRU7.js +0 -21
- package/dist/shared/chunk-7LAWWRU7.js.map +0 -1
- package/dist/shared/chunk-B5T2LFV2.js +0 -494
- package/dist/shared/chunk-B5T2LFV2.js.map +0 -1
- package/dist/shared/chunk-BHARJBEK.js +0 -27
- package/dist/shared/chunk-BHARJBEK.js.map +0 -1
- package/dist/shared/chunk-DCM4732T.js +0 -146
- package/dist/shared/chunk-DCM4732T.js.map +0 -1
- package/dist/shared/chunk-E3ZW57HF.js +0 -843
- package/dist/shared/chunk-E3ZW57HF.js.map +0 -1
- package/dist/shared/chunk-EID5HPF3.js +0 -63
- package/dist/shared/chunk-EID5HPF3.js.map +0 -1
- package/dist/shared/chunk-EMF5TCPX.js +0 -389
- package/dist/shared/chunk-EMF5TCPX.js.map +0 -1
- package/dist/shared/chunk-EUFVTHAG.js +0 -33
- package/dist/shared/chunk-EUFVTHAG.js.map +0 -1
- package/dist/shared/chunk-FC52EHCC.js +0 -104
- package/dist/shared/chunk-FC52EHCC.js.map +0 -1
- package/dist/shared/chunk-FD7YYFRI.js +0 -225
- package/dist/shared/chunk-FD7YYFRI.js.map +0 -1
- package/dist/shared/chunk-FVV27R73.js +0 -269
- package/dist/shared/chunk-FVV27R73.js.map +0 -1
- package/dist/shared/chunk-FYGFB5U5.js +0 -57
- package/dist/shared/chunk-FYGFB5U5.js.map +0 -1
- package/dist/shared/chunk-GDYCCB3B.js +0 -22
- package/dist/shared/chunk-GDYCCB3B.js.map +0 -1
- package/dist/shared/chunk-GLV6QIIM.js +0 -41
- package/dist/shared/chunk-GLV6QIIM.js.map +0 -1
- package/dist/shared/chunk-GNTJT7MR.js +0 -56
- package/dist/shared/chunk-GNTJT7MR.js.map +0 -1
- package/dist/shared/chunk-HHUFGV7J.js +0 -259
- package/dist/shared/chunk-HHUFGV7J.js.map +0 -1
- package/dist/shared/chunk-HPCCD6V5.js +0 -17
- package/dist/shared/chunk-HPCCD6V5.js.map +0 -1
- package/dist/shared/chunk-IEMCCHM4.js +0 -389
- package/dist/shared/chunk-IEMCCHM4.js.map +0 -1
- package/dist/shared/chunk-IMDOF55E.js +0 -137
- package/dist/shared/chunk-IMDOF55E.js.map +0 -1
- package/dist/shared/chunk-IPWYNE6Y.js +0 -213
- package/dist/shared/chunk-IPWYNE6Y.js.map +0 -1
- package/dist/shared/chunk-J6R3GSKS.js +0 -386
- package/dist/shared/chunk-J6R3GSKS.js.map +0 -1
- package/dist/shared/chunk-KNREHAPN.js +0 -13
- package/dist/shared/chunk-KNREHAPN.js.map +0 -1
- package/dist/shared/chunk-KRODRZNS.js +0 -440
- package/dist/shared/chunk-KRODRZNS.js.map +0 -1
- package/dist/shared/chunk-KT7SSWMM.js +0 -24
- package/dist/shared/chunk-KT7SSWMM.js.map +0 -1
- package/dist/shared/chunk-KTA7XES3.js +0 -168
- package/dist/shared/chunk-KTA7XES3.js.map +0 -1
- package/dist/shared/chunk-L4W4B2RQ.js +0 -174
- package/dist/shared/chunk-L4W4B2RQ.js.map +0 -1
- package/dist/shared/chunk-MO6CRLQA.js +0 -73
- package/dist/shared/chunk-MO6CRLQA.js.map +0 -1
- package/dist/shared/chunk-NTP6BKRU.js +0 -516
- package/dist/shared/chunk-NTP6BKRU.js.map +0 -1
- package/dist/shared/chunk-O53V22BK.js +0 -469
- package/dist/shared/chunk-O53V22BK.js.map +0 -1
- package/dist/shared/chunk-O5PQISX4.js +0 -51
- package/dist/shared/chunk-O5PQISX4.js.map +0 -1
- package/dist/shared/chunk-OJ6KL7FU.js +0 -32
- package/dist/shared/chunk-OJ6KL7FU.js.map +0 -1
- package/dist/shared/chunk-OJP4HMJT.js +0 -22
- package/dist/shared/chunk-OJP4HMJT.js.map +0 -1
- package/dist/shared/chunk-ORIUCOED.js +0 -129
- package/dist/shared/chunk-ORIUCOED.js.map +0 -1
- package/dist/shared/chunk-OSJ6KGPX.js +0 -16
- package/dist/shared/chunk-OSJ6KGPX.js.map +0 -1
- package/dist/shared/chunk-OXYXZHP2.js +0 -48
- package/dist/shared/chunk-OXYXZHP2.js.map +0 -1
- package/dist/shared/chunk-PFZMRSHJ.js +0 -616
- package/dist/shared/chunk-PFZMRSHJ.js.map +0 -1
- package/dist/shared/chunk-QHKOAIOK.js +0 -243
- package/dist/shared/chunk-QHKOAIOK.js.map +0 -1
- package/dist/shared/chunk-QLQVDZIL.js +0 -11
- package/dist/shared/chunk-QLQVDZIL.js.map +0 -1
- package/dist/shared/chunk-RDOCVLCF.js +0 -422
- package/dist/shared/chunk-RDOCVLCF.js.map +0 -1
- package/dist/shared/chunk-RFH7PEVS.js +0 -38
- package/dist/shared/chunk-RFH7PEVS.js.map +0 -1
- package/dist/shared/chunk-T3UPW5OW.js +0 -79
- package/dist/shared/chunk-T3UPW5OW.js.map +0 -1
- package/dist/shared/chunk-TGKNA2JS.js +0 -847
- package/dist/shared/chunk-TGKNA2JS.js.map +0 -1
- package/dist/shared/chunk-TKMWY2VN.js +0 -18
- package/dist/shared/chunk-TKMWY2VN.js.map +0 -1
- package/dist/shared/chunk-TZ6X7ZM5.js +0 -158
- package/dist/shared/chunk-TZ6X7ZM5.js.map +0 -1
- package/dist/shared/chunk-UC75KRLX.js +0 -67
- package/dist/shared/chunk-UC75KRLX.js.map +0 -1
- package/dist/shared/chunk-VMIJ6MG5.js +0 -368
- package/dist/shared/chunk-VMIJ6MG5.js.map +0 -1
- package/dist/shared/chunk-VYA2FCTY.js +0 -83
- package/dist/shared/chunk-VYA2FCTY.js.map +0 -1
- package/dist/shared/chunk-WPZV3LYL.js +0 -24
- package/dist/shared/chunk-WPZV3LYL.js.map +0 -1
- package/dist/shared/chunk-XCWMZVF5.js +0 -89
- package/dist/shared/chunk-XCWMZVF5.js.map +0 -1
- package/dist/shared/chunk-XCZVD5H6.js +0 -13
- package/dist/shared/chunk-XCZVD5H6.js.map +0 -1
- package/dist/shared/chunk-XFZQGRRL.js +0 -101
- package/dist/shared/chunk-XFZQGRRL.js.map +0 -1
- package/dist/shared/chunk-XYWSIMZ6.js +0 -59
- package/dist/shared/chunk-XYWSIMZ6.js.map +0 -1
- package/dist/shared/chunk-XZ6WJZHN.js +0 -10
- package/dist/shared/chunk-XZ6WJZHN.js.map +0 -1
- package/dist/shared/chunk-ZEFOWKYP.js +0 -44
- package/dist/shared/chunk-ZEFOWKYP.js.map +0 -1
- package/dist/shared/chunk-ZGQ3AQBG.js +0 -33
- package/dist/shared/chunk-ZGQ3AQBG.js.map +0 -1
- package/dist/shared/chunk-ZRBTAC3G.js +0 -53
- package/dist/shared/chunk-ZRBTAC3G.js.map +0 -1
- package/dist/shared/chunk-ZYQZUWF7.js +0 -537
- package/dist/shared/chunk-ZYQZUWF7.js.map +0 -1
- package/dist/shared/chunk-ZZVYD4BG.js +0 -41
- package/dist/shared/chunk-ZZVYD4BG.js.map +0 -1
- package/dist/shared/datasources/external/facebook/posts/sample.d.ts +0 -26
- package/dist/shared/datasources/external/facebook/posts/sample.d.ts.map +0 -1
- package/dist/shared/datasources/external/facebook/posts/tests/fetcher.test.d.ts +0 -2
- package/dist/shared/datasources/external/facebook/posts/tests/fetcher.test.d.ts.map +0 -1
- package/dist/shared/datasources/external/http-json/tests/fetcher.test.d.ts +0 -2
- package/dist/shared/datasources/external/http-json/tests/fetcher.test.d.ts.map +0 -1
- package/dist/shared/datasources/external/instagram/feed/sample.d.ts +0 -3
- package/dist/shared/datasources/external/instagram/feed/sample.d.ts.map +0 -1
- package/dist/shared/datasources/external/instagram/feed/tests/fetcher.test.d.ts +0 -2
- package/dist/shared/datasources/external/instagram/feed/tests/fetcher.test.d.ts.map +0 -1
- package/dist/shared/datasources/external/mastodon/account/sample.d.ts +0 -30
- package/dist/shared/datasources/external/mastodon/account/sample.d.ts.map +0 -1
- package/dist/shared/datasources/external/mastodon/account/tests/fetcher.test.d.ts +0 -2
- package/dist/shared/datasources/external/mastodon/account/tests/fetcher.test.d.ts.map +0 -1
- package/dist/shared/datasources/external/mastodon/status/tests/fetcher.test.d.ts +0 -2
- package/dist/shared/datasources/external/mastodon/status/tests/fetcher.test.d.ts.map +0 -1
- package/dist/shared/datasources/external/rss/sample.d.ts +0 -3
- package/dist/shared/datasources/external/rss/sample.d.ts.map +0 -1
- package/dist/shared/datasources/external/threads/media/sample.d.ts +0 -40
- package/dist/shared/datasources/external/threads/media/sample.d.ts.map +0 -1
- package/dist/shared/datasources/external/tiktok/video/sample.d.ts +0 -15
- package/dist/shared/datasources/external/tiktok/video/sample.d.ts.map +0 -1
- package/dist/shared/datasources/external/youtube/list/sample.d.ts +0 -29
- package/dist/shared/datasources/external/youtube/list/sample.d.ts.map +0 -1
- package/dist/shared/datasources/fetcher.js.map +0 -1
- package/dist/shared/env.js.map +0 -1
- package/dist/shared/errors.d.ts.map +0 -1
- package/dist/shared/errors.js.map +0 -1
- package/dist/shared/tests/attributes.test.d.ts +0 -2
- package/dist/shared/tests/attributes.test.d.ts.map +0 -1
- package/dist/shared/themes/tests/color-system.test.d.ts +0 -2
- package/dist/shared/themes/tests/color-system.test.d.ts.map +0 -1
- package/dist/shared/utils/tests/schema.test.d.ts +0 -2
- package/dist/shared/utils/tests/schema.test.d.ts.map +0 -1
- package/src/shared/ajv.ts +0 -123
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../src/shared/datarecords/external/airtable/handler.ts"],"sourcesContent":["import type { TObject, TProperties } from \"@sinclair/typebox\";\nimport type { AirtableBases, AirtableFieldType, AirtableOptions } from \"./types\";\n\nconst sleep = (ms: number): Promise<void> => new Promise((resolve) => setTimeout(resolve, ms));\n\nfunction getClient(token: string) {\n if (!token) {\n throw new Error(\"Missing Airtable API token\");\n }\n\n return {\n async callApi<R, P extends Record<string, unknown> = Record<string, unknown>>(\n path: string,\n method: \"GET\" | \"POST\" | \"DELETE\" | \"PUT\" | \"PATCH\" = \"GET\",\n body: P | null = null,\n ) {\n const url = `https://api.airtable.com/${path}`;\n const maxRetries = 5;\n const retryDelay = 30000; // 30 seconds\n\n for (let attempt = 1; attempt <= maxRetries; attempt++) {\n try {\n const res = await fetch(url, {\n method,\n headers: {\n Authorization: `Bearer ${token}`,\n \"Content-Type\": \"application/json\",\n },\n body: body ? JSON.stringify(body) : undefined,\n });\n\n // if 429 is rate limit exceeded\n if (res.status === 429 && attempt < maxRetries) {\n console.warn(\n `Airtable rate limit hit (429) on attempt ${attempt}/${maxRetries}. Waiting ${retryDelay / 1000}s before retry...`,\n );\n await sleep(retryDelay);\n continue; // Retry\n }\n\n const data = await res.json();\n\n // for any other response (success or definitive error)\n return {\n status: res.status,\n success: res.ok,\n data: data as R,\n };\n } catch (error) {\n // In case of network error, we also retry except on the last attempt\n if (attempt < maxRetries) {\n console.warn(\n `Network error on attempt ${attempt}/${maxRetries}. Waiting ${retryDelay / 1000}s before retry...`,\n error,\n );\n await sleep(retryDelay);\n continue;\n }\n // On the last attempt, we rethrow the error\n console.error(`Error on attempt ${attempt}/${maxRetries}:`, error);\n throw error;\n }\n }\n\n // If we reach here, it means we exhausted all attempts with 429\n throw new Error(`Airtable API rate limit exceeded after ${maxRetries} attempts`);\n },\n };\n}\n\n/**\n * Convert a FormData value based on Airtable field type\n */\nfunction convertValueForAirtableField(value: string, fieldType: AirtableFieldType): unknown {\n switch (fieldType) {\n case \"checkbox\":\n return value === \"true\" || value === \"1\" || value.toLowerCase() === \"on\";\n\n case \"number\": {\n const numValue = Number(value);\n return Number.isNaN(numValue) ? value : numValue;\n }\n\n case \"date\":\n case \"dateTime\":\n // Airtable expects ISO format strings\n return value;\n\n case \"email\":\n case \"url\":\n case \"singleLineText\":\n case \"multilineText\":\n return value;\n\n case \"singleSelect\":\n return value;\n\n case \"multipleSelects\": {\n // Handle comma-separated values or JSON array strings\n if (value.startsWith(\"[\") && value.endsWith(\"]\")) {\n try {\n return JSON.parse(value);\n } catch {\n return [value];\n }\n }\n if (value.includes(\",\")) {\n return value\n .split(\",\")\n .map((v) => v.trim())\n .filter((v) => v.length > 0);\n }\n return [value];\n }\n\n default:\n console.warn(`Unknown Airtable field type: ${fieldType}, treating as text`);\n return value;\n }\n}\n\n/**\n * Fallback conversion based on value patterns (when field type is unknown)\n */\nfunction convertValueByPattern(value: string): unknown {\n // Handle boolean-like values\n if (value === \"true\" || value === \"false\") {\n return value === \"true\";\n }\n\n // Handle number-like values\n if (/^\\d+\\.?\\d*$/.test(value)) {\n const numValue = Number(value);\n if (!Number.isNaN(numValue)) {\n return numValue;\n }\n }\n\n // Handle date formats\n if (/^\\d{4}-\\d{2}-\\d{2}$/.test(value) || /^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}/.test(value)) {\n return value;\n }\n\n // Handle comma-separated values (potential multiple select)\n if (value.includes(\",\")) {\n const values = value\n .split(\",\")\n .map((v) => v.trim())\n .filter((v) => v.length > 0);\n if (values.length > 1) {\n return values;\n }\n }\n\n // Default to string\n return value;\n}\n\nexport async function saveRecord({\n formData,\n options,\n properties,\n accessToken,\n}: {\n formData: FormData;\n options: AirtableOptions;\n properties: TProperties;\n accessToken: string;\n}): Promise<{ id: string } | null> {\n try {\n const client = getClient(accessToken);\n const records: Record<string, unknown> = {};\n\n for (const [key, value] of formData.entries()) {\n // Skip empty values\n if (value === null || value === undefined || value === \"\") continue;\n\n // Skip Files for now as they need special handling\n if (value instanceof File) {\n console.warn(`File upload not yet supported for field: ${key}`);\n continue;\n }\n\n // Find the field definition in options.fields\n const fieldDef = options.fields?.find((field) => field.name === key);\n\n if (fieldDef) {\n // Use field type information for precise conversion\n records[key] = convertValueForAirtableField(value, fieldDef.type as AirtableFieldType);\n } else {\n // Fallback to pattern-based conversion if field definition not found\n records[key] = convertValueByPattern(value);\n }\n }\n const response = await client.callApi<{\n records: Array<{ id: string; fields: Record<string, unknown> }>;\n }>(`v0/${options.baseId}/${options.tableId}`, \"POST\", {\n records: [\n {\n fields: records,\n },\n ],\n });\n\n if (!response.success) {\n throw new Error(\n `Failed to push data to Airtable: ${response.status} - ${JSON.stringify(response.data)}`,\n );\n }\n\n return response.data.records[0] ? { id: response.data.records[0].id } : null;\n } catch (error) {\n console.error(\"Error pushing data to Airtable:\", error);\n }\n\n return null;\n}\n\n/**\n * Build Airtable table creation data from schema\n */\nfunction buildAirtableTableData(properties: TProperties) {\n // Sort fields by metadata.order (ascending), then fields without order\n const sortedEntries = Object.entries(properties).sort(([, fieldA], [, fieldB]) => {\n const orderA = fieldA.metadata?.order;\n const orderB = fieldB.metadata?.order;\n\n // If both have order, sort by order value\n if (orderA !== undefined && orderB !== undefined) {\n return orderA - orderB;\n }\n\n // Fields with order come first\n if (orderA !== undefined && orderB === undefined) {\n return -1;\n }\n\n if (orderA === undefined && orderB !== undefined) {\n return 1;\n }\n\n // Both without order, maintain original order\n return 0;\n });\n\n const fields = sortedEntries.map(([fieldName, field]) => {\n // Seulement 3 cas : string, number, boolean\n if (field.type === \"string\") {\n if (field.format === \"email\") {\n return {\n name: fieldName,\n type: \"email\",\n };\n }\n if (field.format === \"uri\") {\n return {\n name: fieldName,\n type: \"url\",\n };\n }\n if (field.format === \"date\") {\n return {\n name: fieldName,\n type: \"date\",\n options: {\n dateFormat: {\n name: \"local\",\n },\n },\n };\n }\n if (field.format === \"date-time\") {\n return {\n name: fieldName,\n type: \"dateTime\",\n options: {\n dateFormat: {\n name: \"local\",\n },\n timeFormat: {\n name: \"24hour\",\n },\n timeZone: \"client\",\n },\n };\n }\n if (field.metadata?.[\"ui:multiline\"]) {\n return {\n name: fieldName,\n type: \"multilineText\",\n };\n }\n if (field.enum) {\n if (field.metadata?.[\"ui:widget\"] === \"checkbox\") {\n return {\n name: fieldName,\n type: \"multipleSelects\",\n options: {\n choices: (field.enum as Array<string>).map((value) => ({\n name: value,\n })),\n },\n };\n }\n return {\n name: fieldName,\n type: \"singleSelect\",\n options: {\n choices: (field.enum as Array<string>).map((value) => ({\n name: value,\n })),\n },\n };\n }\n return {\n name: fieldName,\n type: \"singleLineText\",\n };\n }\n if (field.type === \"boolean\") {\n return {\n name: fieldName,\n type: \"checkbox\",\n options: {\n icon: \"check\",\n color: \"grayBright\",\n },\n };\n }\n if (field.type === \"number\") {\n return {\n name: fieldName,\n type: \"number\",\n options: {\n precision: 8,\n },\n };\n }\n });\n\n return fields;\n}\n\nexport async function createTable({\n name,\n schema,\n baseId,\n accessToken,\n}: {\n name: string;\n schema: TObject;\n baseId: string;\n accessToken: string;\n}): Promise<AirtableOptions | null> {\n const fields = buildAirtableTableData(schema.properties);\n const tableCreationData = {\n name,\n description: `Table created by Upstart for ${name}`,\n fields: fields,\n };\n // console.dir(data);\n try {\n const client = getClient(accessToken);\n const response = await client.callApi<{\n id: string;\n name: string;\n description: string;\n primaryFieldId: string;\n fields: Array<{\n id: string;\n name: string;\n type: string;\n }>;\n }>(`v0/meta/bases/${baseId}/tables`, \"POST\", tableCreationData);\n\n if (!response.success) {\n console.error(\n \"Error while creating Airtable table with:\",\n JSON.stringify(tableCreationData, null, 2),\n \"from schema: \",\n JSON.stringify(schema, null, 2),\n );\n throw new Error(\n `Failed to create Airtable table: ${response.status} - ${JSON.stringify(response.data)}`,\n );\n }\n\n return {\n tableId: response.data.id,\n fields: response.data.fields,\n tableName: response.data.name,\n externalUrl: `https://airtable.com/${baseId}/${response.data.id}`,\n } as AirtableOptions;\n } catch (error) {\n if (error instanceof Error) {\n console.error(error.message);\n } else {\n console.error(\"Unknown error occurred while creating Airtable table\", error);\n }\n throw error;\n }\n}\n\nexport async function updateTable({\n baseId,\n tableId,\n newName,\n newProperties,\n accessToken,\n}: {\n baseId: string;\n tableId: string;\n newName: string;\n newProperties?: TProperties;\n accessToken: string;\n}): Promise<AirtableOptions | null> {\n const client = getClient(accessToken);\n if (newProperties) {\n try {\n const fields = buildAirtableTableData(newProperties);\n for (const field of fields) {\n const response = await client.callApi<{\n id: string;\n name: string;\n description: string;\n type: string;\n }>(`v0/meta/bases/${baseId}/tables/${tableId}/fields`, \"POST\", field);\n if (!response.success) {\n console.error(\"Error while adding field to Airtable table with:\", JSON.stringify(field, null, 2));\n throw new Error(\n `Failed to update Airtable table: ${response.status} - ${JSON.stringify(response.data)}`,\n );\n }\n }\n } catch (error) {\n if (error instanceof Error) {\n console.error(error.message);\n } else {\n console.error(\"Unknown error occurred while updating Airtable table\", error);\n }\n throw error;\n }\n }\n\n try {\n const tableUpdateData = {\n name: newName,\n description: `Table updated by Upstart for ${newName}`,\n };\n const response = await client.callApi<{\n id: string;\n name: string;\n description: string;\n primaryFieldId: string;\n fields: Array<{\n id: string;\n name: string;\n type: string;\n }>;\n }>(`v0/meta/bases/${baseId}/tables/${tableId}`, \"PATCH\", tableUpdateData);\n\n if (!response.success) {\n console.error(\"Error while updating Airtable table with:\", JSON.stringify(tableUpdateData, null, 2));\n throw new Error(\n `Failed to update Airtable table: ${response.status} - ${JSON.stringify(response.data)}`,\n );\n }\n\n return {\n tableId: response.data.id,\n fields: response.data.fields,\n tableName: response.data.name,\n externalUrl: `https://airtable.com/${baseId}/${response.data.id}`,\n } as AirtableOptions;\n } catch (error) {\n if (error instanceof Error) {\n console.error(error.message);\n } else {\n console.error(\"Unknown error occurred while creating Airtable table\", error);\n }\n throw error;\n }\n}\n\nexport async function fetchAirtableBases(accessToken: string): Promise<AirtableBases> {\n try {\n const client = getClient(accessToken);\n const response = await client.callApi<{\n bases: AirtableBases;\n }>(\"v0/meta/bases\");\n\n if (response.success) {\n return response.data.bases;\n } else {\n throw new Error(`Failed to fetch bases: ${response.status}`);\n }\n } catch (error) {\n console.error(\"Error fetching Airtable bases:\", error);\n return [];\n }\n}\n"],"mappings":"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","names":[]}
|
|
1
|
+
{"version":3,"file":"handler.js","names":["records: Record<string, unknown>"],"sources":["../../../../../src/shared/datarecords/external/airtable/handler.ts"],"sourcesContent":["import type { TObject, TProperties } from \"@sinclair/typebox\";\nimport type { AirtableBases, AirtableFieldType, AirtableOptions } from \"./types\";\n\nconst sleep = (ms: number): Promise<void> => new Promise((resolve) => setTimeout(resolve, ms));\n\nfunction getClient(token: string) {\n if (!token) {\n throw new Error(\"Missing Airtable API token\");\n }\n\n return {\n async callApi<R, P extends Record<string, unknown> = Record<string, unknown>>(\n path: string,\n method: \"GET\" | \"POST\" | \"DELETE\" | \"PUT\" | \"PATCH\" = \"GET\",\n body: P | null = null,\n ) {\n const url = `https://api.airtable.com/${path}`;\n const maxRetries = 5;\n const retryDelay = 30000; // 30 seconds\n\n for (let attempt = 1; attempt <= maxRetries; attempt++) {\n try {\n const res = await fetch(url, {\n method,\n headers: {\n Authorization: `Bearer ${token}`,\n \"Content-Type\": \"application/json\",\n },\n body: body ? JSON.stringify(body) : undefined,\n });\n\n // if 429 is rate limit exceeded\n if (res.status === 429 && attempt < maxRetries) {\n console.warn(\n `Airtable rate limit hit (429) on attempt ${attempt}/${maxRetries}. Waiting ${retryDelay / 1000}s before retry...`,\n );\n await sleep(retryDelay);\n continue; // Retry\n }\n\n const data = await res.json();\n\n // for any other response (success or definitive error)\n return {\n status: res.status,\n success: res.ok,\n data: data as R,\n };\n } catch (error) {\n // In case of network error, we also retry except on the last attempt\n if (attempt < maxRetries) {\n console.warn(\n `Network error on attempt ${attempt}/${maxRetries}. Waiting ${retryDelay / 1000}s before retry...`,\n error,\n );\n await sleep(retryDelay);\n continue;\n }\n // On the last attempt, we rethrow the error\n console.error(`Error on attempt ${attempt}/${maxRetries}:`, error);\n throw error;\n }\n }\n\n // If we reach here, it means we exhausted all attempts with 429\n throw new Error(`Airtable API rate limit exceeded after ${maxRetries} attempts`);\n },\n };\n}\n\n/**\n * Convert a FormData value based on Airtable field type\n */\nfunction convertValueForAirtableField(value: string, fieldType: AirtableFieldType): unknown {\n switch (fieldType) {\n case \"checkbox\":\n return value === \"true\" || value === \"1\" || value.toLowerCase() === \"on\";\n\n case \"number\": {\n const numValue = Number(value);\n return Number.isNaN(numValue) ? value : numValue;\n }\n\n case \"date\":\n case \"dateTime\":\n // Airtable expects ISO format strings\n return value;\n\n case \"email\":\n case \"url\":\n case \"singleLineText\":\n case \"multilineText\":\n return value;\n\n case \"singleSelect\":\n return value;\n\n case \"multipleSelects\": {\n // Handle comma-separated values or JSON array strings\n if (value.startsWith(\"[\") && value.endsWith(\"]\")) {\n try {\n return JSON.parse(value);\n } catch {\n return [value];\n }\n }\n if (value.includes(\",\")) {\n return value\n .split(\",\")\n .map((v) => v.trim())\n .filter((v) => v.length > 0);\n }\n return [value];\n }\n\n default:\n console.warn(`Unknown Airtable field type: ${fieldType}, treating as text`);\n return value;\n }\n}\n\n/**\n * Fallback conversion based on value patterns (when field type is unknown)\n */\nfunction convertValueByPattern(value: string): unknown {\n // Handle boolean-like values\n if (value === \"true\" || value === \"false\") {\n return value === \"true\";\n }\n\n // Handle number-like values\n if (/^\\d+\\.?\\d*$/.test(value)) {\n const numValue = Number(value);\n if (!Number.isNaN(numValue)) {\n return numValue;\n }\n }\n\n // Handle date formats\n if (/^\\d{4}-\\d{2}-\\d{2}$/.test(value) || /^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}/.test(value)) {\n return value;\n }\n\n // Handle comma-separated values (potential multiple select)\n if (value.includes(\",\")) {\n const values = value\n .split(\",\")\n .map((v) => v.trim())\n .filter((v) => v.length > 0);\n if (values.length > 1) {\n return values;\n }\n }\n\n // Default to string\n return value;\n}\n\nexport async function saveRecord({\n formData,\n options,\n properties,\n accessToken,\n}: {\n formData: FormData;\n options: AirtableOptions;\n properties: TProperties;\n accessToken: string;\n}): Promise<{ id: string } | null> {\n try {\n const client = getClient(accessToken);\n const records: Record<string, unknown> = {};\n\n for (const [key, value] of formData.entries()) {\n // Skip empty values\n if (value === null || value === undefined || value === \"\") continue;\n\n // Skip Files for now as they need special handling\n if (value instanceof File) {\n console.warn(`File upload not yet supported for field: ${key}`);\n continue;\n }\n\n // Find the field definition in options.fields\n const fieldDef = options.fields?.find((field) => field.name === key);\n\n if (fieldDef) {\n // Use field type information for precise conversion\n records[key] = convertValueForAirtableField(value, fieldDef.type as AirtableFieldType);\n } else {\n // Fallback to pattern-based conversion if field definition not found\n records[key] = convertValueByPattern(value);\n }\n }\n const response = await client.callApi<{\n records: Array<{ id: string; fields: Record<string, unknown> }>;\n }>(`v0/${options.baseId}/${options.tableId}`, \"POST\", {\n records: [\n {\n fields: records,\n },\n ],\n });\n\n if (!response.success) {\n throw new Error(\n `Failed to push data to Airtable: ${response.status} - ${JSON.stringify(response.data)}`,\n );\n }\n\n return response.data.records[0] ? { id: response.data.records[0].id } : null;\n } catch (error) {\n console.error(\"Error pushing data to Airtable:\", error);\n }\n\n return null;\n}\n\n/**\n * Build Airtable table creation data from schema\n */\nfunction buildAirtableTableData(properties: TProperties) {\n // Sort fields by metadata.order (ascending), then fields without order\n const sortedEntries = Object.entries(properties).sort(([, fieldA], [, fieldB]) => {\n const orderA = fieldA.metadata?.order;\n const orderB = fieldB.metadata?.order;\n\n // If both have order, sort by order value\n if (orderA !== undefined && orderB !== undefined) {\n return orderA - orderB;\n }\n\n // Fields with order come first\n if (orderA !== undefined && orderB === undefined) {\n return -1;\n }\n\n if (orderA === undefined && orderB !== undefined) {\n return 1;\n }\n\n // Both without order, maintain original order\n return 0;\n });\n\n const fields = sortedEntries.map(([fieldName, field]) => {\n // Seulement 3 cas : string, number, boolean\n if (field.type === \"string\") {\n if (field.format === \"email\") {\n return {\n name: fieldName,\n type: \"email\",\n };\n }\n if (field.format === \"uri\") {\n return {\n name: fieldName,\n type: \"url\",\n };\n }\n if (field.format === \"date\") {\n return {\n name: fieldName,\n type: \"date\",\n options: {\n dateFormat: {\n name: \"local\",\n },\n },\n };\n }\n if (field.format === \"date-time\") {\n return {\n name: fieldName,\n type: \"dateTime\",\n options: {\n dateFormat: {\n name: \"local\",\n },\n timeFormat: {\n name: \"24hour\",\n },\n timeZone: \"client\",\n },\n };\n }\n if (field.metadata?.[\"ui:multiline\"]) {\n return {\n name: fieldName,\n type: \"multilineText\",\n };\n }\n if (field.enum) {\n if (field.metadata?.[\"ui:widget\"] === \"checkbox\") {\n return {\n name: fieldName,\n type: \"multipleSelects\",\n options: {\n choices: (field.enum as Array<string>).map((value) => ({\n name: value,\n })),\n },\n };\n }\n return {\n name: fieldName,\n type: \"singleSelect\",\n options: {\n choices: (field.enum as Array<string>).map((value) => ({\n name: value,\n })),\n },\n };\n }\n return {\n name: fieldName,\n type: \"singleLineText\",\n };\n }\n if (field.type === \"boolean\") {\n return {\n name: fieldName,\n type: \"checkbox\",\n options: {\n icon: \"check\",\n color: \"grayBright\",\n },\n };\n }\n if (field.type === \"number\") {\n return {\n name: fieldName,\n type: \"number\",\n options: {\n precision: 8,\n },\n };\n }\n });\n\n return fields;\n}\n\nexport async function createTable({\n name,\n schema,\n baseId,\n accessToken,\n}: {\n name: string;\n schema: TObject;\n baseId: string;\n accessToken: string;\n}): Promise<AirtableOptions | null> {\n const fields = buildAirtableTableData(schema.properties);\n const tableCreationData = {\n name,\n description: `Table created by Upstart for ${name}`,\n fields: fields,\n };\n // console.dir(data);\n try {\n const client = getClient(accessToken);\n const response = await client.callApi<{\n id: string;\n name: string;\n description: string;\n primaryFieldId: string;\n fields: Array<{\n id: string;\n name: string;\n type: string;\n }>;\n }>(`v0/meta/bases/${baseId}/tables`, \"POST\", tableCreationData);\n\n if (!response.success) {\n console.error(\n \"Error while creating Airtable table with:\",\n JSON.stringify(tableCreationData, null, 2),\n \"from schema: \",\n JSON.stringify(schema, null, 2),\n );\n throw new Error(\n `Failed to create Airtable table: ${response.status} - ${JSON.stringify(response.data)}`,\n );\n }\n\n return {\n tableId: response.data.id,\n fields: response.data.fields,\n tableName: response.data.name,\n externalUrl: `https://airtable.com/${baseId}/${response.data.id}`,\n } as AirtableOptions;\n } catch (error) {\n if (error instanceof Error) {\n console.error(error.message);\n } else {\n console.error(\"Unknown error occurred while creating Airtable table\", error);\n }\n throw error;\n }\n}\n\nexport async function updateTable({\n baseId,\n tableId,\n newName,\n newProperties,\n accessToken,\n}: {\n baseId: string;\n tableId: string;\n newName: string;\n newProperties?: TProperties;\n accessToken: string;\n}): Promise<AirtableOptions | null> {\n const client = getClient(accessToken);\n if (newProperties) {\n try {\n const fields = buildAirtableTableData(newProperties);\n for (const field of fields) {\n const response = await client.callApi<{\n id: string;\n name: string;\n description: string;\n type: string;\n }>(`v0/meta/bases/${baseId}/tables/${tableId}/fields`, \"POST\", field);\n if (!response.success) {\n console.error(\"Error while adding field to Airtable table with:\", JSON.stringify(field, null, 2));\n throw new Error(\n `Failed to update Airtable table: ${response.status} - ${JSON.stringify(response.data)}`,\n );\n }\n }\n } catch (error) {\n if (error instanceof Error) {\n console.error(error.message);\n } else {\n console.error(\"Unknown error occurred while updating Airtable table\", error);\n }\n throw error;\n }\n }\n\n try {\n const tableUpdateData = {\n name: newName,\n description: `Table updated by Upstart for ${newName}`,\n };\n const response = await client.callApi<{\n id: string;\n name: string;\n description: string;\n primaryFieldId: string;\n fields: Array<{\n id: string;\n name: string;\n type: string;\n }>;\n }>(`v0/meta/bases/${baseId}/tables/${tableId}`, \"PATCH\", tableUpdateData);\n\n if (!response.success) {\n console.error(\"Error while updating Airtable table with:\", JSON.stringify(tableUpdateData, null, 2));\n throw new Error(\n `Failed to update Airtable table: ${response.status} - ${JSON.stringify(response.data)}`,\n );\n }\n\n return {\n tableId: response.data.id,\n fields: response.data.fields,\n tableName: response.data.name,\n externalUrl: `https://airtable.com/${baseId}/${response.data.id}`,\n } as AirtableOptions;\n } catch (error) {\n if (error instanceof Error) {\n console.error(error.message);\n } else {\n console.error(\"Unknown error occurred while creating Airtable table\", error);\n }\n throw error;\n }\n}\n\nexport async function fetchAirtableBases(accessToken: string): Promise<AirtableBases> {\n try {\n const client = getClient(accessToken);\n const response = await client.callApi<{\n bases: AirtableBases;\n }>(\"v0/meta/bases\");\n\n if (response.success) {\n return response.data.bases;\n } else {\n throw new Error(`Failed to fetch bases: ${response.status}`);\n }\n } catch (error) {\n console.error(\"Error fetching Airtable bases:\", error);\n return [];\n }\n}\n"],"mappings":"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"}
|
|
@@ -1,11 +1,16 @@
|
|
|
1
|
-
import
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
1
|
+
import * as _sinclair_typebox7631 from "@sinclair/typebox";
|
|
2
|
+
import { Static } from "@sinclair/typebox";
|
|
3
|
+
|
|
4
|
+
//#region src/shared/datarecords/external/airtable/oauth/config.d.ts
|
|
5
|
+
declare const airtableOAuthTokenSchema: _sinclair_typebox7631.TObject<{
|
|
6
|
+
scope: _sinclair_typebox7631.TString;
|
|
7
|
+
token_type: _sinclair_typebox7631.TString;
|
|
8
|
+
expires_in: _sinclair_typebox7631.TNumber;
|
|
9
|
+
access_token: _sinclair_typebox7631.TString;
|
|
10
|
+
refresh_token: _sinclair_typebox7631.TString;
|
|
11
|
+
refresh_expires_in: _sinclair_typebox7631.TNumber;
|
|
9
12
|
}>;
|
|
10
|
-
|
|
13
|
+
type AirtableOAuthToken = Static<typeof airtableOAuthTokenSchema>;
|
|
14
|
+
//#endregion
|
|
15
|
+
export { AirtableOAuthToken, airtableOAuthTokenSchema };
|
|
11
16
|
//# sourceMappingURL=config.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","
|
|
1
|
+
{"version":3,"file":"config.d.ts","names":[],"sources":["../../../../../../src/shared/datarecords/external/airtable/oauth/config.ts"],"sourcesContent":[],"mappings":";;;;cAEa,gDAAwB;SAOnC,qBAAA,CAAA;;EAPW,UAAA,+BAOX;EAAA,YAAA,+BAAA;eAAA,+BAAA;;;KACU,kBAAA,GAAqB,cAAc"}
|
|
@@ -1,18 +1,15 @@
|
|
|
1
|
-
/*! Upstart.gg - Copyright (C) 2024 Flippable - https://github.com/upstart-gg/upstart/blob/main/LICENSE */
|
|
2
|
-
|
|
3
|
-
import "../../../../chunk-ZGQ3AQBG.js";
|
|
4
|
-
|
|
5
|
-
// src/shared/datarecords/external/airtable/oauth/config.ts
|
|
6
1
|
import { Type } from "@sinclair/typebox";
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
2
|
+
|
|
3
|
+
//#region src/shared/datarecords/external/airtable/oauth/config.ts
|
|
4
|
+
const airtableOAuthTokenSchema = Type.Object({
|
|
5
|
+
scope: Type.String(),
|
|
6
|
+
token_type: Type.String(),
|
|
7
|
+
expires_in: Type.Number(),
|
|
8
|
+
access_token: Type.String(),
|
|
9
|
+
refresh_token: Type.String(),
|
|
10
|
+
refresh_expires_in: Type.Number()
|
|
14
11
|
});
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
};
|
|
12
|
+
|
|
13
|
+
//#endregion
|
|
14
|
+
export { airtableOAuthTokenSchema };
|
|
18
15
|
//# sourceMappingURL=config.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../../src/shared/datarecords/external/airtable/oauth/config.ts"],"sourcesContent":["import { Type, type Static } from \"@sinclair/typebox\";\n\nexport const airtableOAuthTokenSchema = Type.Object({\n scope: Type.String(),\n token_type: Type.String(),\n expires_in: Type.Number(),\n access_token: Type.String(),\n refresh_token: Type.String(),\n refresh_expires_in: Type.Number(),\n});\nexport type AirtableOAuthToken = Static<typeof airtableOAuthTokenSchema>;\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"config.js","names":[],"sources":["../../../../../../src/shared/datarecords/external/airtable/oauth/config.ts"],"sourcesContent":["import { Type, type Static } from \"@sinclair/typebox\";\n\nexport const airtableOAuthTokenSchema = Type.Object({\n scope: Type.String(),\n token_type: Type.String(),\n expires_in: Type.Number(),\n access_token: Type.String(),\n refresh_token: Type.String(),\n refresh_expires_in: Type.Number(),\n});\nexport type AirtableOAuthToken = Static<typeof airtableOAuthTokenSchema>;\n"],"mappings":";;;AAEA,MAAa,2BAA2B,KAAK,OAAO;CAClD,OAAO,KAAK,QAAQ;CACpB,YAAY,KAAK,QAAQ;CACzB,YAAY,KAAK,QAAQ;CACzB,cAAc,KAAK,QAAQ;CAC3B,eAAe,KAAK,QAAQ;CAC5B,oBAAoB,KAAK,QAAQ;CAClC,CAAC"}
|
|
@@ -1,40 +1,44 @@
|
|
|
1
|
-
import
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
1
|
+
import * as _sinclair_typebox6129 from "@sinclair/typebox";
|
|
2
|
+
import { Static } from "@sinclair/typebox";
|
|
3
|
+
|
|
4
|
+
//#region src/shared/datarecords/external/airtable/types.d.ts
|
|
5
|
+
declare const airtableFields: _sinclair_typebox6129.TArray<_sinclair_typebox6129.TObject<{
|
|
6
|
+
id: _sinclair_typebox6129.TString;
|
|
7
|
+
name: _sinclair_typebox6129.TString;
|
|
8
|
+
type: _sinclair_typebox6129.TString;
|
|
6
9
|
}>>;
|
|
7
|
-
|
|
8
|
-
declare const createAirtableTableResponseSchema:
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
10
|
+
type AirtableFields = Static<typeof airtableFields>;
|
|
11
|
+
declare const createAirtableTableResponseSchema: _sinclair_typebox6129.TObject<{
|
|
12
|
+
id: _sinclair_typebox6129.TString;
|
|
13
|
+
name: _sinclair_typebox6129.TString;
|
|
14
|
+
description: _sinclair_typebox6129.TString;
|
|
15
|
+
primaryFieldId: _sinclair_typebox6129.TString;
|
|
16
|
+
fields: _sinclair_typebox6129.TArray<_sinclair_typebox6129.TObject<{
|
|
17
|
+
id: _sinclair_typebox6129.TString;
|
|
18
|
+
name: _sinclair_typebox6129.TString;
|
|
19
|
+
type: _sinclair_typebox6129.TString;
|
|
20
|
+
}>>;
|
|
18
21
|
}>;
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
22
|
+
type CreateAirtableTableResponse = Static<typeof createAirtableTableResponseSchema>;
|
|
23
|
+
declare const airtableOptions: _sinclair_typebox6129.TObject<{
|
|
24
|
+
externalUrl: _sinclair_typebox6129.TOptional<_sinclair_typebox6129.TString>;
|
|
25
|
+
baseId: _sinclair_typebox6129.TString;
|
|
26
|
+
baseName: _sinclair_typebox6129.TOptional<_sinclair_typebox6129.TString>;
|
|
27
|
+
tableId: _sinclair_typebox6129.TString;
|
|
28
|
+
tableName: _sinclair_typebox6129.TOptional<_sinclair_typebox6129.TString>;
|
|
29
|
+
fields: _sinclair_typebox6129.TOptional<_sinclair_typebox6129.TArray<_sinclair_typebox6129.TObject<{
|
|
30
|
+
id: _sinclair_typebox6129.TString;
|
|
31
|
+
name: _sinclair_typebox6129.TString;
|
|
32
|
+
type: _sinclair_typebox6129.TString;
|
|
33
|
+
}>>>;
|
|
31
34
|
}>;
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
35
|
+
type AirtableOptions = Static<typeof airtableOptions>;
|
|
36
|
+
type AirtableBases = {
|
|
37
|
+
id: string;
|
|
38
|
+
name: string;
|
|
36
39
|
}[];
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
+
declare const AirtableFieldTypes: _sinclair_typebox6129.TUnsafe<"number" | "date" | "email" | "url" | "checkbox" | "dateTime" | "singleLineText" | "multilineText" | "singleSelect" | "multipleSelects">;
|
|
41
|
+
type AirtableFieldType = Static<typeof AirtableFieldTypes>;
|
|
42
|
+
//#endregion
|
|
43
|
+
export { AirtableBases, AirtableFieldType, AirtableFieldTypes, AirtableFields, AirtableOptions, CreateAirtableTableResponse, airtableFields, airtableOptions };
|
|
40
44
|
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","
|
|
1
|
+
{"version":3,"file":"types.d.ts","names":[],"sources":["../../../../../src/shared/datarecords/external/airtable/types.ts"],"sourcesContent":[],"mappings":";;;;cAGa,gBAAc,qBAAA,CAAA,6BAAA;MAM1B,qBAAA,CAAA;;EANY,IAAA,+BAMZ;CAAA,CAAA,CAAA;AAAA,KACW,cAAA,GAAiB,MAD5B,CAAA,OAC0C,cAD1C,CAAA;cAGK,yDAAiC;MAMrC,qBAAA,CAAA;qCAfyB;aAAA,+BAAA;EAAA,cAAA,+BAAA;EAOf,MAAA,8BAAc,8BAAA,CAAA;IAAA,EAAA,+BAAA;IAAiB,IAAA,+BAAA;IAAd,IAAA,+BAAA;EAAM,CAAA,CAAA,CAAA;AAAwB,CAAA,CAAA;AAQzD,KAEU,2BAAA,GAA8B,MAFxC,CAAA,OAEsD,iCAFtD,CAAA;AAAA,cAIW,eAJX,wBAI0B,OAJ1B,CAAA;+CAyBA,qBAAA,CAAA,OAAA;;;;;;;;uCA/BqC;EAAA,CAAA,CAAA,CAAA,CAAA;AAQvC,CAAA,CAAA;AAAuC,KAwB3B,eAAA,GAAkB,MAxBS,CAAA,OAwBK,eAxBL,CAAA;AAAiB,KA0B5C,aAAA,GA1B4C;MAAd,MAAA;EAAM,IAAA,EAAA,MAAA;AAEhD,CAAA,EAAA;AAqBE,cAQW,kBARX,EAmBA,qBAAA,CAX6B,OAR7B,CAAA,QAAA,GAAA,MAAA,GAAA,OAAA,GAAA,KAAA,GAAA,UAAA,GAAA,UAAA,GAAA,gBAAA,GAAA,eAAA,GAAA,cAAA,GAAA,iBAAA,CAAA;AAAA,KAoBU,iBAAA,GAAoB,MApB9B,CAAA,OAoB4C,kBApB5C,CAAA"}
|
|
@@ -1,15 +1,46 @@
|
|
|
1
|
-
|
|
1
|
+
import { StringEnum } from "../../../utils/string-enum.js";
|
|
2
|
+
import { Type } from "@sinclair/typebox";
|
|
2
3
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
4
|
+
//#region src/shared/datarecords/external/airtable/types.ts
|
|
5
|
+
const airtableFields = Type.Array(Type.Object({
|
|
6
|
+
id: Type.String(),
|
|
7
|
+
name: Type.String(),
|
|
8
|
+
type: Type.String()
|
|
9
|
+
}));
|
|
10
|
+
Type.Object({
|
|
11
|
+
id: Type.String(),
|
|
12
|
+
name: Type.String(),
|
|
13
|
+
description: Type.String(),
|
|
14
|
+
primaryFieldId: Type.String(),
|
|
15
|
+
fields: airtableFields
|
|
16
|
+
});
|
|
17
|
+
const airtableOptions = Type.Object({
|
|
18
|
+
externalUrl: Type.Optional(Type.String()),
|
|
19
|
+
baseId: Type.String({
|
|
20
|
+
pattern: "^app[A-Za-z0-9]+$",
|
|
21
|
+
description: "Airtable Base ID starting with \"app\""
|
|
22
|
+
}),
|
|
23
|
+
baseName: Type.Optional(Type.String({ description: "Airtable Base Name" })),
|
|
24
|
+
tableId: Type.String({
|
|
25
|
+
pattern: "^tbl[A-Za-z0-9]+$",
|
|
26
|
+
description: "Airtable Table ID starting with \"tbl\""
|
|
27
|
+
}),
|
|
28
|
+
tableName: Type.Optional(Type.String({ description: "Table name as shown in Airtable interface" })),
|
|
29
|
+
fields: Type.Optional(airtableFields)
|
|
30
|
+
});
|
|
31
|
+
const AirtableFieldTypes = StringEnum([
|
|
32
|
+
"number",
|
|
33
|
+
"checkbox",
|
|
34
|
+
"date",
|
|
35
|
+
"dateTime",
|
|
36
|
+
"email",
|
|
37
|
+
"url",
|
|
38
|
+
"singleLineText",
|
|
39
|
+
"multilineText",
|
|
40
|
+
"singleSelect",
|
|
41
|
+
"multipleSelects"
|
|
42
|
+
]);
|
|
43
|
+
|
|
44
|
+
//#endregion
|
|
45
|
+
export { AirtableFieldTypes, airtableFields, airtableOptions };
|
|
15
46
|
//# sourceMappingURL=types.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":[],"sourcesContent":[
|
|
1
|
+
{"version":3,"file":"types.js","names":[],"sources":["../../../../../src/shared/datarecords/external/airtable/types.ts"],"sourcesContent":["import { Type, type Static } from \"@sinclair/typebox\";\nimport { StringEnum } from \"~/shared/utils/string-enum\";\n\nexport const airtableFields = Type.Array(\n Type.Object({\n id: Type.String(),\n name: Type.String(),\n type: Type.String(),\n }),\n);\nexport type AirtableFields = Static<typeof airtableFields>;\n\nconst createAirtableTableResponseSchema = Type.Object({\n id: Type.String(),\n name: Type.String(),\n description: Type.String(),\n primaryFieldId: Type.String(),\n fields: airtableFields,\n});\n\nexport type CreateAirtableTableResponse = Static<typeof createAirtableTableResponseSchema>;\n\nexport const airtableOptions = Type.Object({\n externalUrl: Type.Optional(Type.String()),\n baseId: Type.String({\n pattern: \"^app[A-Za-z0-9]+$\",\n description: 'Airtable Base ID starting with \"app\"',\n }),\n baseName: Type.Optional(\n Type.String({\n description: \"Airtable Base Name\",\n }),\n ),\n tableId: Type.String({\n pattern: \"^tbl[A-Za-z0-9]+$\",\n description: 'Airtable Table ID starting with \"tbl\"',\n }),\n tableName: Type.Optional(\n Type.String({\n description: \"Table name as shown in Airtable interface\",\n }),\n ),\n fields: Type.Optional(airtableFields),\n});\nexport type AirtableOptions = Static<typeof airtableOptions>;\n\nexport type AirtableBases = {\n id: string;\n name: string;\n}[];\n\nexport const AirtableFieldTypes = StringEnum([\n \"number\",\n \"checkbox\",\n \"date\",\n \"dateTime\",\n \"email\",\n \"url\",\n \"singleLineText\",\n \"multilineText\",\n \"singleSelect\",\n \"multipleSelects\",\n]);\nexport type AirtableFieldType = Static<typeof AirtableFieldTypes>;\n"],"mappings":";;;;AAGA,MAAa,iBAAiB,KAAK,MACjC,KAAK,OAAO;CACV,IAAI,KAAK,QAAQ;CACjB,MAAM,KAAK,QAAQ;CACnB,MAAM,KAAK,QAAQ;CACpB,CAAC,CACH;AAGyC,KAAK,OAAO;CACpD,IAAI,KAAK,QAAQ;CACjB,MAAM,KAAK,QAAQ;CACnB,aAAa,KAAK,QAAQ;CAC1B,gBAAgB,KAAK,QAAQ;CAC7B,QAAQ;CACT,CAAC;AAIF,MAAa,kBAAkB,KAAK,OAAO;CACzC,aAAa,KAAK,SAAS,KAAK,QAAQ,CAAC;CACzC,QAAQ,KAAK,OAAO;EAClB,SAAS;EACT,aAAa;EACd,CAAC;CACF,UAAU,KAAK,SACb,KAAK,OAAO,EACV,aAAa,sBACd,CAAC,CACH;CACD,SAAS,KAAK,OAAO;EACnB,SAAS;EACT,aAAa;EACd,CAAC;CACF,WAAW,KAAK,SACd,KAAK,OAAO,EACV,aAAa,6CACd,CAAC,CACH;CACD,QAAQ,KAAK,SAAS,eAAe;CACtC,CAAC;AAQF,MAAa,qBAAqB,WAAW;CAC3C;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACD,CAAC"}
|
|
@@ -1,3 +1,7 @@
|
|
|
1
|
-
import
|
|
2
|
-
|
|
1
|
+
import { GenericWebhookOptions } from "./options.js";
|
|
2
|
+
|
|
3
|
+
//#region src/shared/datarecords/external/generic-webhook/handler.d.ts
|
|
4
|
+
declare function genericWebhookHandler(formData: FormData, options: GenericWebhookOptions): Promise<boolean>;
|
|
5
|
+
//#endregion
|
|
6
|
+
export { genericWebhookHandler as default };
|
|
3
7
|
//# sourceMappingURL=handler.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handler.d.ts","
|
|
1
|
+
{"version":3,"file":"handler.d.ts","names":[],"sources":["../../../../../src/shared/datarecords/external/generic-webhook/handler.ts"],"sourcesContent":[],"mappings":";;;iBAE8B,qBAAA,WAAgC,mBAAmB,wBAAqB"}
|
|
@@ -1,17 +1,12 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
import "../../../chunk-ZGQ3AQBG.js";
|
|
4
|
-
|
|
5
|
-
// src/shared/datarecords/external/generic-webhook/handler.ts
|
|
1
|
+
//#region src/shared/datarecords/external/generic-webhook/handler.ts
|
|
6
2
|
async function genericWebhookHandler(formData, options) {
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
return result.ok;
|
|
3
|
+
return (await fetch(options.url, {
|
|
4
|
+
method: "POST",
|
|
5
|
+
body: JSON.stringify(formData),
|
|
6
|
+
headers: options.headers
|
|
7
|
+
})).ok;
|
|
13
8
|
}
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
};
|
|
9
|
+
|
|
10
|
+
//#endregion
|
|
11
|
+
export { genericWebhookHandler as default };
|
|
17
12
|
//# sourceMappingURL=handler.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../src/shared/datarecords/external/generic-webhook/handler.ts"],"sourcesContent":["import type { GenericWebhookOptions } from \"./options\";\n\nexport default async function genericWebhookHandler(formData: FormData, options: GenericWebhookOptions) {\n const result = await fetch(options.url, {\n method: \"POST\",\n body: JSON.stringify(formData),\n headers: options.headers,\n });\n return result.ok;\n}\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"handler.js","names":[],"sources":["../../../../../src/shared/datarecords/external/generic-webhook/handler.ts"],"sourcesContent":["import type { GenericWebhookOptions } from \"./options\";\n\nexport default async function genericWebhookHandler(formData: FormData, options: GenericWebhookOptions) {\n const result = await fetch(options.url, {\n method: \"POST\",\n body: JSON.stringify(formData),\n headers: options.headers,\n });\n return result.ok;\n}\n"],"mappings":";AAEA,eAA8B,sBAAsB,UAAoB,SAAgC;AAMtG,SALe,MAAM,MAAM,QAAQ,KAAK;EACtC,QAAQ;EACR,MAAM,KAAK,UAAU,SAAS;EAC9B,SAAS,QAAQ;EAClB,CAAC,EACY"}
|
|
@@ -1,7 +1,12 @@
|
|
|
1
|
-
import
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
1
|
+
import * as _sinclair_typebox6160 from "@sinclair/typebox";
|
|
2
|
+
import { Static } from "@sinclair/typebox";
|
|
3
|
+
|
|
4
|
+
//#region src/shared/datarecords/external/generic-webhook/options.d.ts
|
|
5
|
+
declare const genericWebhookOptions: _sinclair_typebox6160.TObject<{
|
|
6
|
+
url: _sinclair_typebox6160.TString;
|
|
7
|
+
headers: _sinclair_typebox6160.TOptional<_sinclair_typebox6160.TRecord<_sinclair_typebox6160.TString, _sinclair_typebox6160.TString>>;
|
|
5
8
|
}>;
|
|
6
|
-
|
|
9
|
+
type GenericWebhookOptions = Static<typeof genericWebhookOptions>;
|
|
10
|
+
//#endregion
|
|
11
|
+
export { GenericWebhookOptions, genericWebhookOptions };
|
|
7
12
|
//# sourceMappingURL=options.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"options.d.ts","
|
|
1
|
+
{"version":3,"file":"options.d.ts","names":[],"sources":["../../../../../src/shared/datarecords/external/generic-webhook/options.ts"],"sourcesContent":[],"mappings":";;;;cAEa,6CAAqB;OAQhC,qBAAA,CAAA;;AARF,CAAA,CAAA;AAQE,KAEU,qBAAA,GAAwB,MAFlC,CAAA,OAEgD,qBAFhD,CAAA"}
|
|
@@ -1,19 +1,17 @@
|
|
|
1
|
-
/*! Upstart.gg - Copyright (C) 2024 Flippable - https://github.com/upstart-gg/upstart/blob/main/LICENSE */
|
|
2
|
-
|
|
3
|
-
import "../../../chunk-ZGQ3AQBG.js";
|
|
4
|
-
|
|
5
|
-
// src/shared/datarecords/external/generic-webhook/options.ts
|
|
6
1
|
import { Type } from "@sinclair/typebox";
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
2
|
+
|
|
3
|
+
//#region src/shared/datarecords/external/generic-webhook/options.ts
|
|
4
|
+
const genericWebhookOptions = Type.Object({
|
|
5
|
+
url: Type.String({
|
|
6
|
+
format: "uri",
|
|
7
|
+
title: "Webhook URL"
|
|
8
|
+
}),
|
|
9
|
+
headers: Type.Optional(Type.Record(Type.String(), Type.String(), {
|
|
10
|
+
title: "Headers",
|
|
11
|
+
description: "Additional headers to include in the webhook request"
|
|
12
|
+
}))
|
|
15
13
|
});
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
};
|
|
14
|
+
|
|
15
|
+
//#endregion
|
|
16
|
+
export { genericWebhookOptions };
|
|
19
17
|
//# sourceMappingURL=options.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../src/shared/datarecords/external/generic-webhook/options.ts"],"sourcesContent":["import { Type, type Static } from \"@sinclair/typebox\";\n\nexport const genericWebhookOptions = Type.Object({\n url: Type.String({ format: \"uri\", title: \"Webhook URL\" }),\n headers: Type.Optional(\n Type.Record(Type.String(), Type.String(), {\n title: \"Headers\",\n description: \"Additional headers to include in the webhook request\",\n }),\n ),\n});\n\nexport type GenericWebhookOptions = Static<typeof genericWebhookOptions>;\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"options.js","names":[],"sources":["../../../../../src/shared/datarecords/external/generic-webhook/options.ts"],"sourcesContent":["import { Type, type Static } from \"@sinclair/typebox\";\n\nexport const genericWebhookOptions = Type.Object({\n url: Type.String({ format: \"uri\", title: \"Webhook URL\" }),\n headers: Type.Optional(\n Type.Record(Type.String(), Type.String(), {\n title: \"Headers\",\n description: \"Additional headers to include in the webhook request\",\n }),\n ),\n});\n\nexport type GenericWebhookOptions = Static<typeof genericWebhookOptions>;\n"],"mappings":";;;AAEA,MAAa,wBAAwB,KAAK,OAAO;CAC/C,KAAK,KAAK,OAAO;EAAE,QAAQ;EAAO,OAAO;EAAe,CAAC;CACzD,SAAS,KAAK,SACZ,KAAK,OAAO,KAAK,QAAQ,EAAE,KAAK,QAAQ,EAAE;EACxC,OAAO;EACP,aAAa;EACd,CAAC,CACH;CACF,CAAC"}
|
|
@@ -1,27 +1,31 @@
|
|
|
1
|
-
import
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
1
|
+
import * as _sinclair_typebox7758 from "@sinclair/typebox";
|
|
2
|
+
import { Static } from "@sinclair/typebox";
|
|
3
|
+
|
|
4
|
+
//#region src/shared/datarecords/external/google/oauth/config.d.ts
|
|
5
|
+
declare const googleOAuthTokenSchema: _sinclair_typebox7758.TObject<{
|
|
6
|
+
access_token: _sinclair_typebox7758.TString;
|
|
7
|
+
token_type: _sinclair_typebox7758.TString;
|
|
8
|
+
expires_in: _sinclair_typebox7758.TNumber;
|
|
9
|
+
refresh_token: _sinclair_typebox7758.TOptional<_sinclair_typebox7758.TString>;
|
|
10
|
+
scope: _sinclair_typebox7758.TString;
|
|
11
|
+
id_token: _sinclair_typebox7758.TOptional<_sinclair_typebox7758.TString>;
|
|
9
12
|
}>;
|
|
10
|
-
|
|
11
|
-
declare const googleIdTokenSchema:
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
13
|
+
type GoogleOAuthToken = Static<typeof googleOAuthTokenSchema>;
|
|
14
|
+
declare const googleIdTokenSchema: _sinclair_typebox7758.TObject<{
|
|
15
|
+
iss: _sinclair_typebox7758.TString;
|
|
16
|
+
sub: _sinclair_typebox7758.TString;
|
|
17
|
+
aud: _sinclair_typebox7758.TString;
|
|
18
|
+
iat: _sinclair_typebox7758.TNumber;
|
|
19
|
+
exp: _sinclair_typebox7758.TNumber;
|
|
20
|
+
email: _sinclair_typebox7758.TOptional<_sinclair_typebox7758.TString>;
|
|
21
|
+
email_verified: _sinclair_typebox7758.TOptional<_sinclair_typebox7758.TBoolean>;
|
|
22
|
+
name: _sinclair_typebox7758.TOptional<_sinclair_typebox7758.TString>;
|
|
23
|
+
picture: _sinclair_typebox7758.TOptional<_sinclair_typebox7758.TString>;
|
|
24
|
+
given_name: _sinclair_typebox7758.TOptional<_sinclair_typebox7758.TString>;
|
|
25
|
+
family_name: _sinclair_typebox7758.TOptional<_sinclair_typebox7758.TString>;
|
|
26
|
+
locale: _sinclair_typebox7758.TOptional<_sinclair_typebox7758.TString>;
|
|
24
27
|
}>;
|
|
25
|
-
|
|
26
|
-
|
|
28
|
+
type GoogleIdToken = Static<typeof googleIdTokenSchema>;
|
|
29
|
+
//#endregion
|
|
30
|
+
export { GoogleIdToken, GoogleOAuthToken };
|
|
27
31
|
//# sourceMappingURL=config.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","
|
|
1
|
+
{"version":3,"file":"config.d.ts","names":[],"sources":["../../../../../../src/shared/datarecords/external/google/oauth/config.ts"],"sourcesContent":[],"mappings":";;;;cAEM,8CAAsB;gBAO1B,qBAAA,CAAA;;EAPI,UAAA,+BAOJ;EAAA,aAAA,iCAAA,+BAAA;OAAA,+BAAA;;;KAEU,gBAAA,GAAmB,cAAc;cAGvC,2CAAmB;OAavB,qBAAA,CAAA;;;oCAzB0B;EAAA,GAAA,+BAAA;EAShB,KAAA,iCAAgB,+BAAA;EAAA,cAAA,iCAAA,gCAAA;MAAiB,iCAAA,+BAAA;SAAd,iCAAA,+BAAA;EAAM,UAAA,iCAAA,+BAAA;EAG/B,WAAA,iCAaJ,+BAAA;EAAA,MAAA,iCAAA,+BAAA;;KAEU,aAAA,GAAgB,cAAc"}
|
|
@@ -1,38 +1,29 @@
|
|
|
1
|
-
/*! Upstart.gg - Copyright (C) 2024 Flippable - https://github.com/upstart-gg/upstart/blob/main/LICENSE */
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
// src/shared/datarecords/external/google/oauth/config.ts
|
|
5
1
|
import { Type } from "@sinclair/typebox";
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
// Space-separated list of granted scopes
|
|
16
|
-
id_token: Type.Optional(Type.String())
|
|
17
|
-
// JWT token containing user info, if requested
|
|
2
|
+
|
|
3
|
+
//#region src/shared/datarecords/external/google/oauth/config.ts
|
|
4
|
+
Type.Object({
|
|
5
|
+
access_token: Type.String(),
|
|
6
|
+
token_type: Type.String(),
|
|
7
|
+
expires_in: Type.Number(),
|
|
8
|
+
refresh_token: Type.Optional(Type.String()),
|
|
9
|
+
scope: Type.String(),
|
|
10
|
+
id_token: Type.Optional(Type.String())
|
|
18
11
|
});
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
name: Type.Optional(Type.String()),
|
|
33
|
-
picture: Type.Optional(Type.String()),
|
|
34
|
-
given_name: Type.Optional(Type.String()),
|
|
35
|
-
family_name: Type.Optional(Type.String()),
|
|
36
|
-
locale: Type.Optional(Type.String())
|
|
12
|
+
Type.Object({
|
|
13
|
+
iss: Type.String(),
|
|
14
|
+
sub: Type.String(),
|
|
15
|
+
aud: Type.String(),
|
|
16
|
+
iat: Type.Number(),
|
|
17
|
+
exp: Type.Number(),
|
|
18
|
+
email: Type.Optional(Type.String()),
|
|
19
|
+
email_verified: Type.Optional(Type.Boolean()),
|
|
20
|
+
name: Type.Optional(Type.String()),
|
|
21
|
+
picture: Type.Optional(Type.String()),
|
|
22
|
+
given_name: Type.Optional(Type.String()),
|
|
23
|
+
family_name: Type.Optional(Type.String()),
|
|
24
|
+
locale: Type.Optional(Type.String())
|
|
37
25
|
});
|
|
26
|
+
|
|
27
|
+
//#endregion
|
|
28
|
+
export { };
|
|
38
29
|
//# sourceMappingURL=config.js.map
|