PageSourceSearch

https://chronicle-news-reader-demo.vercel.app/_next/static/chunks/f2536f96d1ed239a.js

js chronicle-news-reader-demo.vercel.app collected 2026-10-03 05:15:54 UTC 16,599 bytes, 1 lines download raw bytes

1(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,33525,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"warnOnce",{enumerable:!0,get:function(){return n}});let n=e=>{}},84520,87987,e=>{"use strict";var t=e.i(43476),r=e.i(71645);let n="story-water",o="story-transit",i="story-airlines",a="story-redistrict",s=[{id:n,title:"Municipal Water Systems Brace for Cyber Threats",summary:"Three regional water utilities adopted new intrusion-detection requirements after a near-miss at a treatment plant control system.",category:"Infrastructure",imageUrl:"https://images.unsplash.com/photo-1581092921461-eab62e97a780?w=1200&q=60",status:"published",createdAt:"2026-05-04T13:10:00Z",updatedAt:"2026-06-02T16:40:00Z"},{id:o,title:"Downtown Transit Overhaul Hits Funding Snag",summary:"The light-rail extension lost its federal matching grant after a procurement audit flagged the lead contractor.",category:"Transportation",imageUrl:"https://images.unsplash.com/photo-1444986230814-eee734f59124?w=1200&q=60",status:"published",createdAt:"2026-05-21T09:00:00Z",updatedAt:"2026-06-10T11:05:00Z"},{id:i,title:"Regional Airlines Consolidate Amid Fuel Cost Spike",summary:"Two mid-size carriers announced a merger after jet fuel costs rose 18% over the last two quarters.",category:"Business",imageUrl:"https://images.unsplash.com/photo-1436491865332-7a61a109cc05?w=1200&q=60",status:"published",createdAt:"2026-04-12T08:30:00Z",updatedAt:"2026-05-29T14:20:00Z"},{id:a,title:"Statehouse Redistricting Fight Heads to Court",summary:"A state appeals court agreed to hear arguments over whether new district maps dilute minority representation.",category:"Politics",imageUrl:"https://images.unsplash.com/photo-1505664194779-8beaceb93744?w=1200&q=60",status:"published",createdAt:"2026-03-02T10:00:00Z",updatedAt:"2026-03-28T17:50:00Z"}],u=[{id:"atom-water-1",storyId:n,type:"text",content:"Three utilities serving a combined 480,000 residents confirmed they are rolling out new SCADA intrusion-detection rules after a contractor flagged unusual remote-access attempts at a treatment plant in March.",sourceUrl:"https://example-news.test/wire/water-utility-grant",sourceTitle:"Statehouse Wire",position:0,createdAt:"2026-05-04T13:10:00Z",relatedStories:[]},{id:"atom-water-2",storyId:n,type:"quote",content:"We caught this before it touched anything operational, but the margin was thinner than anyone wants to admit.",richContent:{attribution:"Utility IT director, speaking on background"},position:1,createdAt:"2026-05-05T10:00:00Z",relatedStories:[]},{id:"atom-water-3",storyId:n,type:"text",content:"State regulators are now drafting a rule that would require annual third-party penetration tests for any utility serving more than 50,000 customers.",position:2,createdAt:"2026-06-02T16:40:00Z",relatedStories:[{id:a,title:"Statehouse Redistricting Fight Heads to Court"}]},{id:"atom-transit-1",storyId:o,type:"text",content:"The federal matching grant for the light-rail extension was pulled after a procurement audit flagged the lead contractor for change-order irregularities totaling an estimated $14M.",sourceUrl:"https://example-news.test/wire/transit-board-meeting",sourceTitle:"Transit Authority Press Releases",position:0,createdAt:"2026-05-21T09:00:00Z",relatedStories:[]},{id:"atom-transit-2",storyId:o,type:"image",content:"",richContent:{caption:"Construction at the Fifth Street extension site, paused since early June."},position:1,createdAt:"2026-06-05T12:00:00Z",relatedStories:[]},{id:"atom-transit-3",storyId:o,type:"text",content:"City planners confirmed they are studying bus rapid transit as a cheaper, faster-to-build alternative while the light-rail funding gap remains open.",sourceUrl:"https://example-news.test/articles/bus-rapid-transit",sourceTitle:"Transit Authority Press Releases",position:2,createdAt:"2026-06-21T07:15:00Z",relatedStories:[]},{id:"atom-airlines-1",storyId:i,type:"text",content:"Two mid-size regional carriers announced plans to merge after jet fuel costs rose 18% over the last two quarters, squeezing margins on short-haul routes.",sourceUrl:"https://example-news.test/wire/regional-business",sourceTitle:"Regional Business Journal",position:0,
1createdAt:"2026-04-12T08:30:00Z",relatedStories:[]},{id:"atom-airlines-2",storyId:i,type:"quote",content:"This is consolidation driven by fuel costs, not demand. The routes are still profitable on their own.",richContent:{attribution:"Regional aviation analyst"},position:1,createdAt:"2026-05-29T14:20:00Z",relatedStories:[]},{id:"atom-redistrict-1",storyId:a,type:"text",content:"A state appeals court agreed to hear arguments on whether the new district maps dilute representation in three majority-minority districts.",sourceUrl:"https://example-news.test/articles/redistrict-appeal",sourceTitle:"Statehouse Wire",position:0,createdAt:"2026-03-02T10:00:00Z",relatedStories:[]},{id:"atom-redistrict-2",storyId:a,type:"text",content:"Oral arguments are scheduled for next month; a ruling before the filing deadline for next year's primary is considered unlikely.",position:1,createdAt:"2026-03-28T17:50:00Z",relatedStories:[]}],l=Array.from(new Set(s.filter(e=>"published"===e.status).map(e=>e.category).filter(Boolean))).sort();function c(e){return u.filter(t=>t.storyId===e).sort((e,t)=>e.position-t.position)}function d(e){return s.find(t=>t.id===e)}let f=[n,i],p=["atom-water-1","atom-airlines-1"];e.s(["ATOMS",0,u,"CATEGORIES",0,l,"DEFAULT_FOLLOWED_IDS",0,f,"DEFAULT_READ_ATOM_IDS",0,p,"STORIES",0,s,"atomsForStory",()=>c,"storyById",()=>d],87987);let h=(0,r.createContext)(null);function m({children:e}){let[n,o]=(0,r.useState)(new Set(f)),[i,a]=(0,r.useState)(new Set(p)),l=e=>c(e).filter(e=>!i.has(e.id)).length,d=(0,r.useMemo)(()=>s.filter(e=>"published"===e.status).filter(e=>n.has(e.id)).map(e=>({...e,unreadCount:l(e.id),isFollowing:!0})).filter(e=>e.unreadCount>0).sort((e,t)=>new Date(t.updatedAt)-new Date(e.updatedAt)),[n,i]),m=(0,r.useMemo)(()=>u.filter(e=>n.has(e.storyId)&&!i.has(e.id)).map(e=>({...e,story:s.find(t=>t.id===e.storyId)})).sort((e,t)=>new Date(t.createdAt)-new Date(e.createdAt)),[n,i]),y={allStories:s.filter(e=>"published"===e.status),followedStories:d,wireAtoms:m,isFollowing:e=>n.has(e),unreadCountFor:l,follow:e=>o(t=>new Set(t).add(e)),unfollow:e=>o(t=>{let r=new Set(t);return r.delete(e),r}),isAtomRead:e=>i.has(e),markAtomRead:e=>a(t=>new Set(t).add(e)),markAtomsReadForStory:e=>a(t=>{let r=new Set(t);return c(e).forEach(e=>r.add(e.id)),r})};return(0,t.jsx)(h.Provider,{value:y,children:e})}function y(){let e=(0,r.useContext)(h);if(!e)throw Error("useStore must be used within StoreProvider");return e}e.s(["StoreProvider",()=>m,"useStore",()=>y],84520)},98183,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={assign:function(){return u},searchParamsToUrlQuery:function(){return i},urlQueryToSearchParams:function(){return s}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});function i(e){let t={};for(let[r,n]of e.entries()){let e=t[r];void 0===e?t[r]=n:Array.isArray(e)?e.push(n):t[r]=[e,n]}return t}function a(e){return"string"==typeof e?e:("number"!=typeof e||isNaN(e))&&"boolean"!=typeof e?"":String(e)}function s(e){let t=new URLSearchParams;for(let[r,n]of Object.entries(e))if(Array.isArray(n))for(let e of n)t.append(r,a(e));else t.set(r,a(n));return t}function u(e,...t){for(let r of t){for(let t of r.keys())e.delete(t);for(let[t,n]of r.entries())e.append(t,n)}return e}},95057,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={formatUrl:function(){return s},formatWithValidation:function(){return l},urlObjectKeys:function(){return u}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let i=e.r(90809)._(e.r(98183)),a=/https?|ftp|gopher|file/;function s(e){let{auth:t,hostname:r}=e,n=e.protocol||"",o=e.pathname||"",s=e.hash||"",u=e.query||"",l=!1;t=t?encodeURIComponent(t).replace(/%3A/i,":")+"@":"",e.host?l=t+e.host:r&&(l=t+(~r.indexOf(":")?`[${r}]`:r),e.port&&(l+=":"+e.port)),u&&"object"==typeof u&&(u=String(i.urlQueryToSearchParams(u)));let c=e.search||u&&`?${u}`||"";return n&&!n.endsWith(":")&&(n+=":"),e.slashes||(!n||a.test(n))&&!1!==l?(l="//"+(l||""),o&&"/"!==o[0]&&(o="/"+o)):l||(l=""),s&&"#"!==s[0]&&(s="#"+s),c&&"?"!==c[0]&&(c="?"+c),o=o.replace(/[?#]/g,encodeURIComponent),c=c.replace("#","%23"),`${n}${l}${o}
1${c}${s}`}let u=["auth","hash","host","hostname","href","path","pathname","port","protocol","query","search","slashes"];function l(e){return s(e)}},18581,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"useMergedRef",{enumerable:!0,get:function(){return o}});let n=e.r(71645);function o(e,t){let r=(0,n.useRef)(null),o=(0,n.useRef)(null);return(0,n.useCallback)(n=>{if(null===n){let e=r.current;e&&(r.current=null,e());let t=o.current;t&&(o.current=null,t())}else e&&(r.current=i(e,n)),t&&(o.current=i(t,n))},[e,t])}function i(e,t){if("function"!=typeof e)return e.current=t,()=>{e.current=null};{let r=e(t);return"function"==typeof r?r:()=>e(null)}}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},18967,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={DecodeError:function(){return g},MiddlewareNotFoundError:function(){return T},MissingStaticPage:function(){return S},NormalizeError:function(){return b},PageNotFoundError:function(){return w},SP:function(){return m},ST:function(){return y},WEB_VITALS:function(){return i},execOnce:function(){return a},getDisplayName:function(){return d},getLocationOrigin:function(){return l},getURL:function(){return c},isAbsoluteUrl:function(){return u},isResSent:function(){return f},loadGetInitialProps:function(){return h},normalizeRepeatedSlashes:function(){return p},stringifyError:function(){return v}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let i=["CLS","FCP","FID","INP","LCP","TTFB"];function a(e){let t,r=!1;return(...n)=>(r||(r=!0,t=e(...n)),t)}let s=/^[a-zA-Z][a-zA-Z\d+\-.]*?:/,u=e=>s.test(e);function l(){let{protocol:e,hostname:t,port:r}=window.location;return`${e}//${t}${r?":"+r:""}`}function c(){let{href:e}=window.location,t=l();return e.substring(t.length)}function d(e){return"string"==typeof e?e:e.displayName||e.name||"Unknown"}function f(e){return e.finished||e.headersSent}function p(e){let t=e.split("?");return t[0].replace(/\\/g,"/").replace(/\/\/+/g,"/")+(t[1]?`?${t.slice(1).join("?")}`:"")}async function h(e,t){let r=t.res||t.ctx&&t.ctx.res;if(!e.getInitialProps)return t.ctx&&t.Component?{pageProps:await h(t.Component,t.ctx)}:{};let n=await e.getInitialProps(t);if(r&&f(r))return n;if(!n)throw Object.defineProperty(Error(`"${d(e)}.getInitialProps()" should resolve to an object. But found "${n}" instead.`),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0});return n}let m="u">typeof performance,y=m&&["mark","measure","getEntriesByName"].every(e=>"function"==typeof performance[e]);class g extends Error{}class b extends Error{}class w extends Error{constructor(e){super(),this.code="ENOENT",this.name="PageNotFoundError",this.message=`Cannot find module for page: ${e}`}}class S extends Error{constructor(e,t){super(),this.message=`Failed to load static file for page: ${e} ${t}`}}class T extends Error{constructor(){super(),this.code="ENOENT",this.message="Cannot find the middleware module"}}function v(e){return JSON.stringify({message:e.message,stack:e.stack})}},73668,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"isLocalURL",{enumerable:!0,get:function(){return i}});let n=e.r(18967),o=e.r(52817);function i(e){if(!(0,n.isAbsoluteUrl)(e))return!0;try{let t=(0,n.getLocationOrigin)(),r=new URL(e,t);return r.origin===t&&(0,o.hasBasePath)(r.pathname)}catch(e){return!1}}},84508,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"errorOnce",{enumerable:!0,get:function(){return n}});let n=e=>{}},22016,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={default:function(){return g},useLinkStatus:function(){return w}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let i=e.r(90809),a=e.r(43476),s=i._(e.r(71645)),u=e.r(95057),l=e.r(8372),c=e.r(18581),d=e.r(18967),f=e.r(5550);e.r(33525);let p=e.r(91949),h=e.r(73668),m=e.r(9396);function y(e){return"string"==typeof e?e:(0,u.formatUrl)(e)}function g(t){var r;let n,o,i,[u,g]=(0,s.useOptimistic)(p.IDLE_LINK_STATUS),w=(0,s.useRef)(null),{href:S,as:T,children:v,prefetch:x=null,passHref:A,replace:P,shallow:O,scroll:E,onClick:_,onMouseEnter:C,onTouchStart:j,legacyBehavior:R=!1,onNavigate:I,ref:U,unstable_dynamicOnHover:M,...N}=t;n=v,R&&("string"==typeof n||"number"==typeof n)&&(n=(0,a.jsx)("a",{children:n}));let F=s.default.useContext(l.AppRouterContext),L=!1!==x,k=!1!==x?null===(r=x)||"auto"===r?m.FetchStrategy.PPR:m.FetchStrategy.Full:m.FetchStrategy.PPR,{href:D,as:Z}=s.default.useMemo(()=>{let e=y(S);return{href:e,as:T?y(T):e}},[S,T]);if(R){if(n?.$$typeof===Symbol.for("react.lazy"))throw Object.defineProperty(Error("`<Link legacyBehavior>` received a direct child that is either a Server Component, or JSX that was loaded with React.lazy(). This is not supported. Either remove legacyBehavior, or make the direct child a Client Component that renders the Link's `<a>
1` tag."),"__NEXT_ERROR_CODE",{value:"E863",enumerable:!1,configurable:!0});o=s.default.Children.only(n)}let $=R?o&&"object"==typeof o&&o.ref:U,B=s.default.useCallback(e=>(null!==F&&(w.current=(0,p.mountLinkInstance)(e,D,F,k,L,g)),()=>{w.current&&((0,p.unmountLinkForCurrentNavigation)(w.current),w.current=null),(0,p.unmountPrefetchableInstance)(e)}),[L,D,F,k,g]),q={ref:(0,c.useMergedRef)(B,$),onClick(t){R||"function"!=typeof _||_(t),R&&o.props&&"function"==typeof o.props.onClick&&o.props.onClick(t),!F||t.defaultPrevented||function(t,r,n,o,i,a,u){if("u">typeof window){let l,{nodeName:c}=t.currentTarget;if("A"===c.toUpperCase()&&((l=t.currentTarget.getAttribute("target"))&&"_self"!==l||t.metaKey||t.ctrlKey||t.shiftKey||t.altKey||t.nativeEvent&&2===t.nativeEvent.which)||t.currentTarget.hasAttribute("download"))return;if(!(0,h.isLocalURL)(r)){i&&(t.preventDefault(),location.replace(r));return}if(t.preventDefault(),u){let e=!1;if(u({preventDefault:()=>{e=!0}}),e)return}let{dispatchNavigateAction:d}=e.r(99781);s.default.startTransition(()=>{d(n||r,i?"replace":"push",a??!0,o.current)})}}(t,D,Z,w,P,E,I)},onMouseEnter(e){R||"function"!=typeof C||C(e),R&&o.props&&"function"==typeof o.props.onMouseEnter&&o.props.onMouseEnter(e),F&&L&&(0,p.onNavigationIntent)(e.currentTarget,!0===M)},onTouchStart:function(e){R||"function"!=typeof j||j(e),R&&o.props&&"function"==typeof o.props.onTouchStart&&o.props.onTouchStart(e),F&&L&&(0,p.onNavigationIntent)(e.currentTarget,!0===M)}};return(0,d.isAbsoluteUrl)(Z)?q.href=Z:R&&!A&&("a"!==o.type||"href"in o.props)||(q.href=(0,f.addBasePath)(Z)),i=R?s.default.cloneElement(o,q):(0,a.jsx)("a",{...N,...q,children:n}),(0,a.jsx)(b.Provider,{value:u,children:i})}e.r(84508);let b=(0,s.createContext)(p.IDLE_LINK_STATUS),w=()=>(0,s.useContext)(b);("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},18566,(e,t,r)=>{t.exports=e.r(76562)},36039,e=>{"use strict";var t=e.i(43476),r=e.i(22016),n=e.i(18566),o=e.i(84520);let i=[{href:"/",label:"Following"},{href:"/discover",label:"Discover"},{href:"/wire",label:"Wire"},{href:"/profile",label:"Profile"}];function a(){let e=(0,n.usePathname)(),{wireAtoms:a}=(0,o.useStore)();return(0,t.jsx)("nav",{className:"sticky bottom-0 z-20 border-t border-border bg-bg-primary",children:(0,t.jsx)("div",{className:"mx-auto flex max-w-md",children:i.map(n=>{let o="/"===n.href?"/"===e:e.startsWith(n.href),i="/wire"===n.href&&a.length>0;return(0,t.jsxs)(r.default,{href:n.href,className:`relative flex-1 py-3 text-center text-[12px] font-medium ${o?"text-primary-blue":"text-text-secondary"}`,children:[n.label,i&&(0,t.jsx)("span",{className:"absolute right-[18%] top-1.5 inline-flex h-4 min-w-4 items-center justify-center rounded-full bg-accent px-1 text-[10px] font-semibold text-white",children:a.length})]},n.href)})})})}e.s(["default",()=>a])}]);

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.