@lunora/codegen 1.0.0-alpha.331 → 1.0.0-alpha.332
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.mts +29 -18
- package/dist/index.d.ts +29 -18
- package/dist/index.mjs +1 -1
- package/dist/packem_shared/{AGENTS_FILENAME-B6-kjzM3.mjs → AGENTS_FILENAME-8zoeGNsB.mjs} +1 -1
- package/dist/packem_shared/{CONTAINERS_FILENAME-dFRtAyIe.mjs → CONTAINERS_FILENAME-QiNt84QA.mjs} +1 -1
- package/dist/packem_shared/{DEFAULT_TARGET-BbWiB-rs.mjs → DEFAULT_TARGET-CDksdcYc.mjs} +1 -1
- package/dist/packem_shared/{FLAGS_FILENAME-Bf0MSlHH.mjs → FLAGS_FILENAME-Cwq0B2Nl.mjs} +1 -1
- package/dist/packem_shared/{MUTATORS_FILENAME-B_I0kkvJ.mjs → MUTATORS_FILENAME-DZFH7a9G.mjs} +1 -1
- package/dist/packem_shared/{NOTIFY_FILENAME-DOIxn0Qb.mjs → NOTIFY_FILENAME-DZIt-rb0.mjs} +1 -1
- package/dist/packem_shared/{OPENRPC_VERSION-CCY7xqSL.mjs → OPENRPC_VERSION-CeEGdAZ9.mjs} +1 -1
- package/dist/packem_shared/PROJECT_CONFIG_FILENAMES-CLfsyvjA.mjs +1 -0
- package/dist/packem_shared/{QUEUES_FILENAME-CsRy4VTF.mjs → QUEUES_FILENAME-EvfCmmv6.mjs} +1 -1
- package/dist/packem_shared/SCHEMA_SNAPSHOT_FILENAME-V7LYutDl.mjs +31 -0
- package/dist/packem_shared/{SHAPES_FILENAME-D7Ifi5Ce.mjs → SHAPES_FILENAME-Ciu5tx7B.mjs} +1 -1
- package/dist/packem_shared/{WORKFLOWS_FILENAME-CdeS224T.mjs → WORKFLOWS_FILENAME-C5tz9gMh.mjs} +1 -1
- package/dist/packem_shared/{attribution-hVBriwzy.mjs → attribution-RI-H1KPm.mjs} +1 -1
- package/dist/packem_shared/{buildOpenApiDocument-DFv-RYZU.mjs → buildOpenApiDocument-BBao-3vL.mjs} +1 -1
- package/dist/packem_shared/{capabilitiesUsedBy-CF7sUwa8.mjs → capabilitiesUsedBy-BC7ldWJI.mjs} +1 -1
- package/dist/packem_shared/chain-C9qZxjM_.mjs +1 -0
- package/dist/packem_shared/{classify-procedure-call-Bw5sia-K.mjs → classify-procedure-call-C5JY2w5V.mjs} +1 -1
- package/dist/packem_shared/{context-property-calls-Co_G3ENU.mjs → context-property-calls-M6Oo1xQT.mjs} +1 -1
- package/dist/packem_shared/{context-root-BTW5XwVq.mjs → context-root-DQd48e1F.mjs} +1 -1
- package/dist/packem_shared/createCodegenProject-C-fKC9h4.mjs +1 -0
- package/dist/packem_shared/{database-calls-D-GwIhWO.mjs → database-calls-BNoSJRFy.mjs} +1 -1
- package/dist/packem_shared/{discoverAuthApiCalls-xs0ONfI-.mjs → discoverAuthApiCalls-GPzUN_-_.mjs} +1 -1
- package/dist/packem_shared/{discoverCrons-B2SdRjRO.mjs → discoverCrons-C1fKEf4g.mjs} +1 -1
- package/dist/packem_shared/{discoverFunctions-C9Ra5XXH.mjs → discoverFunctions-CJu5EH_G.mjs} +1 -1
- package/dist/packem_shared/{discoverHttpRoutes-WBAqBcfK.mjs → discoverHttpRoutes-MrMxIY66.mjs} +1 -1
- package/dist/packem_shared/discoverHyperdriveCalls-VVJGsgxj.mjs +1 -0
- package/dist/packem_shared/{discoverInserts-T5ojinqL.mjs → discoverInserts-Boh6WAYw.mjs} +1 -1
- package/dist/packem_shared/discoverMaskProcedures-D3Tu8Q8Y.mjs +1 -0
- package/dist/packem_shared/{discoverMigrations-ClgjUkaG.mjs → discoverMigrations-BMdGxHeq.mjs} +1 -1
- package/dist/packem_shared/{discoverNondeterministicCalls-UCUCyCox.mjs → discoverNondeterministicCalls-c9xenrIN.mjs} +1 -1
- package/dist/packem_shared/{discoverQueries-u2XNpxsn.mjs → discoverQueries-o_00HnBB.mjs} +1 -1
- package/dist/packem_shared/discoverR2sqlCalls-D_H1v-UD.mjs +1 -0
- package/dist/packem_shared/{discoverRlsMetadata-D2G3YAoe.mjs → discoverRlsMetadata-C7J8dgVz.mjs} +1 -1
- package/dist/packem_shared/{discoverRlsProcedures-BD8aG1BU.mjs → discoverRlsProcedures-Di3VEk-D.mjs} +1 -1
- package/dist/packem_shared/{discoverSandboxUsage-w6Q3RvxZ.mjs → discoverSandboxUsage-CrhZZJZS.mjs} +1 -1
- package/dist/packem_shared/{discoverSchema-BtsX-CN9.mjs → discoverSchema-Bdmw34_P.mjs} +1 -1
- package/dist/packem_shared/{discoverStorageRulesMetadata-C2ceH0ZO.mjs → discoverStorageRulesMetadata-BFCmbsIN.mjs} +1 -1
- package/dist/packem_shared/{exported-procedure-chains-CVzkVdq4.mjs → exported-procedure-chains-Bol_VtzO.mjs} +1 -1
- package/dist/packem_shared/{fingerprintSchemaSources-eVG9aVt0.mjs → fingerprintSchemaSources-BdFj8vPc.mjs} +1 -1
- package/dist/packem_shared/{handler-reference-vIeqkhV_.mjs → handler-reference-8w_VU4XY.mjs} +1 -1
- package/dist/packem_shared/{index-BPUxZYM5.mjs → index-BMMBKqsT.mjs} +1 -1
- package/dist/packem_shared/isTestPath-Cdv_LoVU.mjs +1 -0
- package/dist/packem_shared/{loadProjectConfig-NO0dVJSl.mjs → loadProjectConfig-B0uxUGF-.mjs} +1 -1
- package/dist/packem_shared/{modules-CjOcuQnK.mjs → modules-DDIIcM7P.mjs} +1 -1
- package/dist/packem_shared/{parse-validator-IDBKIT7M.mjs → parse-validator-BqDQLzDZ.mjs} +1 -1
- package/dist/packem_shared/project-config-file-CBY6llht.mjs +1 -0
- package/dist/packem_shared/{readServiceBindings-DvqIThzd.mjs → readServiceBindings-4xlUucKw.mjs} +1 -1
- package/dist/packem_shared/{unwrap-handler-return-CeaOifqX.mjs → unwrap-handler-return-Bfz7lH0C.mjs} +1 -1
- package/package.json +1 -1
- package/dist/packem_shared/PROJECT_CONFIG_FILENAMES-DzOu-lSc.mjs +0 -1
- package/dist/packem_shared/SCHEMA_SNAPSHOT_FILENAME-DdPW4JCi.mjs +0 -31
- package/dist/packem_shared/chain-ZlTHdRo2.mjs +0 -1
- package/dist/packem_shared/createCodegenProject-V51_yBw3.mjs +0 -1
- package/dist/packem_shared/discoverHyperdriveCalls-DfCAjBgd.mjs +0 -1
- package/dist/packem_shared/discoverMaskProcedures-DKd9fVDa.mjs +0 -1
- package/dist/packem_shared/discoverR2sqlCalls-jz5KouxF.mjs +0 -1
- package/dist/packem_shared/isTestPath-B81lOULB.mjs +0 -1
- package/dist/packem_shared/project-config-file-BV7RR-l6.mjs +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{existsSync as c}from"node:fs";import{dirname as r,join as F}from"node:path";import{Project as m}from"ts-morph";import{listLunoraSourceFiles as u}from"./isTestPath-B81lOULB.mjs";const a=e=>e.replaceAll("\\","/"),d=e=>{let o=c(e)?e:r(e);for(;o&&o!==r(o);){const i=F(o,"tsconfig.json");if(c(i))return i;o=r(o)}},p=e=>{const o=d(e);return o?new m({skipAddingFilesFromTsConfig:!1,tsConfigFilePath:o,useInMemoryFileSystem:!1}):new m({skipAddingFilesFromTsConfig:!0,useInMemoryFileSystem:!1})},x=(e,o)=>{const i=u(o),l=F(o,"schema.ts");c(l)&&i.push(l);for(const s of i){const t=e.getSourceFile(s);t===void 0?e.addSourceFileAtPath(s):t.refreshFromFileSystemSync()}const h=new Set(i.map(s=>a(s))),n=a(o),f=`${n}/`;for(const s of e.getSourceFiles()){const t=s.getFilePath();(t===n||t.startsWith(f))&&!h.has(t)&&e.removeSourceFile(s)}for(const s of e.getSourceFiles()){const t=s.getFilePath();if(!(t===n||t.startsWith(f)||t.includes("/node_modules/")))try{s.refreshFromFileSystemSync()}catch{e.removeSourceFile(s)}}};export{p as createCodegenProject,d as findTsconfig,x as refreshCodegenProject};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{d as o}from"./context-property-calls-Co_G3ENU.mjs";const t=(r,e)=>o(r,e,"sql");export{t as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import"./isTestPath-B81lOULB.mjs";import"./attribution-hVBriwzy.mjs";import"./database-calls-D-GwIhWO.mjs";import"./classify-procedure-call-Bw5sia-K.mjs";import{d as a}from"./index-BPUxZYM5.mjs";export{a as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{d as r}from"./context-property-calls-Co_G3ENU.mjs";const t=(s,o)=>r(s,o,"r2sql");export{t as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{existsSync as h,statSync as P,readdirSync as A,realpathSync as D,lstatSync as C}from"node:fs";import{dirname as f,join as g,relative as F,sep as w,resolve as k,extname as O,basename as j}from"node:path";import{findUpSync as z,FIND_UP_STOP as V,matcher as K}from"@visulima/fs";import{SyntaxKind as p,Node as i,VariableDeclarationKind as $}from"ts-morph";import{diagnosticAt as M}from"./CodegenDiagnosticError-BUXlG3P-.mjs";import{p as U,a as B,r as W}from"./project-config-file-BV7RR-l6.mjs";import{findProjectConfigFile as N}from"./PROJECT_CONFIG_FILENAMES-DzOu-lSc.mjs";const X=/\.ts$/u,d=(e,t)=>F(e,t).split(w).join("/").replace(X,""),G=new Set(["_generated","node_modules"]),_=new Set(["__fixtures__","__mocks__","__snapshots__","__tests__"]),L=/\.(?:bench|e2e|e2e-spec|spec|spec-d|test|test-d)(?:\.tsx?)?$/u,Se=e=>{const t=e.split("/");return L.test(t.at(-1)??"")||t.slice(0,-1).some(s=>_.has(s))},E=(e,t,s)=>t?G.has(e)||!s&&_.has(e):!s&&L.test(e),v=new Map,m=()=>!1,H=e=>{const t=z(a=>N(a)??(h(g(a,"package.json"))||h(g(a,".git"))?V:void 0),{cwd:f(k(e))}),s=t===void 0?void 0:P(t,{throwIfNoEntry:!1});if(t===void 0||s===void 0)return m;const n=`${String(s.mtimeMs)}:${String(s.size)}`,r=v.get(t);if(r?.key===n)return r.isExcluded;const{codegen:o}=W(f(t));o?.unreadable&&console.warn("@lunora/codegen: `codegen.exclude` in lunora.config is not an array of string literals without `!` negations — ignoring it.");const c=o?.exclude?.length?K(o.exclude):m;return v.set(t,{isExcluded:c,key:n}),c},Y=(e,t,s)=>e==="schema.ts"&&t===s,q=e=>{try{return P(e)}catch{console.warn(`@lunora/codegen: skipping ${e} — it is a symlink that does not resolve (or vanished mid-scan).`);return}},R=(e,t,s,n,r)=>{let o,c;try{o=A(e),c=D(e)}catch{return t}if(n.has(c))return t;n.add(c);for(const a of o){const u=g(e,a),l=q(u);l===void 0||r(a,F(s,u).split(w).join("/"),l.isDirectory())||(l.isDirectory()?R(u,t,s,n,r):l.isFile()&&O(a)===".ts"&&!Y(a,e,s)&&t.push(u))}return t},T=(e,t={})=>{const s=t.includeSkipped??!1,n=s?m:H(e);return R(e,[],e,new Set,(r,o,c)=>E(r,c,s)||n(o))},Q=["src/server","src/index.ts","src/worker.ts"],J=new Set([".ts",".tsx"]),b=(e,t=[])=>{let s;try{s=C(e)}catch{return t}if(s.isFile())return J.has(O(e))&&!E(j(e),!1,!1)&&t.push(e),t;if(!s.isDirectory())return t;for(const n of A(e))E(n,!0,!1)||b(g(e,n),t);return t},Z=e=>{const t=f(e),s=T(e).map(o=>({displayPath:d(e,o),filePath:o})),n=new Set(s.map(o=>o.filePath)),r=N(t);for(const o of[...Q.flatMap(c=>b(g(t,c))),...r===void 0?[]:[r]])n.has(o)||(n.add(o),s.push({displayPath:d(t,o),filePath:o}));return s},ee=e=>Array.isArray(e),I=(e,t,s,n)=>{const r=[];for(const{displayPath:o,filePath:c}of t){const a=e.getSourceFile(c)??e.addSourceFileAtPath(c);for(const u of a.getDescendantsOfKind(s)){const l=n(u,o);ee(l)?r.push(...l):l!==void 0&&r.push(l)}}return r},te=e=>T(e).map(t=>({displayPath:d(e,t),filePath:t})),se=(e,t,s,n)=>I(e,te(t),s,n),he=(e,t,s)=>se(e,t,p.CallExpression,s),ve=(e,t,s)=>I(e,Z(t),p.CallExpression,s),ye=e=>U(e.getPropertyNameNode()??e.getNameNode()),S=(e,t)=>e?.getProperties().find(s=>!i.isSpreadAssignment(s)&&B(s)===t),Pe=(e,t)=>{if(t){const o=e.getArguments()[0];return o&&(i.isArrowFunction(o)||i.isFunctionExpression(o))?o:void 0}const s=e.getArguments()[0];if(!s||!i.isObjectLiteralExpression(s))return;const n=S(s,"handler");if(!n||!i.isPropertyAssignment(n))return;const r=n.getInitializer();return r&&(i.isArrowFunction(r)||i.isFunctionExpression(r))?r:void 0},Ae=(e,t)=>{if(!e||!i.isObjectLiteralExpression(e))return;const s=S(e,t);return s&&i.isPropertyAssignment(s)?s.getInitializer():void 0},ie=e=>{const t=e?.getParent();return i.isVariableDeclaration(e)&&i.isVariableDeclarationList(t)&&t.getDeclarationKind()===$.Const},ne=e=>{let t=e,s=t.getParent();for(;s!==void 0&&(i.isParenthesizedExpression(s)||i.isAsExpression(s)||i.isSatisfiesExpression(s)||i.isTypeAssertion(s)||i.isNonNullExpression(s));)t=s,s=t.getParent();return t},y=e=>{const t=ne(e),s=t.getParent();if(s===void 0)return!1;if(i.isBinaryExpression(s)){const r=s.getOperatorToken().getKind();return s.getLeft()===t&&r>=p.FirstAssignment&&r<=p.LastAssignment}if(i.isPrefixUnaryExpression(s)||i.isPostfixUnaryExpression(s)){const r=s.getOperatorToken();return r===p.PlusPlusToken||r===p.MinusMinusToken}return i.isDeleteExpression(s)?!0:i.isForOfStatement(s)||i.isForInStatement(s)?s.getInitializer()===t:i.isPropertyAssignment(s)?s.getInitializer()===t&&y(s):(i.isShorthandPropertyAssignment(s)||i.isSpreadAssignment(s)||i.isSpreadElement(s)||i.isObjectLiteralExpression(s)||i.isArrayLiteralExpression(s))&&y(s)},re=e=>{const t=e?.getDeclarations().find(n=>i.isVariableDeclaration(n));if(!ie(t))return;const s=t.getParent().getParent();return i.isVariableStatement(s)&&i.isSourceFile(s.getParent())?t.getInitializer():void 0},oe=e=>re(e.getSymbol()),Fe=e=>{if(!e)return;if(i.isObjectLiteralExpression(e))return e;if(!i.isIdentifier(e))return;const t=oe(e);return t!==void 0&&i.isObjectLiteralExpression(t)?t:void 0},x=e=>{let t=e;for(;t&&(i.isAsExpression(t)||i.isSatisfiesExpression(t)||i.isParenthesizedExpression(t)||i.isNonNullExpression(t));)t=t.getExpression();return t},ce=(e,t)=>{let s=x(e);for(;i.isAwaitExpression(s)||i.isPropertyAccessExpression(s)||i.isElementAccessExpression(s)||i.isCallExpression(s);){const n=i.isCallExpression(s)?t?.(s):void 0;if(n!==void 0)return{verdict:n};s=x(s.getExpression())}return{root:s}},we=e=>ce(e).root,Oe=e=>i.isArrowFunction(e)||i.isConstructorDeclaration(e)||i.isFunctionDeclaration(e)||i.isFunctionExpression(e)||i.isGetAccessorDeclaration(e)||i.isMethodDeclaration(e)||i.isSetAccessorDeclaration(e),Ne=(e,t)=>e?.compilerNode===t.compilerNode,_e=e=>{if(i.isPropertyAccessExpression(e))return{member:e.getName(),object:e.getExpression()};const t=i.isElementAccessExpression(e)?e.getArgumentExpression():void 0;return i.isElementAccessExpression(e)&&i.isStringLiteral(t)?{member:t.getLiteralValue(),object:e.getExpression()}:void 0},Le=e=>{const t=e.getParent();return i.isReturnStatement(t)||i.isArrowFunction(t)&&t.getBody()===e?e.getFirstAncestor(n=>i.isFunctionLikeDeclaration(n)||i.isArrowFunction(n)):void 0},Re=e=>{const t=x(e);return t&&i.isCallExpression(t)?t:void 0},Te=e=>{const t=e.getExportAssignment(r=>!r.isExportEquals());if(!t)return;const s=t.getExpression();if(!i.isIdentifier(s))return s;const n=s.getSymbol()?.getValueDeclaration();return n&&i.isVariableDeclaration(n)?n.getInitializer():s},be=e=>{const t=e.getArguments()[1];return t&&i.isStringLiteral(t)?t.getLiteralValue():""},Ie=(e,t)=>{if(!i.isObjectLiteralExpression(e))return;const s=S(e,t);if(!s||!i.isPropertyAssignment(s))return;const n=s.getInitializer();return n&&i.isStringLiteral(n)?n.getLiteralText():void 0},ae=e=>{const t=e.getStatements(),[s]=t;if(t.length!==1||s===void 0||!i.isReturnStatement(s))return;const n=s.getExpression();return n!==void 0&&i.isObjectLiteralExpression(n)?n:void 0},De=e=>{if(i.isObjectLiteralExpression(e))return e;if(i.isParenthesizedExpression(e)){const t=e.getExpression();return i.isObjectLiteralExpression(t)?t:void 0}return i.isBlock(e)?ae(e):void 0},Ce=e=>(t,s,n)=>{if(i.isStringLiteral(t)||i.isNoSubstitutionTemplateLiteral(t))return t.getLiteralValue();throw M(t,`${e} "${s}": \`${n}\` must be a static string literal — it is deploy configuration codegen writes into wrangler.jsonc`)},le=new Set(["api","internal"]),ke=new Set(["run","runAction","runMutation","runQuery"]),ue=e=>{if(e===void 0||!i.isPropertyAccessExpression(e))return;const t=[];let s=e;for(;i.isPropertyAccessExpression(s);)t.unshift(s.getName()),s=s.getExpression();return i.isIdentifier(s)&&le.has(s.getText())&&t.length>=2?t:void 0},je=e=>{const t=ue(e);return t===void 0?void 0:`${t.slice(0,-1).join("_")}:${String(t.at(-1))}`};export{ke as RUN_METHODS,X as TS_EXTENSION_RE,ye as bindingKeyName,we as chainRootOf,he as collectCallRows,se as collectNodeRows,ve as collectSecurityCallRows,Te as defaultExportExpression,S as findObjectProperty,je as functionKeyOf,ue as functionReferenceSegments,Pe as handlerOf,ie as isConstDeclaration,Oe as isFunctionLike,Ne as isSameNode,Se as isTestPath,y as isWriteTarget,be as limitNameOf,T as listLunoraSourceFiles,Z as listSecurityScanFiles,d as lunoraRelativePath,_e as memberAccessOf,De as objectLiteralFromCallbackBody,Fe as optionsObjectLiteral,ne as outermostValueWrapper,Ae as propertyInitializer,B as propertyKeyName,U as propertyNameText,Le as returningFunctionOf,Ce as stringPropertyFor,Ie as stringPropertyOf,re as symbolConstInitializer,x as unwrapExpression,Re as unwrapToCallExpression,ce as walkChain};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{statSync as x,readFileSync as y}from"node:fs";import{basename as E}from"node:path";import{createJiti as P}from"jiti";import{Node as i,Project as S}from"ts-morph";import{findProjectConfigFile as v}from"./PROJECT_CONFIG_FILENAMES-DzOu-lSc.mjs";const j=r=>{if(i.isStringLiteral(r)||i.isNoSubstitutionTemplateLiteral(r)||i.isNumericLiteral(r))return r.getLiteralText();if(i.isComputedPropertyName(r)){const t=r.getExpression();return i.isStringLiteral(t)||i.isNoSubstitutionTemplateLiteral(t)?t.getLiteralText():void 0}return r.getText()},A=r=>j(r)??r.getText(),d=r=>A(r.getNameNode()),f=new Map,$=async r=>{const t=v(r);if(t===void 0)return{};let e;try{const a=x(t);e=`${String(a.mtimeMs)}:${String(a.size)}`}catch{return{}}const n=f.get(t);if(n?.key===e)return n.value;const s=(async()=>{try{const o=(await P(t,{interopDefault:!1,moduleCache:!1}).import(t))?.default;return{config:o!==null&&typeof o=="object"?o:void 0}}catch(a){return{error:a instanceof Error?a.message:String(a)}}})();return f.set(t,{key:e,value:s}),s},h=r=>{let e=r.getExportAssignments().find(n=>!n.isExportEquals())?.getExpression();for(;e!==void 0&&(i.isSatisfiesExpression(e)||i.isAsExpression(e)||i.isParenthesizedExpression(e));)e=e.getExpression();if(e!==void 0&&i.isIdentifier(e))for(e=r.getVariableDeclaration(e.getText())?.getInitializer();e!==void 0&&(i.isSatisfiesExpression(e)||i.isAsExpression(e));)e=e.getExpression();return e!==void 0&&i.isObjectLiteralExpression(e)?e:void 0},g=(r,t)=>i.isPropertyAssignment(r)?r.getInitializer():t.getVariableDeclaration(d(r))?.getInitializer(),b=r=>{let t=r;for(;t!==void 0&&(i.isSatisfiesExpression(t)||i.isAsExpression(t)||i.isParenthesizedExpression(t));)t=t.getExpression();return t},p=(r,t,e)=>{const n=b(r);if(n===void 0||!i.isObjectLiteralExpression(n))return{unreadable:!0};const s=n.getProperties(),a=s.filter(u=>i.isPropertyAssignment(u)&&!i.isComputedPropertyName(u.getNameNode())||i.isShorthandPropertyAssignment(u));if(a.length!==s.length)return{unreadable:!0};const o=a.find(u=>d(u)===e);if(o===void 0)return{absent:!0};const l=g(o,t);return l===void 0?{unreadable:!0}:{literal:l}},O=["exportName","file","reason","rule"],N=r=>{const t=b(r);if(t===void 0||!i.isObjectLiteralExpression(t))return;const e={};for(const l of t.getProperties()){if(!i.isPropertyAssignment(l)||i.isComputedPropertyName(l.getNameNode()))return;const u=d(l),c=b(l.getInitializer());if(!O.includes(u)||c===void 0||!i.isStringLiteral(c)&&!i.isNoSubstitutionTemplateLiteral(c))return;e[u]=c.getLiteralValue()}const{exportName:n,file:s,reason:a,rule:o}=e;return n?.trim()&&s?.trim()&&a?.trim()&&o?.trim()?{exportName:n,file:s,reason:a,rule:o}:void 0},T=(r,t)=>{const e=p(r,t,"accept");if("absent"in e)return{};const n="literal"in e?b(e.literal):void 0;if(n===void 0||!i.isArrayLiteralExpression(n))return{acceptUnreadable:!0};const s=[];for(const a of n.getElements()){const o=N(a);if(o===void 0)return{acceptUnreadable:!0};s.push(o)}return{accept:s}},C=(r,t)=>{const e=p(r,t,"minSeverity"),n=T(r,t);return"absent"in e?{advisor:n}:"literal"in e&&i.isStringLiteral(e.literal)?{advisor:{...n,minSeverity:e.literal.getLiteralValue()}}:{advisor:{...n,unreadable:!0}}},z=(r,t)=>{const e=p(r,t,"exclude");if("absent"in e)return{codegen:{}};if(!("literal"in e)||!i.isArrayLiteralExpression(e.literal))return{codegen:{unreadable:!0}};const n=[];for(const s of e.literal.getElements()){if(!i.isStringLiteral(s)&&!i.isNoSubstitutionTemplateLiteral(s)||s.getLiteralValue().startsWith("!"))return{codegen:{unreadable:!0}};n.push(s.getLiteralValue())}return{codegen:{exclude:n}}},w=(r,t)=>{const e=p(r,t,"merge");return"absent"in e?{durableObjects:{}}:"literal"in e&&(i.isTrueLiteral(e.literal)||i.isFalseLiteral(e.literal))?{durableObjects:{merge:e.literal.getLiteralValue()}}:{durableObjects:{unreadable:!0}}},D=new Map([["advisor",{advisor:{unreadable:!0}}],["codegen",{codegen:{unreadable:!0}}],["durableObjects",{durableObjects:{unreadable:!0}}],["remote",{unreadable:!0}],["target",{unreadable:!0}]]),L=(r,t)=>{const e=r.getProperty(t);if(e!==void 0)return(i.isPropertyAssignment(e)?e.getInitializer():void 0)??"unreadable"},m=(r,t)=>{const e=L(r,t);if(e!==void 0)return e!=="unreadable"&&(i.isStringLiteral(e)||i.isNoSubstitutionTemplateLiteral(e))?e.getLiteralValue():!1},V=r=>{const t=L(r,"rpc");if(t!==void 0)return t!=="unreadable"&&i.isFalseLiteral(t)?!1:"unreadable"},I=r=>{const t=b(r);if(t===void 0||!i.isObjectLiteralExpression(t))return{services:{unreadable:!0}};const e={};for(const n of t.getProperties()){if(!i.isPropertyAssignment(n)||i.isComputedPropertyName(n.getNameNode()))return{services:{unreadable:!0}};const s=b(n.getInitializer());if(s===void 0||!i.isObjectLiteralExpression(s)||s.getProperties().some(u=>!i.isPropertyAssignment(u)))return{services:{unreadable:!0}};const a=m(s,"dir"),o=m(s,"entrypoint"),l=V(s);if(typeof a!="string"||o===!1||l==="unreadable")return{services:{unreadable:!0}};e[d(n)]={dir:a,...o===void 0?{}:{entrypoint:o},...l===void 0?{}:{rpc:l}}}return{services:{declared:e}}},M=(r,t)=>{if(i.isGetAccessorDeclaration(r)||i.isMethodDeclaration(r))return D.get(d(r))??{};if(!i.isPropertyAssignment(r)&&!i.isShorthandPropertyAssignment(r))return{};const e=d(r);if(e==="advisor")return C(g(r,t),t);if(e==="services")return I(g(r,t));if(e==="codegen")return z(g(r,t),t);if(e==="durableObjects")return w(g(r,t),t);if(e!=="target"&&e!=="remote")return{};const n=g(r,t);return n===void 0?{unreadable:!0}:e==="target"?i.isStringLiteral(n)?{target:n.getLiteralValue()}:{unreadable:!0}:i.isTrueLiteral(n)||i.isFalseLiteral(n)?{remote:n.getLiteralValue()}:i.isObjectLiteralExpression(n)?{remote:!0}:{unreadable:!0}},k=r=>{const t=v(r);if(t===void 0)return{};let e;try{e=y(t,"utf8")}catch{return{unreadable:!0}}const s=new S({compilerOptions:{allowJs:!0},skipFileDependencyResolution:!0,skipLoadingLibFiles:!0,useInMemoryFileSystem:!0}).createSourceFile(E(t),e,{overwrite:!0}),a=h(s);if(a===void 0)return{unreadable:!0};if(a.getProperties().some(l=>i.isSpreadAssignment(l))){const l=u=>a.getProperties().some(c=>!i.isSpreadAssignment(c)&&d(c)===u);return{...l("advisor")?{advisor:{unreadable:!0}}:{},...l("codegen")?{codegen:{unreadable:!0}}:{},...l("durableObjects")?{durableObjects:{unreadable:!0}}:{},...l("services")?{services:{unreadable:!0}}:{},unreadable:!0}}let o={};for(const l of a.getProperties())o={...o,...M(l,s)};return o},q=r=>{const{durableObjects:t}=k(r);return t?.unreadable&&console.warn("@lunora/codegen: `durableObjects.merge` in lunora.config is not a boolean literal — the Durable Object classes stay separate."),t?.merge===!0};export{d as a,q as b,$ as l,A as p,k as r,j as s};
|