@soda-gql/plugin-common 0.1.0 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -36,7 +36,7 @@ type TypeScriptGqlCall = GqlCall<ts.CallExpression>;
36
36
  ```
37
37
 
38
38
  Available variants:
39
- - `GqlCallModel<TCallNode>` - Model definitions
39
+ - `GqlCallFragment<TCallNode>` - Fragment definitions
40
40
  - `GqlCallSlice<TCallNode>` - Query/mutation/subscription slices
41
41
  - `GqlCallOperation<TCallNode>` - Composed operations
42
42
  - `GqlCallInlineOperation<TCallNode>` - Inline operations
@@ -205,7 +205,7 @@ function transformNode(node, metadata, artifact) {
205
205
  }
206
206
 
207
207
  const gqlCall = gqlCallResult.value;
208
- // Transform based on gqlCall.type: "model" | "slice" | "operation" | "inlineOperation"
208
+ // Transform based on gqlCall.type: "fragment" | "slice" | "operation" | "inlineOperation"
209
209
  }
210
210
  ```
211
211
 
@@ -268,7 +268,7 @@ This package is written in TypeScript and provides complete type definitions:
268
268
  ```typescript
269
269
  import type {
270
270
  GqlCall,
271
- GqlCallModel,
271
+ GqlCallFragment,
272
272
  GqlDefinitionMetadata,
273
273
  PluginError,
274
274
  PluginOptions,
package/dist/index.cjs CHANGED
@@ -89,7 +89,9 @@ const getSharedState = (key) => {
89
89
  pluginSession: null,
90
90
  currentArtifact: null,
91
91
  moduleAdjacency: /* @__PURE__ */ new Map(),
92
- generation: 0
92
+ generation: 0,
93
+ swcTransformer: null,
94
+ transformerType: null
93
95
  };
94
96
  sharedStates.set(key, state);
95
97
  }
@@ -128,6 +130,30 @@ const setSharedPluginSession = (key, session) => {
128
130
  const getStateKey = (configPath) => {
129
131
  return configPath ?? process.cwd();
130
132
  };
133
+ /**
134
+ * Set shared SWC transformer.
135
+ */
136
+ const setSharedSwcTransformer = (key, transformer) => {
137
+ getSharedState(key).swcTransformer = transformer;
138
+ };
139
+ /**
140
+ * Get shared SWC transformer.
141
+ */
142
+ const getSharedSwcTransformer = (key) => {
143
+ return getSharedState(key).swcTransformer;
144
+ };
145
+ /**
146
+ * Set shared transformer type.
147
+ */
148
+ const setSharedTransformerType = (key, transformerType) => {
149
+ getSharedState(key).transformerType = transformerType;
150
+ };
151
+ /**
152
+ * Get shared transformer type.
153
+ */
154
+ const getSharedTransformerType = (key) => {
155
+ return getSharedState(key).transformerType;
156
+ };
131
157
 
132
158
  //#endregion
133
159
  //#region packages/plugin-common/src/utils/canonical-id.ts
@@ -137,7 +163,7 @@ const getStateKey = (configPath) => {
137
163
  /**
138
164
  * Resolve a canonical ID from a filename and AST path.
139
165
  */
140
- const resolveCanonicalId = (filename, astPath) => (0, __soda_gql_builder.createCanonicalId)((0, node_path.resolve)(filename), astPath);
166
+ const resolveCanonicalId = (filename, astPath) => (0, __soda_gql_common.createCanonicalId)((0, node_path.resolve)(filename), astPath);
141
167
 
142
168
  //#endregion
143
169
  exports.assertUnreachable = assertUnreachable;
@@ -146,8 +172,13 @@ exports.formatPluginError = formatPluginError;
146
172
  exports.getSharedArtifact = getSharedArtifact;
147
173
  exports.getSharedPluginSession = getSharedPluginSession;
148
174
  exports.getSharedState = getSharedState;
175
+ exports.getSharedSwcTransformer = getSharedSwcTransformer;
176
+ exports.getSharedTransformerType = getSharedTransformerType;
149
177
  exports.getStateKey = getStateKey;
150
178
  exports.isPluginError = isPluginError;
151
179
  exports.resolveCanonicalId = resolveCanonicalId;
152
180
  exports.setSharedArtifact = setSharedArtifact;
153
- exports.setSharedPluginSession = setSharedPluginSession;
181
+ exports.setSharedPluginSession = setSharedPluginSession;
182
+ exports.setSharedSwcTransformer = setSharedSwcTransformer;
183
+ exports.setSharedTransformerType = setSharedTransformerType;
184
+ //# sourceMappingURL=index.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.cjs","names":[],"sources":["../src/errors.ts","../src/plugin-session.ts","../src/shared-state.ts","../src/utils/canonical-id.ts"],"sourcesContent":["/**\n * Error types and formatters for plugin-babel.\n * Simplified from plugin-shared to include only types actually used by the Babel transformer.\n */\n\nimport type { BuilderError } from \"@soda-gql/builder\";\nimport type { CanonicalId } from \"@soda-gql/common\";\n\ntype OptionsInvalidBuilderConfig = { readonly code: \"INVALID_BUILDER_CONFIG\"; readonly message: string };\ntype OptionsMissingBuilderConfig = { readonly code: \"MISSING_BUILDER_CONFIG\"; readonly message: string };\ntype OptionsConfigLoadFailed = { readonly code: \"CONFIG_LOAD_FAILED\"; readonly message: string };\n\ntype BuilderEntryNotFound = Extract<BuilderError, { code: \"ENTRY_NOT_FOUND\" }>;\ntype BuilderDocDuplicate = Extract<BuilderError, { code: \"DOC_DUPLICATE\" }>;\ntype BuilderCircularDependency = Extract<BuilderError, { code: \"GRAPH_CIRCULAR_DEPENDENCY\" }>;\ntype BuilderModuleEvaluationFailed = Extract<BuilderError, { code: \"RUNTIME_MODULE_LOAD_FAILED\" }>;\ntype BuilderWriteFailed = Extract<BuilderError, { code: \"WRITE_FAILED\" }>;\n\ntype AnalysisMetadataMissingCause = { readonly filename: string };\ntype AnalysisArtifactMissingCause = { readonly filename: string; readonly canonicalId: CanonicalId };\ntype AnalysisUnsupportedArtifactTypeCause = {\n readonly filename: string;\n readonly canonicalId: CanonicalId;\n readonly artifactType: string;\n};\n\ntype PluginErrorBase<Code extends string, Cause> = {\n readonly type: \"PluginError\";\n readonly code: Code;\n readonly message: string;\n readonly cause: Cause;\n};\n\nexport type PluginOptionsInvalidBuilderConfigError = PluginErrorBase<\n \"OPTIONS_INVALID_BUILDER_CONFIG\",\n OptionsInvalidBuilderConfig | OptionsMissingBuilderConfig | OptionsConfigLoadFailed\n> & { readonly stage: \"normalize-options\" };\n\nexport type PluginBuilderEntryNotFoundError = PluginErrorBase<\"SODA_GQL_BUILDER_ENTRY_NOT_FOUND\", BuilderEntryNotFound> & {\n readonly stage: \"builder\";\n readonly entry: string;\n};\n\nexport type PluginBuilderDocDuplicateError = PluginErrorBase<\"SODA_GQL_BUILDER_DOC_DUPLICATE\", BuilderDocDuplicate> & {\n readonly stage: \"builder\";\n readonly name: string;\n readonly sources: readonly string[];\n};\n\nexport type PluginBuilderCircularDependencyError = PluginErrorBase<\n \"SODA_GQL_BUILDER_CIRCULAR_DEPENDENCY\",\n BuilderCircularDependency\n> & { readonly stage: \"builder\"; readonly chain: readonly string[] };\n\nexport type PluginBuilderModuleEvaluationFailedError = PluginErrorBase<\n \"SODA_GQL_BUILDER_MODULE_EVALUATION_FAILED\",\n BuilderModuleEvaluationFailed\n> & { readonly stage: \"builder\"; readonly filePath: string; readonly astPath: string };\n\nexport type PluginBuilderWriteFailedError = PluginErrorBase<\"SODA_GQL_BUILDER_WRITE_FAILED\", BuilderWriteFailed> & {\n readonly stage: \"builder\";\n readonly outPath: string;\n};\n\nexport type PluginBuilderUnexpectedError = PluginErrorBase<\"SODA_GQL_BUILDER_UNEXPECTED\", unknown> & {\n readonly stage: \"builder\";\n};\n\nexport type PluginAnalysisMetadataMissingError = PluginErrorBase<\"SODA_GQL_METADATA_NOT_FOUND\", AnalysisMetadataMissingCause> & {\n readonly stage: \"analysis\";\n readonly filename: string;\n};\n\nexport type PluginAnalysisArtifactMissingError = PluginErrorBase<\n \"SODA_GQL_ANALYSIS_ARTIFACT_NOT_FOUND\",\n AnalysisArtifactMissingCause\n> & { readonly stage: \"analysis\"; readonly filename: string; readonly canonicalId: CanonicalId };\n\nexport type PluginAnalysisUnsupportedArtifactTypeError = PluginErrorBase<\n \"SODA_GQL_UNSUPPORTED_ARTIFACT_TYPE\",\n AnalysisUnsupportedArtifactTypeCause\n> & {\n readonly stage: \"analysis\";\n readonly filename: string;\n readonly canonicalId: CanonicalId;\n readonly artifactType: string;\n};\n\ntype TransformMissingBuilderArgCause = { readonly filename: string; readonly builderType: string; readonly argName: string };\ntype TransformUnsupportedValueTypeCause = { readonly valueType: string };\ntype TransformAstVisitorFailedCause = { readonly filename: string; readonly reason: string };\n\nexport type PluginTransformMissingBuilderArgError = PluginErrorBase<\n \"SODA_GQL_TRANSFORM_MISSING_BUILDER_ARG\",\n TransformMissingBuilderArgCause\n> & {\n readonly stage: \"transform\";\n readonly filename: string;\n readonly builderType: string;\n readonly argName: string;\n};\n\nexport type PluginTransformUnsupportedValueTypeError = PluginErrorBase<\n \"SODA_GQL_TRANSFORM_UNSUPPORTED_VALUE_TYPE\",\n TransformUnsupportedValueTypeCause\n> & { readonly stage: \"transform\"; readonly valueType: string };\n\nexport type PluginTransformAstVisitorFailedError = PluginErrorBase<\n \"SODA_GQL_TRANSFORM_AST_VISITOR_FAILED\",\n TransformAstVisitorFailedCause\n> & { readonly stage: \"transform\"; readonly filename: string; readonly reason: string };\n\n/**\n * Union of all plugin error types.\n */\nexport type PluginError =\n | PluginOptionsInvalidBuilderConfigError\n | PluginBuilderEntryNotFoundError\n | PluginBuilderDocDuplicateError\n | PluginBuilderCircularDependencyError\n | PluginBuilderModuleEvaluationFailedError\n | PluginBuilderWriteFailedError\n | PluginBuilderUnexpectedError\n | PluginAnalysisMetadataMissingError\n | PluginAnalysisArtifactMissingError\n | PluginAnalysisUnsupportedArtifactTypeError\n | PluginTransformMissingBuilderArgError\n | PluginTransformUnsupportedValueTypeError\n | PluginTransformAstVisitorFailedError;\n\n/**\n * Format a PluginError into a human-readable message.\n */\nexport const formatPluginError = (error: PluginError): string => {\n const codePrefix = `[${error.code}]`;\n const stageInfo = \"stage\" in error ? ` (${error.stage})` : \"\";\n return `${codePrefix}${stageInfo} ${error.message}`;\n};\n\n/**\n * Type guard for PluginError.\n */\nexport const isPluginError = (value: unknown): value is PluginError => {\n return (\n typeof value === \"object\" &&\n value !== null &&\n \"type\" in value &&\n value.type === \"PluginError\" &&\n \"code\" in value &&\n \"message\" in value\n );\n};\n\n/**\n * Assertion helper for unreachable code paths.\n * This is the ONLY acceptable throw in plugin code.\n */\nexport const assertUnreachable = (value: never, context?: string): never => {\n throw new Error(`[INTERNAL] Unreachable code path${context ? ` in ${context}` : \"\"}: received ${JSON.stringify(value)}`);\n};\n","/**\n * Plugin session management for all plugins.\n * Unified from plugin-babel and plugin-swc implementations.\n */\n\nimport type { BuilderArtifact } from \"@soda-gql/builder\";\nimport { createBuilderService } from \"@soda-gql/builder\";\nimport { cachedFn } from \"@soda-gql/common\";\nimport { loadConfig, type ResolvedSodaGqlConfig } from \"@soda-gql/config\";\n\n/**\n * Plugin options shared across all plugins.\n */\nexport type PluginOptions = {\n readonly configPath?: string;\n readonly enabled?: boolean;\n};\n\n/**\n * Plugin session containing builder service and configuration.\n */\nexport type PluginSession = {\n readonly config: ResolvedSodaGqlConfig;\n readonly getArtifact: () => BuilderArtifact | null;\n readonly getArtifactAsync: () => Promise<BuilderArtifact | null>;\n};\n\n/**\n * Create plugin session by loading config and creating cached builder service.\n * Returns null if disabled or config load fails.\n */\nexport const createPluginSession = (options: PluginOptions, pluginName: string): PluginSession | null => {\n const enabled = options.enabled ?? true;\n if (!enabled) {\n return null;\n }\n\n const configResult = loadConfig(options.configPath);\n if (configResult.isErr()) {\n console.error(`[${pluginName}] Failed to load config:`, {\n code: configResult.error.code,\n message: configResult.error.message,\n filePath: configResult.error.filePath,\n cause: configResult.error.cause,\n });\n return null;\n }\n\n const config = configResult.value;\n const ensureBuilderService = cachedFn(() => createBuilderService({ config }));\n\n /**\n * Build artifact on every invocation (like tsc-plugin).\n * If artifact.useBuilder is false and artifact.path is provided, load from file instead.\n * This ensures the artifact is always up-to-date with the latest source files.\n */\n const getArtifact = (): BuilderArtifact | null => {\n const builderService = ensureBuilderService();\n const buildResult = builderService.build();\n if (buildResult.isErr()) {\n console.error(`[${pluginName}] Failed to build artifact: ${buildResult.error.message}`);\n return null;\n }\n return buildResult.value;\n };\n\n /**\n * Async version of getArtifact.\n * Supports async metadata factories and parallel element evaluation.\n */\n const getArtifactAsync = async (): Promise<BuilderArtifact | null> => {\n const builderService = ensureBuilderService();\n const buildResult = await builderService.buildAsync();\n if (buildResult.isErr()) {\n console.error(`[${pluginName}] Failed to build artifact: ${buildResult.error.message}`);\n return null;\n }\n return buildResult.value;\n };\n\n return {\n config,\n getArtifact,\n getArtifactAsync,\n };\n};\n","import type { BuilderArtifact } from \"@soda-gql/builder\";\nimport type { PluginSession } from \"./plugin-session\";\n\n/**\n * Transformer type for code transformation.\n * - 'babel': Use Babel plugin (default, wider compatibility)\n * - 'swc': Use SWC transformer (faster, requires @soda-gql/swc-transformer)\n */\nexport type TransformerType = \"babel\" | \"swc\";\n\n/**\n * Minimal interface for SWC transformer.\n * Matches the Transformer interface from @soda-gql/swc-transformer.\n */\nexport interface SwcTransformerInterface {\n transform(input: { sourceCode: string; sourcePath: string; inputSourceMap?: string }): {\n transformed: boolean;\n sourceCode: string;\n sourceMap?: string;\n };\n}\n\n/**\n * Shared state between bundler plugins and loaders.\n * Enables efficient artifact sharing across build pipeline stages.\n */\nexport type SharedState = {\n pluginSession: PluginSession | null;\n currentArtifact: BuilderArtifact | null;\n moduleAdjacency: Map<string, Set<string>>;\n generation: number;\n swcTransformer: SwcTransformerInterface | null;\n transformerType: TransformerType | null;\n};\n\n// Global state for sharing between plugin and loader\nconst sharedStates = new Map<string, SharedState>();\n\n/**\n * Get shared state for a given project (identified by config path or cwd).\n */\nexport const getSharedState = (key: string): SharedState => {\n let state = sharedStates.get(key);\n if (!state) {\n state = {\n pluginSession: null,\n currentArtifact: null,\n moduleAdjacency: new Map(),\n generation: 0,\n swcTransformer: null,\n transformerType: null,\n };\n sharedStates.set(key, state);\n }\n return state;\n};\n\n/**\n * Update shared artifact.\n */\nexport const setSharedArtifact = (\n key: string,\n artifact: BuilderArtifact | null,\n moduleAdjacency?: Map<string, Set<string>>,\n): void => {\n const state = getSharedState(key);\n state.currentArtifact = artifact;\n if (moduleAdjacency) {\n state.moduleAdjacency = moduleAdjacency;\n }\n state.generation++;\n};\n\n/**\n * Get shared artifact.\n */\nexport const getSharedArtifact = (key: string): BuilderArtifact | null => {\n return getSharedState(key).currentArtifact;\n};\n\n/**\n * Get shared plugin session.\n */\nexport const getSharedPluginSession = (key: string): PluginSession | null => {\n return getSharedState(key).pluginSession;\n};\n\n/**\n * Set shared plugin session.\n */\nexport const setSharedPluginSession = (key: string, session: PluginSession | null): void => {\n getSharedState(key).pluginSession = session;\n};\n\n/**\n * Get the state key from config path or cwd.\n */\nexport const getStateKey = (configPath?: string): string => {\n return configPath ?? process.cwd();\n};\n\n/**\n * Set shared SWC transformer.\n */\nexport const setSharedSwcTransformer = (key: string, transformer: SwcTransformerInterface | null): void => {\n getSharedState(key).swcTransformer = transformer;\n};\n\n/**\n * Get shared SWC transformer.\n */\nexport const getSharedSwcTransformer = (key: string): SwcTransformerInterface | null => {\n return getSharedState(key).swcTransformer;\n};\n\n/**\n * Set shared transformer type.\n */\nexport const setSharedTransformerType = (key: string, transformerType: TransformerType | null): void => {\n getSharedState(key).transformerType = transformerType;\n};\n\n/**\n * Get shared transformer type.\n */\nexport const getSharedTransformerType = (key: string): TransformerType | null => {\n return getSharedState(key).transformerType;\n};\n","/**\n * Utility for working with canonical IDs.\n */\n\nimport { resolve } from \"node:path\";\nimport { type CanonicalId, createCanonicalId } from \"@soda-gql/common\";\n\n/**\n * Resolve a canonical ID from a filename and AST path.\n */\nexport const resolveCanonicalId = (filename: string, astPath: string): CanonicalId =>\n createCanonicalId(resolve(filename), astPath);\n"],"mappings":";;;;;;;;;AAqIA,MAAa,qBAAqB,UAA+B;AAG/D,QAAO,GAFY,IAAI,MAAM,KAAK,KAChB,WAAW,QAAQ,KAAK,MAAM,MAAM,KAAK,GAC1B,GAAG,MAAM;;;;;AAM5C,MAAa,iBAAiB,UAAyC;AACrE,QACE,OAAO,UAAU,YACjB,UAAU,QACV,UAAU,SACV,MAAM,SAAS,iBACf,UAAU,SACV,aAAa;;;;;;AAQjB,MAAa,qBAAqB,OAAc,YAA4B;AAC1E,OAAM,IAAI,MAAM,mCAAmC,UAAU,OAAO,YAAY,GAAG,aAAa,KAAK,UAAU,MAAM,GAAG;;;;;;;;;AC/H1H,MAAa,uBAAuB,SAAwB,eAA6C;AAEvG,KAAI,EADY,QAAQ,WAAW,MAEjC,QAAO;CAGT,MAAM,iDAA0B,QAAQ,WAAW;AACnD,KAAI,aAAa,OAAO,EAAE;AACxB,UAAQ,MAAM,IAAI,WAAW,2BAA2B;GACtD,MAAM,aAAa,MAAM;GACzB,SAAS,aAAa,MAAM;GAC5B,UAAU,aAAa,MAAM;GAC7B,OAAO,aAAa,MAAM;GAC3B,CAAC;AACF,SAAO;;CAGT,MAAM,SAAS,aAAa;CAC5B,MAAM,0GAA2D,EAAE,QAAQ,CAAC,CAAC;;;;;;CAO7E,MAAM,oBAA4C;EAEhD,MAAM,cADiB,sBAAsB,CACV,OAAO;AAC1C,MAAI,YAAY,OAAO,EAAE;AACvB,WAAQ,MAAM,IAAI,WAAW,8BAA8B,YAAY,MAAM,UAAU;AACvF,UAAO;;AAET,SAAO,YAAY;;;;;;CAOrB,MAAM,mBAAmB,YAA6C;EAEpE,MAAM,cAAc,MADG,sBAAsB,CACJ,YAAY;AACrD,MAAI,YAAY,OAAO,EAAE;AACvB,WAAQ,MAAM,IAAI,WAAW,8BAA8B,YAAY,MAAM,UAAU;AACvF,UAAO;;AAET,SAAO,YAAY;;AAGrB,QAAO;EACL;EACA;EACA;EACD;;;;;AChDH,MAAM,+BAAe,IAAI,KAA0B;;;;AAKnD,MAAa,kBAAkB,QAA6B;CAC1D,IAAI,QAAQ,aAAa,IAAI,IAAI;AACjC,KAAI,CAAC,OAAO;AACV,UAAQ;GACN,eAAe;GACf,iBAAiB;GACjB,iCAAiB,IAAI,KAAK;GAC1B,YAAY;GACZ,gBAAgB;GAChB,iBAAiB;GAClB;AACD,eAAa,IAAI,KAAK,MAAM;;AAE9B,QAAO;;;;;AAMT,MAAa,qBACX,KACA,UACA,oBACS;CACT,MAAM,QAAQ,eAAe,IAAI;AACjC,OAAM,kBAAkB;AACxB,KAAI,gBACF,OAAM,kBAAkB;AAE1B,OAAM;;;;;AAMR,MAAa,qBAAqB,QAAwC;AACxE,QAAO,eAAe,IAAI,CAAC;;;;;AAM7B,MAAa,0BAA0B,QAAsC;AAC3E,QAAO,eAAe,IAAI,CAAC;;;;;AAM7B,MAAa,0BAA0B,KAAa,YAAwC;AAC1F,gBAAe,IAAI,CAAC,gBAAgB;;;;;AAMtC,MAAa,eAAe,eAAgC;AAC1D,QAAO,cAAc,QAAQ,KAAK;;;;;AAMpC,MAAa,2BAA2B,KAAa,gBAAsD;AACzG,gBAAe,IAAI,CAAC,iBAAiB;;;;;AAMvC,MAAa,2BAA2B,QAAgD;AACtF,QAAO,eAAe,IAAI,CAAC;;;;;AAM7B,MAAa,4BAA4B,KAAa,oBAAkD;AACtG,gBAAe,IAAI,CAAC,kBAAkB;;;;;AAMxC,MAAa,4BAA4B,QAAwC;AAC/E,QAAO,eAAe,IAAI,CAAC;;;;;;;;;;;ACpH7B,MAAa,sBAAsB,UAAkB,4EACzB,SAAS,EAAE,QAAQ"}
package/dist/index.d.cts CHANGED
@@ -1,4 +1,5 @@
1
- import { BuilderArtifact, BuilderArtifactInlineOperation, BuilderArtifactModel, BuilderArtifactOperation, BuilderArtifactSlice, BuilderError, CanonicalId } from "@soda-gql/builder";
1
+ import { BuilderArtifact, BuilderArtifactFragment, BuilderArtifactOperation, BuilderError } from "@soda-gql/builder";
2
+ import { CanonicalId } from "@soda-gql/common";
2
3
  import { ResolvedSodaGqlConfig } from "@soda-gql/config";
3
4
 
4
5
  //#region packages/plugin-common/src/errors.d.ts
@@ -159,6 +160,27 @@ type PluginSession = {
159
160
  declare const createPluginSession: (options: PluginOptions, pluginName: string) => PluginSession | null;
160
161
  //#endregion
161
162
  //#region packages/plugin-common/src/shared-state.d.ts
163
+ /**
164
+ * Transformer type for code transformation.
165
+ * - 'babel': Use Babel plugin (default, wider compatibility)
166
+ * - 'swc': Use SWC transformer (faster, requires @soda-gql/swc-transformer)
167
+ */
168
+ type TransformerType = "babel" | "swc";
169
+ /**
170
+ * Minimal interface for SWC transformer.
171
+ * Matches the Transformer interface from @soda-gql/swc-transformer.
172
+ */
173
+ interface SwcTransformerInterface {
174
+ transform(input: {
175
+ sourceCode: string;
176
+ sourcePath: string;
177
+ inputSourceMap?: string;
178
+ }): {
179
+ transformed: boolean;
180
+ sourceCode: string;
181
+ sourceMap?: string;
182
+ };
183
+ }
162
184
  /**
163
185
  * Shared state between bundler plugins and loaders.
164
186
  * Enables efficient artifact sharing across build pipeline stages.
@@ -168,6 +190,8 @@ type SharedState = {
168
190
  currentArtifact: BuilderArtifact | null;
169
191
  moduleAdjacency: Map<string, Set<string>>;
170
192
  generation: number;
193
+ swcTransformer: SwcTransformerInterface | null;
194
+ transformerType: TransformerType | null;
171
195
  };
172
196
  /**
173
197
  * Get shared state for a given project (identified by config path or cwd).
@@ -193,49 +217,48 @@ declare const setSharedPluginSession: (key: string, session: PluginSession | nul
193
217
  * Get the state key from config path or cwd.
194
218
  */
195
219
  declare const getStateKey: (configPath?: string) => string;
220
+ /**
221
+ * Set shared SWC transformer.
222
+ */
223
+ declare const setSharedSwcTransformer: (key: string, transformer: SwcTransformerInterface | null) => void;
224
+ /**
225
+ * Get shared SWC transformer.
226
+ */
227
+ declare const getSharedSwcTransformer: (key: string) => SwcTransformerInterface | null;
228
+ /**
229
+ * Set shared transformer type.
230
+ */
231
+ declare const setSharedTransformerType: (key: string, transformerType: TransformerType | null) => void;
232
+ /**
233
+ * Get shared transformer type.
234
+ */
235
+ declare const getSharedTransformerType: (key: string) => TransformerType | null;
196
236
  //#endregion
197
237
  //#region packages/plugin-common/src/types/gql-call.d.ts
198
238
  /**
199
239
  * Base interface for all GraphQL call types.
200
- * TCallNode represents the AST node type (e.g., t.CallExpression for Babel, ts.CallExpression for TypeScript).
201
240
  */
202
- interface GqlCallBase<TCallNode> {
241
+ interface GqlCallBase {
203
242
  readonly canonicalId: CanonicalId;
204
- readonly builderCall: TCallNode;
205
243
  }
206
244
  /**
207
- * GraphQL model call.
245
+ * GraphQL fragment call.
208
246
  */
209
- interface GqlCallModel<TCallNode> extends GqlCallBase<TCallNode> {
210
- readonly type: "model";
211
- readonly artifact: BuilderArtifactModel;
247
+ interface GqlCallFragment extends GqlCallBase {
248
+ readonly type: "fragment";
249
+ readonly artifact: BuilderArtifactFragment;
212
250
  }
213
251
  /**
214
- * GraphQL slice call.
252
+ * GraphQL operation call.
215
253
  */
216
- interface GqlCallSlice<TCallNode> extends GqlCallBase<TCallNode> {
217
- readonly type: "slice";
218
- readonly artifact: BuilderArtifactSlice;
219
- }
220
- /**
221
- * GraphQL composed operation call.
222
- * Unified naming: "operation" (was "composedOperation" in tsc-plugin).
223
- */
224
- interface GqlCallOperation<TCallNode> extends GqlCallBase<TCallNode> {
254
+ interface GqlCallOperation extends GqlCallBase {
225
255
  readonly type: "operation";
226
256
  readonly artifact: BuilderArtifactOperation;
227
257
  }
228
- /**
229
- * GraphQL inline operation call.
230
- */
231
- interface GqlCallInlineOperation<TCallNode> extends GqlCallBase<TCallNode> {
232
- readonly type: "inlineOperation";
233
- readonly artifact: BuilderArtifactInlineOperation;
234
- }
235
258
  /**
236
259
  * Union of all GraphQL call types.
237
260
  */
238
- type GqlCall<TCallNode> = GqlCallModel<TCallNode> | GqlCallSlice<TCallNode> | GqlCallOperation<TCallNode> | GqlCallInlineOperation<TCallNode>;
261
+ type GqlCall = GqlCallFragment | GqlCallOperation;
239
262
  //#endregion
240
263
  //#region packages/plugin-common/src/types/metadata.d.ts
241
264
  /**
@@ -257,5 +280,5 @@ type GqlDefinitionMetadata = {
257
280
  */
258
281
  declare const resolveCanonicalId: (filename: string, astPath: string) => CanonicalId;
259
282
  //#endregion
260
- export { type GqlCall, type GqlCallBase, type GqlCallInlineOperation, type GqlCallModel, type GqlCallOperation, type GqlCallSlice, type GqlDefinitionMetadata, PluginAnalysisArtifactMissingError, PluginAnalysisMetadataMissingError, PluginAnalysisUnsupportedArtifactTypeError, PluginBuilderCircularDependencyError, PluginBuilderDocDuplicateError, PluginBuilderEntryNotFoundError, PluginBuilderModuleEvaluationFailedError, PluginBuilderUnexpectedError, PluginBuilderWriteFailedError, PluginError, PluginOptions, PluginOptionsInvalidBuilderConfigError, PluginSession, PluginTransformAstVisitorFailedError, PluginTransformMissingBuilderArgError, PluginTransformUnsupportedValueTypeError, SharedState, assertUnreachable, createPluginSession, formatPluginError, getSharedArtifact, getSharedPluginSession, getSharedState, getStateKey, isPluginError, resolveCanonicalId, setSharedArtifact, setSharedPluginSession };
283
+ export { type GqlCall, type GqlCallBase, type GqlCallFragment, type GqlCallOperation, type GqlDefinitionMetadata, PluginAnalysisArtifactMissingError, PluginAnalysisMetadataMissingError, PluginAnalysisUnsupportedArtifactTypeError, PluginBuilderCircularDependencyError, PluginBuilderDocDuplicateError, PluginBuilderEntryNotFoundError, PluginBuilderModuleEvaluationFailedError, PluginBuilderUnexpectedError, PluginBuilderWriteFailedError, PluginError, PluginOptions, PluginOptionsInvalidBuilderConfigError, PluginSession, PluginTransformAstVisitorFailedError, PluginTransformMissingBuilderArgError, PluginTransformUnsupportedValueTypeError, SharedState, SwcTransformerInterface, TransformerType, assertUnreachable, createPluginSession, formatPluginError, getSharedArtifact, getSharedPluginSession, getSharedState, getSharedSwcTransformer, getSharedTransformerType, getStateKey, isPluginError, resolveCanonicalId, setSharedArtifact, setSharedPluginSession, setSharedSwcTransformer, setSharedTransformerType };
261
284
  //# sourceMappingURL=index.d.cts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.cts","names":[],"sources":["../src/errors.ts","../src/plugin-session.ts","../src/shared-state.ts","../src/types/gql-call.ts","../src/types/metadata.ts","../src/utils/canonical-id.ts"],"sourcesContent":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.cts","names":[],"sources":["../src/errors.ts","../src/plugin-session.ts","../src/shared-state.ts","../src/types/gql-call.ts","../src/types/metadata.ts","../src/utils/canonical-id.ts"],"sourcesContent":[],"mappings":"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"}
package/dist/index.d.mts CHANGED
@@ -1,4 +1,5 @@
1
- import { BuilderArtifact, BuilderArtifactInlineOperation, BuilderArtifactModel, BuilderArtifactOperation, BuilderArtifactSlice, BuilderError, CanonicalId } from "@soda-gql/builder";
1
+ import { BuilderArtifact, BuilderArtifactFragment, BuilderArtifactOperation, BuilderError } from "@soda-gql/builder";
2
+ import { CanonicalId } from "@soda-gql/common";
2
3
  import { ResolvedSodaGqlConfig } from "@soda-gql/config";
3
4
 
4
5
  //#region packages/plugin-common/src/errors.d.ts
@@ -159,6 +160,27 @@ type PluginSession = {
159
160
  declare const createPluginSession: (options: PluginOptions, pluginName: string) => PluginSession | null;
160
161
  //#endregion
161
162
  //#region packages/plugin-common/src/shared-state.d.ts
163
+ /**
164
+ * Transformer type for code transformation.
165
+ * - 'babel': Use Babel plugin (default, wider compatibility)
166
+ * - 'swc': Use SWC transformer (faster, requires @soda-gql/swc-transformer)
167
+ */
168
+ type TransformerType = "babel" | "swc";
169
+ /**
170
+ * Minimal interface for SWC transformer.
171
+ * Matches the Transformer interface from @soda-gql/swc-transformer.
172
+ */
173
+ interface SwcTransformerInterface {
174
+ transform(input: {
175
+ sourceCode: string;
176
+ sourcePath: string;
177
+ inputSourceMap?: string;
178
+ }): {
179
+ transformed: boolean;
180
+ sourceCode: string;
181
+ sourceMap?: string;
182
+ };
183
+ }
162
184
  /**
163
185
  * Shared state between bundler plugins and loaders.
164
186
  * Enables efficient artifact sharing across build pipeline stages.
@@ -168,6 +190,8 @@ type SharedState = {
168
190
  currentArtifact: BuilderArtifact | null;
169
191
  moduleAdjacency: Map<string, Set<string>>;
170
192
  generation: number;
193
+ swcTransformer: SwcTransformerInterface | null;
194
+ transformerType: TransformerType | null;
171
195
  };
172
196
  /**
173
197
  * Get shared state for a given project (identified by config path or cwd).
@@ -193,49 +217,48 @@ declare const setSharedPluginSession: (key: string, session: PluginSession | nul
193
217
  * Get the state key from config path or cwd.
194
218
  */
195
219
  declare const getStateKey: (configPath?: string) => string;
220
+ /**
221
+ * Set shared SWC transformer.
222
+ */
223
+ declare const setSharedSwcTransformer: (key: string, transformer: SwcTransformerInterface | null) => void;
224
+ /**
225
+ * Get shared SWC transformer.
226
+ */
227
+ declare const getSharedSwcTransformer: (key: string) => SwcTransformerInterface | null;
228
+ /**
229
+ * Set shared transformer type.
230
+ */
231
+ declare const setSharedTransformerType: (key: string, transformerType: TransformerType | null) => void;
232
+ /**
233
+ * Get shared transformer type.
234
+ */
235
+ declare const getSharedTransformerType: (key: string) => TransformerType | null;
196
236
  //#endregion
197
237
  //#region packages/plugin-common/src/types/gql-call.d.ts
198
238
  /**
199
239
  * Base interface for all GraphQL call types.
200
- * TCallNode represents the AST node type (e.g., t.CallExpression for Babel, ts.CallExpression for TypeScript).
201
240
  */
202
- interface GqlCallBase<TCallNode> {
241
+ interface GqlCallBase {
203
242
  readonly canonicalId: CanonicalId;
204
- readonly builderCall: TCallNode;
205
243
  }
206
244
  /**
207
- * GraphQL model call.
245
+ * GraphQL fragment call.
208
246
  */
209
- interface GqlCallModel<TCallNode> extends GqlCallBase<TCallNode> {
210
- readonly type: "model";
211
- readonly artifact: BuilderArtifactModel;
247
+ interface GqlCallFragment extends GqlCallBase {
248
+ readonly type: "fragment";
249
+ readonly artifact: BuilderArtifactFragment;
212
250
  }
213
251
  /**
214
- * GraphQL slice call.
252
+ * GraphQL operation call.
215
253
  */
216
- interface GqlCallSlice<TCallNode> extends GqlCallBase<TCallNode> {
217
- readonly type: "slice";
218
- readonly artifact: BuilderArtifactSlice;
219
- }
220
- /**
221
- * GraphQL composed operation call.
222
- * Unified naming: "operation" (was "composedOperation" in tsc-plugin).
223
- */
224
- interface GqlCallOperation<TCallNode> extends GqlCallBase<TCallNode> {
254
+ interface GqlCallOperation extends GqlCallBase {
225
255
  readonly type: "operation";
226
256
  readonly artifact: BuilderArtifactOperation;
227
257
  }
228
- /**
229
- * GraphQL inline operation call.
230
- */
231
- interface GqlCallInlineOperation<TCallNode> extends GqlCallBase<TCallNode> {
232
- readonly type: "inlineOperation";
233
- readonly artifact: BuilderArtifactInlineOperation;
234
- }
235
258
  /**
236
259
  * Union of all GraphQL call types.
237
260
  */
238
- type GqlCall<TCallNode> = GqlCallModel<TCallNode> | GqlCallSlice<TCallNode> | GqlCallOperation<TCallNode> | GqlCallInlineOperation<TCallNode>;
261
+ type GqlCall = GqlCallFragment | GqlCallOperation;
239
262
  //#endregion
240
263
  //#region packages/plugin-common/src/types/metadata.d.ts
241
264
  /**
@@ -257,5 +280,5 @@ type GqlDefinitionMetadata = {
257
280
  */
258
281
  declare const resolveCanonicalId: (filename: string, astPath: string) => CanonicalId;
259
282
  //#endregion
260
- export { type GqlCall, type GqlCallBase, type GqlCallInlineOperation, type GqlCallModel, type GqlCallOperation, type GqlCallSlice, type GqlDefinitionMetadata, PluginAnalysisArtifactMissingError, PluginAnalysisMetadataMissingError, PluginAnalysisUnsupportedArtifactTypeError, PluginBuilderCircularDependencyError, PluginBuilderDocDuplicateError, PluginBuilderEntryNotFoundError, PluginBuilderModuleEvaluationFailedError, PluginBuilderUnexpectedError, PluginBuilderWriteFailedError, PluginError, PluginOptions, PluginOptionsInvalidBuilderConfigError, PluginSession, PluginTransformAstVisitorFailedError, PluginTransformMissingBuilderArgError, PluginTransformUnsupportedValueTypeError, SharedState, assertUnreachable, createPluginSession, formatPluginError, getSharedArtifact, getSharedPluginSession, getSharedState, getStateKey, isPluginError, resolveCanonicalId, setSharedArtifact, setSharedPluginSession };
283
+ export { type GqlCall, type GqlCallBase, type GqlCallFragment, type GqlCallOperation, type GqlDefinitionMetadata, PluginAnalysisArtifactMissingError, PluginAnalysisMetadataMissingError, PluginAnalysisUnsupportedArtifactTypeError, PluginBuilderCircularDependencyError, PluginBuilderDocDuplicateError, PluginBuilderEntryNotFoundError, PluginBuilderModuleEvaluationFailedError, PluginBuilderUnexpectedError, PluginBuilderWriteFailedError, PluginError, PluginOptions, PluginOptionsInvalidBuilderConfigError, PluginSession, PluginTransformAstVisitorFailedError, PluginTransformMissingBuilderArgError, PluginTransformUnsupportedValueTypeError, SharedState, SwcTransformerInterface, TransformerType, assertUnreachable, createPluginSession, formatPluginError, getSharedArtifact, getSharedPluginSession, getSharedState, getSharedSwcTransformer, getSharedTransformerType, getStateKey, isPluginError, resolveCanonicalId, setSharedArtifact, setSharedPluginSession, setSharedSwcTransformer, setSharedTransformerType };
261
284
  //# sourceMappingURL=index.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.mts","names":[],"sources":["../src/errors.ts","../src/plugin-session.ts","../src/shared-state.ts","../src/types/gql-call.ts","../src/types/metadata.ts","../src/utils/canonical-id.ts"],"sourcesContent":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.mts","names":[],"sources":["../src/errors.ts","../src/plugin-session.ts","../src/shared-state.ts","../src/types/gql-call.ts","../src/types/metadata.ts","../src/utils/canonical-id.ts"],"sourcesContent":[],"mappings":"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"}
package/dist/index.mjs CHANGED
@@ -1,5 +1,5 @@
1
- import { createBuilderService, createCanonicalId } from "@soda-gql/builder";
2
- import { cachedFn } from "@soda-gql/common";
1
+ import { createBuilderService } from "@soda-gql/builder";
2
+ import { cachedFn, createCanonicalId } from "@soda-gql/common";
3
3
  import { loadConfig } from "@soda-gql/config";
4
4
  import { resolve } from "node:path";
5
5
 
@@ -89,7 +89,9 @@ const getSharedState = (key) => {
89
89
  pluginSession: null,
90
90
  currentArtifact: null,
91
91
  moduleAdjacency: /* @__PURE__ */ new Map(),
92
- generation: 0
92
+ generation: 0,
93
+ swcTransformer: null,
94
+ transformerType: null
93
95
  };
94
96
  sharedStates.set(key, state);
95
97
  }
@@ -128,6 +130,30 @@ const setSharedPluginSession = (key, session) => {
128
130
  const getStateKey = (configPath) => {
129
131
  return configPath ?? process.cwd();
130
132
  };
133
+ /**
134
+ * Set shared SWC transformer.
135
+ */
136
+ const setSharedSwcTransformer = (key, transformer) => {
137
+ getSharedState(key).swcTransformer = transformer;
138
+ };
139
+ /**
140
+ * Get shared SWC transformer.
141
+ */
142
+ const getSharedSwcTransformer = (key) => {
143
+ return getSharedState(key).swcTransformer;
144
+ };
145
+ /**
146
+ * Set shared transformer type.
147
+ */
148
+ const setSharedTransformerType = (key, transformerType) => {
149
+ getSharedState(key).transformerType = transformerType;
150
+ };
151
+ /**
152
+ * Get shared transformer type.
153
+ */
154
+ const getSharedTransformerType = (key) => {
155
+ return getSharedState(key).transformerType;
156
+ };
131
157
 
132
158
  //#endregion
133
159
  //#region packages/plugin-common/src/utils/canonical-id.ts
@@ -140,5 +166,5 @@ const getStateKey = (configPath) => {
140
166
  const resolveCanonicalId = (filename, astPath) => createCanonicalId(resolve(filename), astPath);
141
167
 
142
168
  //#endregion
143
- export { assertUnreachable, createPluginSession, formatPluginError, getSharedArtifact, getSharedPluginSession, getSharedState, getStateKey, isPluginError, resolveCanonicalId, setSharedArtifact, setSharedPluginSession };
169
+ export { assertUnreachable, createPluginSession, formatPluginError, getSharedArtifact, getSharedPluginSession, getSharedState, getSharedSwcTransformer, getSharedTransformerType, getStateKey, isPluginError, resolveCanonicalId, setSharedArtifact, setSharedPluginSession, setSharedSwcTransformer, setSharedTransformerType };
144
170
  //# sourceMappingURL=index.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","names":[],"sources":["../src/errors.ts","../src/plugin-session.ts","../src/shared-state.ts","../src/utils/canonical-id.ts"],"sourcesContent":["/**\n * Error types and formatters for plugin-babel.\n * Simplified from plugin-shared to include only types actually used by the Babel transformer.\n */\n\nimport type { BuilderError, CanonicalId } from \"@soda-gql/builder\";\n\ntype OptionsInvalidBuilderConfig = { readonly code: \"INVALID_BUILDER_CONFIG\"; readonly message: string };\ntype OptionsMissingBuilderConfig = { readonly code: \"MISSING_BUILDER_CONFIG\"; readonly message: string };\ntype OptionsConfigLoadFailed = { readonly code: \"CONFIG_LOAD_FAILED\"; readonly message: string };\n\ntype BuilderEntryNotFound = Extract<BuilderError, { code: \"ENTRY_NOT_FOUND\" }>;\ntype BuilderDocDuplicate = Extract<BuilderError, { code: \"DOC_DUPLICATE\" }>;\ntype BuilderCircularDependency = Extract<BuilderError, { code: \"GRAPH_CIRCULAR_DEPENDENCY\" }>;\ntype BuilderModuleEvaluationFailed = Extract<BuilderError, { code: \"RUNTIME_MODULE_LOAD_FAILED\" }>;\ntype BuilderWriteFailed = Extract<BuilderError, { code: \"WRITE_FAILED\" }>;\n\ntype AnalysisMetadataMissingCause = { readonly filename: string };\ntype AnalysisArtifactMissingCause = { readonly filename: string; readonly canonicalId: CanonicalId };\ntype AnalysisUnsupportedArtifactTypeCause = {\n readonly filename: string;\n readonly canonicalId: CanonicalId;\n readonly artifactType: string;\n};\n\ntype PluginErrorBase<Code extends string, Cause> = {\n readonly type: \"PluginError\";\n readonly code: Code;\n readonly message: string;\n readonly cause: Cause;\n};\n\nexport type PluginOptionsInvalidBuilderConfigError = PluginErrorBase<\n \"OPTIONS_INVALID_BUILDER_CONFIG\",\n OptionsInvalidBuilderConfig | OptionsMissingBuilderConfig | OptionsConfigLoadFailed\n> & { readonly stage: \"normalize-options\" };\n\nexport type PluginBuilderEntryNotFoundError = PluginErrorBase<\"SODA_GQL_BUILDER_ENTRY_NOT_FOUND\", BuilderEntryNotFound> & {\n readonly stage: \"builder\";\n readonly entry: string;\n};\n\nexport type PluginBuilderDocDuplicateError = PluginErrorBase<\"SODA_GQL_BUILDER_DOC_DUPLICATE\", BuilderDocDuplicate> & {\n readonly stage: \"builder\";\n readonly name: string;\n readonly sources: readonly string[];\n};\n\nexport type PluginBuilderCircularDependencyError = PluginErrorBase<\n \"SODA_GQL_BUILDER_CIRCULAR_DEPENDENCY\",\n BuilderCircularDependency\n> & { readonly stage: \"builder\"; readonly chain: readonly string[] };\n\nexport type PluginBuilderModuleEvaluationFailedError = PluginErrorBase<\n \"SODA_GQL_BUILDER_MODULE_EVALUATION_FAILED\",\n BuilderModuleEvaluationFailed\n> & { readonly stage: \"builder\"; readonly filePath: string; readonly astPath: string };\n\nexport type PluginBuilderWriteFailedError = PluginErrorBase<\"SODA_GQL_BUILDER_WRITE_FAILED\", BuilderWriteFailed> & {\n readonly stage: \"builder\";\n readonly outPath: string;\n};\n\nexport type PluginBuilderUnexpectedError = PluginErrorBase<\"SODA_GQL_BUILDER_UNEXPECTED\", unknown> & {\n readonly stage: \"builder\";\n};\n\nexport type PluginAnalysisMetadataMissingError = PluginErrorBase<\"SODA_GQL_METADATA_NOT_FOUND\", AnalysisMetadataMissingCause> & {\n readonly stage: \"analysis\";\n readonly filename: string;\n};\n\nexport type PluginAnalysisArtifactMissingError = PluginErrorBase<\n \"SODA_GQL_ANALYSIS_ARTIFACT_NOT_FOUND\",\n AnalysisArtifactMissingCause\n> & { readonly stage: \"analysis\"; readonly filename: string; readonly canonicalId: CanonicalId };\n\nexport type PluginAnalysisUnsupportedArtifactTypeError = PluginErrorBase<\n \"SODA_GQL_UNSUPPORTED_ARTIFACT_TYPE\",\n AnalysisUnsupportedArtifactTypeCause\n> & {\n readonly stage: \"analysis\";\n readonly filename: string;\n readonly canonicalId: CanonicalId;\n readonly artifactType: string;\n};\n\ntype TransformMissingBuilderArgCause = { readonly filename: string; readonly builderType: string; readonly argName: string };\ntype TransformUnsupportedValueTypeCause = { readonly valueType: string };\ntype TransformAstVisitorFailedCause = { readonly filename: string; readonly reason: string };\n\nexport type PluginTransformMissingBuilderArgError = PluginErrorBase<\n \"SODA_GQL_TRANSFORM_MISSING_BUILDER_ARG\",\n TransformMissingBuilderArgCause\n> & {\n readonly stage: \"transform\";\n readonly filename: string;\n readonly builderType: string;\n readonly argName: string;\n};\n\nexport type PluginTransformUnsupportedValueTypeError = PluginErrorBase<\n \"SODA_GQL_TRANSFORM_UNSUPPORTED_VALUE_TYPE\",\n TransformUnsupportedValueTypeCause\n> & { readonly stage: \"transform\"; readonly valueType: string };\n\nexport type PluginTransformAstVisitorFailedError = PluginErrorBase<\n \"SODA_GQL_TRANSFORM_AST_VISITOR_FAILED\",\n TransformAstVisitorFailedCause\n> & { readonly stage: \"transform\"; readonly filename: string; readonly reason: string };\n\n/**\n * Union of all plugin error types.\n */\nexport type PluginError =\n | PluginOptionsInvalidBuilderConfigError\n | PluginBuilderEntryNotFoundError\n | PluginBuilderDocDuplicateError\n | PluginBuilderCircularDependencyError\n | PluginBuilderModuleEvaluationFailedError\n | PluginBuilderWriteFailedError\n | PluginBuilderUnexpectedError\n | PluginAnalysisMetadataMissingError\n | PluginAnalysisArtifactMissingError\n | PluginAnalysisUnsupportedArtifactTypeError\n | PluginTransformMissingBuilderArgError\n | PluginTransformUnsupportedValueTypeError\n | PluginTransformAstVisitorFailedError;\n\n/**\n * Format a PluginError into a human-readable message.\n */\nexport const formatPluginError = (error: PluginError): string => {\n const codePrefix = `[${error.code}]`;\n const stageInfo = \"stage\" in error ? ` (${error.stage})` : \"\";\n return `${codePrefix}${stageInfo} ${error.message}`;\n};\n\n/**\n * Type guard for PluginError.\n */\nexport const isPluginError = (value: unknown): value is PluginError => {\n return (\n typeof value === \"object\" &&\n value !== null &&\n \"type\" in value &&\n value.type === \"PluginError\" &&\n \"code\" in value &&\n \"message\" in value\n );\n};\n\n/**\n * Assertion helper for unreachable code paths.\n * This is the ONLY acceptable throw in plugin code.\n */\nexport const assertUnreachable = (value: never, context?: string): never => {\n throw new Error(`[INTERNAL] Unreachable code path${context ? ` in ${context}` : \"\"}: received ${JSON.stringify(value)}`);\n};\n","/**\n * Plugin session management for all plugins.\n * Unified from plugin-babel and plugin-swc implementations.\n */\n\nimport type { BuilderArtifact } from \"@soda-gql/builder\";\nimport { createBuilderService } from \"@soda-gql/builder\";\nimport { cachedFn } from \"@soda-gql/common\";\nimport { loadConfig, type ResolvedSodaGqlConfig } from \"@soda-gql/config\";\n\n/**\n * Plugin options shared across all plugins.\n */\nexport type PluginOptions = {\n readonly configPath?: string;\n readonly enabled?: boolean;\n};\n\n/**\n * Plugin session containing builder service and configuration.\n */\nexport type PluginSession = {\n readonly config: ResolvedSodaGqlConfig;\n readonly getArtifact: () => BuilderArtifact | null;\n readonly getArtifactAsync: () => Promise<BuilderArtifact | null>;\n};\n\n/**\n * Create plugin session by loading config and creating cached builder service.\n * Returns null if disabled or config load fails.\n */\nexport const createPluginSession = (options: PluginOptions, pluginName: string): PluginSession | null => {\n const enabled = options.enabled ?? true;\n if (!enabled) {\n return null;\n }\n\n const configResult = loadConfig(options.configPath);\n if (configResult.isErr()) {\n console.error(`[${pluginName}] Failed to load config:`, {\n code: configResult.error.code,\n message: configResult.error.message,\n filePath: configResult.error.filePath,\n cause: configResult.error.cause,\n });\n return null;\n }\n\n const config = configResult.value;\n const ensureBuilderService = cachedFn(() => createBuilderService({ config }));\n\n /**\n * Build artifact on every invocation (like tsc-plugin).\n * If artifact.useBuilder is false and artifact.path is provided, load from file instead.\n * This ensures the artifact is always up-to-date with the latest source files.\n */\n const getArtifact = (): BuilderArtifact | null => {\n const builderService = ensureBuilderService();\n const buildResult = builderService.build();\n if (buildResult.isErr()) {\n console.error(`[${pluginName}] Failed to build artifact: ${buildResult.error.message}`);\n return null;\n }\n return buildResult.value;\n };\n\n /**\n * Async version of getArtifact.\n * Supports async metadata factories and parallel element evaluation.\n */\n const getArtifactAsync = async (): Promise<BuilderArtifact | null> => {\n const builderService = ensureBuilderService();\n const buildResult = await builderService.buildAsync();\n if (buildResult.isErr()) {\n console.error(`[${pluginName}] Failed to build artifact: ${buildResult.error.message}`);\n return null;\n }\n return buildResult.value;\n };\n\n return {\n config,\n getArtifact,\n getArtifactAsync,\n };\n};\n","import type { BuilderArtifact } from \"@soda-gql/builder\";\nimport type { PluginSession } from \"./plugin-session\";\n\n/**\n * Shared state between bundler plugins and loaders.\n * Enables efficient artifact sharing across build pipeline stages.\n */\nexport type SharedState = {\n pluginSession: PluginSession | null;\n currentArtifact: BuilderArtifact | null;\n moduleAdjacency: Map<string, Set<string>>;\n generation: number;\n};\n\n// Global state for sharing between plugin and loader\nconst sharedStates = new Map<string, SharedState>();\n\n/**\n * Get shared state for a given project (identified by config path or cwd).\n */\nexport const getSharedState = (key: string): SharedState => {\n let state = sharedStates.get(key);\n if (!state) {\n state = {\n pluginSession: null,\n currentArtifact: null,\n moduleAdjacency: new Map(),\n generation: 0,\n };\n sharedStates.set(key, state);\n }\n return state;\n};\n\n/**\n * Update shared artifact.\n */\nexport const setSharedArtifact = (\n key: string,\n artifact: BuilderArtifact | null,\n moduleAdjacency?: Map<string, Set<string>>,\n): void => {\n const state = getSharedState(key);\n state.currentArtifact = artifact;\n if (moduleAdjacency) {\n state.moduleAdjacency = moduleAdjacency;\n }\n state.generation++;\n};\n\n/**\n * Get shared artifact.\n */\nexport const getSharedArtifact = (key: string): BuilderArtifact | null => {\n return getSharedState(key).currentArtifact;\n};\n\n/**\n * Get shared plugin session.\n */\nexport const getSharedPluginSession = (key: string): PluginSession | null => {\n return getSharedState(key).pluginSession;\n};\n\n/**\n * Set shared plugin session.\n */\nexport const setSharedPluginSession = (key: string, session: PluginSession | null): void => {\n getSharedState(key).pluginSession = session;\n};\n\n/**\n * Get the state key from config path or cwd.\n */\nexport const getStateKey = (configPath?: string): string => {\n return configPath ?? process.cwd();\n};\n","/**\n * Utility for working with canonical IDs.\n */\n\nimport { resolve } from \"node:path\";\nimport { type CanonicalId, createCanonicalId } from \"@soda-gql/builder\";\n\n/**\n * Resolve a canonical ID from a filename and AST path.\n */\nexport const resolveCanonicalId = (filename: string, astPath: string): CanonicalId =>\n createCanonicalId(resolve(filename), astPath);\n"],"mappings":";;;;;;;;;AAoIA,MAAa,qBAAqB,UAA+B;AAG/D,QAAO,GAFY,IAAI,MAAM,KAAK,KAChB,WAAW,QAAQ,KAAK,MAAM,MAAM,KAAK,GAC1B,GAAG,MAAM;;;;;AAM5C,MAAa,iBAAiB,UAAyC;AACrE,QACE,OAAO,UAAU,YACjB,UAAU,QACV,UAAU,SACV,MAAM,SAAS,iBACf,UAAU,SACV,aAAa;;;;;;AAQjB,MAAa,qBAAqB,OAAc,YAA4B;AAC1E,OAAM,IAAI,MAAM,mCAAmC,UAAU,OAAO,YAAY,GAAG,aAAa,KAAK,UAAU,MAAM,GAAG;;;;;;;;;AC9H1H,MAAa,uBAAuB,SAAwB,eAA6C;AAEvG,KAAI,EADY,QAAQ,WAAW,MAEjC,QAAO;CAGT,MAAM,eAAe,WAAW,QAAQ,WAAW;AACnD,KAAI,aAAa,OAAO,EAAE;AACxB,UAAQ,MAAM,IAAI,WAAW,2BAA2B;GACtD,MAAM,aAAa,MAAM;GACzB,SAAS,aAAa,MAAM;GAC5B,UAAU,aAAa,MAAM;GAC7B,OAAO,aAAa,MAAM;GAC3B,CAAC;AACF,SAAO;;CAGT,MAAM,SAAS,aAAa;CAC5B,MAAM,uBAAuB,eAAe,qBAAqB,EAAE,QAAQ,CAAC,CAAC;;;;;;CAO7E,MAAM,oBAA4C;EAEhD,MAAM,cADiB,sBAAsB,CACV,OAAO;AAC1C,MAAI,YAAY,OAAO,EAAE;AACvB,WAAQ,MAAM,IAAI,WAAW,8BAA8B,YAAY,MAAM,UAAU;AACvF,UAAO;;AAET,SAAO,YAAY;;;;;;CAOrB,MAAM,mBAAmB,YAA6C;EAEpE,MAAM,cAAc,MADG,sBAAsB,CACJ,YAAY;AACrD,MAAI,YAAY,OAAO,EAAE;AACvB,WAAQ,MAAM,IAAI,WAAW,8BAA8B,YAAY,MAAM,UAAU;AACvF,UAAO;;AAET,SAAO,YAAY;;AAGrB,QAAO;EACL;EACA;EACA;EACD;;;;;ACrEH,MAAM,+BAAe,IAAI,KAA0B;;;;AAKnD,MAAa,kBAAkB,QAA6B;CAC1D,IAAI,QAAQ,aAAa,IAAI,IAAI;AACjC,KAAI,CAAC,OAAO;AACV,UAAQ;GACN,eAAe;GACf,iBAAiB;GACjB,iCAAiB,IAAI,KAAK;GAC1B,YAAY;GACb;AACD,eAAa,IAAI,KAAK,MAAM;;AAE9B,QAAO;;;;;AAMT,MAAa,qBACX,KACA,UACA,oBACS;CACT,MAAM,QAAQ,eAAe,IAAI;AACjC,OAAM,kBAAkB;AACxB,KAAI,gBACF,OAAM,kBAAkB;AAE1B,OAAM;;;;;AAMR,MAAa,qBAAqB,QAAwC;AACxE,QAAO,eAAe,IAAI,CAAC;;;;;AAM7B,MAAa,0BAA0B,QAAsC;AAC3E,QAAO,eAAe,IAAI,CAAC;;;;;AAM7B,MAAa,0BAA0B,KAAa,YAAwC;AAC1F,gBAAe,IAAI,CAAC,gBAAgB;;;;;AAMtC,MAAa,eAAe,eAAgC;AAC1D,QAAO,cAAc,QAAQ,KAAK;;;;;;;;;;;ACjEpC,MAAa,sBAAsB,UAAkB,YACnD,kBAAkB,QAAQ,SAAS,EAAE,QAAQ"}
1
+ {"version":3,"file":"index.mjs","names":[],"sources":["../src/errors.ts","../src/plugin-session.ts","../src/shared-state.ts","../src/utils/canonical-id.ts"],"sourcesContent":["/**\n * Error types and formatters for plugin-babel.\n * Simplified from plugin-shared to include only types actually used by the Babel transformer.\n */\n\nimport type { BuilderError } from \"@soda-gql/builder\";\nimport type { CanonicalId } from \"@soda-gql/common\";\n\ntype OptionsInvalidBuilderConfig = { readonly code: \"INVALID_BUILDER_CONFIG\"; readonly message: string };\ntype OptionsMissingBuilderConfig = { readonly code: \"MISSING_BUILDER_CONFIG\"; readonly message: string };\ntype OptionsConfigLoadFailed = { readonly code: \"CONFIG_LOAD_FAILED\"; readonly message: string };\n\ntype BuilderEntryNotFound = Extract<BuilderError, { code: \"ENTRY_NOT_FOUND\" }>;\ntype BuilderDocDuplicate = Extract<BuilderError, { code: \"DOC_DUPLICATE\" }>;\ntype BuilderCircularDependency = Extract<BuilderError, { code: \"GRAPH_CIRCULAR_DEPENDENCY\" }>;\ntype BuilderModuleEvaluationFailed = Extract<BuilderError, { code: \"RUNTIME_MODULE_LOAD_FAILED\" }>;\ntype BuilderWriteFailed = Extract<BuilderError, { code: \"WRITE_FAILED\" }>;\n\ntype AnalysisMetadataMissingCause = { readonly filename: string };\ntype AnalysisArtifactMissingCause = { readonly filename: string; readonly canonicalId: CanonicalId };\ntype AnalysisUnsupportedArtifactTypeCause = {\n readonly filename: string;\n readonly canonicalId: CanonicalId;\n readonly artifactType: string;\n};\n\ntype PluginErrorBase<Code extends string, Cause> = {\n readonly type: \"PluginError\";\n readonly code: Code;\n readonly message: string;\n readonly cause: Cause;\n};\n\nexport type PluginOptionsInvalidBuilderConfigError = PluginErrorBase<\n \"OPTIONS_INVALID_BUILDER_CONFIG\",\n OptionsInvalidBuilderConfig | OptionsMissingBuilderConfig | OptionsConfigLoadFailed\n> & { readonly stage: \"normalize-options\" };\n\nexport type PluginBuilderEntryNotFoundError = PluginErrorBase<\"SODA_GQL_BUILDER_ENTRY_NOT_FOUND\", BuilderEntryNotFound> & {\n readonly stage: \"builder\";\n readonly entry: string;\n};\n\nexport type PluginBuilderDocDuplicateError = PluginErrorBase<\"SODA_GQL_BUILDER_DOC_DUPLICATE\", BuilderDocDuplicate> & {\n readonly stage: \"builder\";\n readonly name: string;\n readonly sources: readonly string[];\n};\n\nexport type PluginBuilderCircularDependencyError = PluginErrorBase<\n \"SODA_GQL_BUILDER_CIRCULAR_DEPENDENCY\",\n BuilderCircularDependency\n> & { readonly stage: \"builder\"; readonly chain: readonly string[] };\n\nexport type PluginBuilderModuleEvaluationFailedError = PluginErrorBase<\n \"SODA_GQL_BUILDER_MODULE_EVALUATION_FAILED\",\n BuilderModuleEvaluationFailed\n> & { readonly stage: \"builder\"; readonly filePath: string; readonly astPath: string };\n\nexport type PluginBuilderWriteFailedError = PluginErrorBase<\"SODA_GQL_BUILDER_WRITE_FAILED\", BuilderWriteFailed> & {\n readonly stage: \"builder\";\n readonly outPath: string;\n};\n\nexport type PluginBuilderUnexpectedError = PluginErrorBase<\"SODA_GQL_BUILDER_UNEXPECTED\", unknown> & {\n readonly stage: \"builder\";\n};\n\nexport type PluginAnalysisMetadataMissingError = PluginErrorBase<\"SODA_GQL_METADATA_NOT_FOUND\", AnalysisMetadataMissingCause> & {\n readonly stage: \"analysis\";\n readonly filename: string;\n};\n\nexport type PluginAnalysisArtifactMissingError = PluginErrorBase<\n \"SODA_GQL_ANALYSIS_ARTIFACT_NOT_FOUND\",\n AnalysisArtifactMissingCause\n> & { readonly stage: \"analysis\"; readonly filename: string; readonly canonicalId: CanonicalId };\n\nexport type PluginAnalysisUnsupportedArtifactTypeError = PluginErrorBase<\n \"SODA_GQL_UNSUPPORTED_ARTIFACT_TYPE\",\n AnalysisUnsupportedArtifactTypeCause\n> & {\n readonly stage: \"analysis\";\n readonly filename: string;\n readonly canonicalId: CanonicalId;\n readonly artifactType: string;\n};\n\ntype TransformMissingBuilderArgCause = { readonly filename: string; readonly builderType: string; readonly argName: string };\ntype TransformUnsupportedValueTypeCause = { readonly valueType: string };\ntype TransformAstVisitorFailedCause = { readonly filename: string; readonly reason: string };\n\nexport type PluginTransformMissingBuilderArgError = PluginErrorBase<\n \"SODA_GQL_TRANSFORM_MISSING_BUILDER_ARG\",\n TransformMissingBuilderArgCause\n> & {\n readonly stage: \"transform\";\n readonly filename: string;\n readonly builderType: string;\n readonly argName: string;\n};\n\nexport type PluginTransformUnsupportedValueTypeError = PluginErrorBase<\n \"SODA_GQL_TRANSFORM_UNSUPPORTED_VALUE_TYPE\",\n TransformUnsupportedValueTypeCause\n> & { readonly stage: \"transform\"; readonly valueType: string };\n\nexport type PluginTransformAstVisitorFailedError = PluginErrorBase<\n \"SODA_GQL_TRANSFORM_AST_VISITOR_FAILED\",\n TransformAstVisitorFailedCause\n> & { readonly stage: \"transform\"; readonly filename: string; readonly reason: string };\n\n/**\n * Union of all plugin error types.\n */\nexport type PluginError =\n | PluginOptionsInvalidBuilderConfigError\n | PluginBuilderEntryNotFoundError\n | PluginBuilderDocDuplicateError\n | PluginBuilderCircularDependencyError\n | PluginBuilderModuleEvaluationFailedError\n | PluginBuilderWriteFailedError\n | PluginBuilderUnexpectedError\n | PluginAnalysisMetadataMissingError\n | PluginAnalysisArtifactMissingError\n | PluginAnalysisUnsupportedArtifactTypeError\n | PluginTransformMissingBuilderArgError\n | PluginTransformUnsupportedValueTypeError\n | PluginTransformAstVisitorFailedError;\n\n/**\n * Format a PluginError into a human-readable message.\n */\nexport const formatPluginError = (error: PluginError): string => {\n const codePrefix = `[${error.code}]`;\n const stageInfo = \"stage\" in error ? ` (${error.stage})` : \"\";\n return `${codePrefix}${stageInfo} ${error.message}`;\n};\n\n/**\n * Type guard for PluginError.\n */\nexport const isPluginError = (value: unknown): value is PluginError => {\n return (\n typeof value === \"object\" &&\n value !== null &&\n \"type\" in value &&\n value.type === \"PluginError\" &&\n \"code\" in value &&\n \"message\" in value\n );\n};\n\n/**\n * Assertion helper for unreachable code paths.\n * This is the ONLY acceptable throw in plugin code.\n */\nexport const assertUnreachable = (value: never, context?: string): never => {\n throw new Error(`[INTERNAL] Unreachable code path${context ? ` in ${context}` : \"\"}: received ${JSON.stringify(value)}`);\n};\n","/**\n * Plugin session management for all plugins.\n * Unified from plugin-babel and plugin-swc implementations.\n */\n\nimport type { BuilderArtifact } from \"@soda-gql/builder\";\nimport { createBuilderService } from \"@soda-gql/builder\";\nimport { cachedFn } from \"@soda-gql/common\";\nimport { loadConfig, type ResolvedSodaGqlConfig } from \"@soda-gql/config\";\n\n/**\n * Plugin options shared across all plugins.\n */\nexport type PluginOptions = {\n readonly configPath?: string;\n readonly enabled?: boolean;\n};\n\n/**\n * Plugin session containing builder service and configuration.\n */\nexport type PluginSession = {\n readonly config: ResolvedSodaGqlConfig;\n readonly getArtifact: () => BuilderArtifact | null;\n readonly getArtifactAsync: () => Promise<BuilderArtifact | null>;\n};\n\n/**\n * Create plugin session by loading config and creating cached builder service.\n * Returns null if disabled or config load fails.\n */\nexport const createPluginSession = (options: PluginOptions, pluginName: string): PluginSession | null => {\n const enabled = options.enabled ?? true;\n if (!enabled) {\n return null;\n }\n\n const configResult = loadConfig(options.configPath);\n if (configResult.isErr()) {\n console.error(`[${pluginName}] Failed to load config:`, {\n code: configResult.error.code,\n message: configResult.error.message,\n filePath: configResult.error.filePath,\n cause: configResult.error.cause,\n });\n return null;\n }\n\n const config = configResult.value;\n const ensureBuilderService = cachedFn(() => createBuilderService({ config }));\n\n /**\n * Build artifact on every invocation (like tsc-plugin).\n * If artifact.useBuilder is false and artifact.path is provided, load from file instead.\n * This ensures the artifact is always up-to-date with the latest source files.\n */\n const getArtifact = (): BuilderArtifact | null => {\n const builderService = ensureBuilderService();\n const buildResult = builderService.build();\n if (buildResult.isErr()) {\n console.error(`[${pluginName}] Failed to build artifact: ${buildResult.error.message}`);\n return null;\n }\n return buildResult.value;\n };\n\n /**\n * Async version of getArtifact.\n * Supports async metadata factories and parallel element evaluation.\n */\n const getArtifactAsync = async (): Promise<BuilderArtifact | null> => {\n const builderService = ensureBuilderService();\n const buildResult = await builderService.buildAsync();\n if (buildResult.isErr()) {\n console.error(`[${pluginName}] Failed to build artifact: ${buildResult.error.message}`);\n return null;\n }\n return buildResult.value;\n };\n\n return {\n config,\n getArtifact,\n getArtifactAsync,\n };\n};\n","import type { BuilderArtifact } from \"@soda-gql/builder\";\nimport type { PluginSession } from \"./plugin-session\";\n\n/**\n * Transformer type for code transformation.\n * - 'babel': Use Babel plugin (default, wider compatibility)\n * - 'swc': Use SWC transformer (faster, requires @soda-gql/swc-transformer)\n */\nexport type TransformerType = \"babel\" | \"swc\";\n\n/**\n * Minimal interface for SWC transformer.\n * Matches the Transformer interface from @soda-gql/swc-transformer.\n */\nexport interface SwcTransformerInterface {\n transform(input: { sourceCode: string; sourcePath: string; inputSourceMap?: string }): {\n transformed: boolean;\n sourceCode: string;\n sourceMap?: string;\n };\n}\n\n/**\n * Shared state between bundler plugins and loaders.\n * Enables efficient artifact sharing across build pipeline stages.\n */\nexport type SharedState = {\n pluginSession: PluginSession | null;\n currentArtifact: BuilderArtifact | null;\n moduleAdjacency: Map<string, Set<string>>;\n generation: number;\n swcTransformer: SwcTransformerInterface | null;\n transformerType: TransformerType | null;\n};\n\n// Global state for sharing between plugin and loader\nconst sharedStates = new Map<string, SharedState>();\n\n/**\n * Get shared state for a given project (identified by config path or cwd).\n */\nexport const getSharedState = (key: string): SharedState => {\n let state = sharedStates.get(key);\n if (!state) {\n state = {\n pluginSession: null,\n currentArtifact: null,\n moduleAdjacency: new Map(),\n generation: 0,\n swcTransformer: null,\n transformerType: null,\n };\n sharedStates.set(key, state);\n }\n return state;\n};\n\n/**\n * Update shared artifact.\n */\nexport const setSharedArtifact = (\n key: string,\n artifact: BuilderArtifact | null,\n moduleAdjacency?: Map<string, Set<string>>,\n): void => {\n const state = getSharedState(key);\n state.currentArtifact = artifact;\n if (moduleAdjacency) {\n state.moduleAdjacency = moduleAdjacency;\n }\n state.generation++;\n};\n\n/**\n * Get shared artifact.\n */\nexport const getSharedArtifact = (key: string): BuilderArtifact | null => {\n return getSharedState(key).currentArtifact;\n};\n\n/**\n * Get shared plugin session.\n */\nexport const getSharedPluginSession = (key: string): PluginSession | null => {\n return getSharedState(key).pluginSession;\n};\n\n/**\n * Set shared plugin session.\n */\nexport const setSharedPluginSession = (key: string, session: PluginSession | null): void => {\n getSharedState(key).pluginSession = session;\n};\n\n/**\n * Get the state key from config path or cwd.\n */\nexport const getStateKey = (configPath?: string): string => {\n return configPath ?? process.cwd();\n};\n\n/**\n * Set shared SWC transformer.\n */\nexport const setSharedSwcTransformer = (key: string, transformer: SwcTransformerInterface | null): void => {\n getSharedState(key).swcTransformer = transformer;\n};\n\n/**\n * Get shared SWC transformer.\n */\nexport const getSharedSwcTransformer = (key: string): SwcTransformerInterface | null => {\n return getSharedState(key).swcTransformer;\n};\n\n/**\n * Set shared transformer type.\n */\nexport const setSharedTransformerType = (key: string, transformerType: TransformerType | null): void => {\n getSharedState(key).transformerType = transformerType;\n};\n\n/**\n * Get shared transformer type.\n */\nexport const getSharedTransformerType = (key: string): TransformerType | null => {\n return getSharedState(key).transformerType;\n};\n","/**\n * Utility for working with canonical IDs.\n */\n\nimport { resolve } from \"node:path\";\nimport { type CanonicalId, createCanonicalId } from \"@soda-gql/common\";\n\n/**\n * Resolve a canonical ID from a filename and AST path.\n */\nexport const resolveCanonicalId = (filename: string, astPath: string): CanonicalId =>\n createCanonicalId(resolve(filename), astPath);\n"],"mappings":";;;;;;;;;AAqIA,MAAa,qBAAqB,UAA+B;AAG/D,QAAO,GAFY,IAAI,MAAM,KAAK,KAChB,WAAW,QAAQ,KAAK,MAAM,MAAM,KAAK,GAC1B,GAAG,MAAM;;;;;AAM5C,MAAa,iBAAiB,UAAyC;AACrE,QACE,OAAO,UAAU,YACjB,UAAU,QACV,UAAU,SACV,MAAM,SAAS,iBACf,UAAU,SACV,aAAa;;;;;;AAQjB,MAAa,qBAAqB,OAAc,YAA4B;AAC1E,OAAM,IAAI,MAAM,mCAAmC,UAAU,OAAO,YAAY,GAAG,aAAa,KAAK,UAAU,MAAM,GAAG;;;;;;;;;AC/H1H,MAAa,uBAAuB,SAAwB,eAA6C;AAEvG,KAAI,EADY,QAAQ,WAAW,MAEjC,QAAO;CAGT,MAAM,eAAe,WAAW,QAAQ,WAAW;AACnD,KAAI,aAAa,OAAO,EAAE;AACxB,UAAQ,MAAM,IAAI,WAAW,2BAA2B;GACtD,MAAM,aAAa,MAAM;GACzB,SAAS,aAAa,MAAM;GAC5B,UAAU,aAAa,MAAM;GAC7B,OAAO,aAAa,MAAM;GAC3B,CAAC;AACF,SAAO;;CAGT,MAAM,SAAS,aAAa;CAC5B,MAAM,uBAAuB,eAAe,qBAAqB,EAAE,QAAQ,CAAC,CAAC;;;;;;CAO7E,MAAM,oBAA4C;EAEhD,MAAM,cADiB,sBAAsB,CACV,OAAO;AAC1C,MAAI,YAAY,OAAO,EAAE;AACvB,WAAQ,MAAM,IAAI,WAAW,8BAA8B,YAAY,MAAM,UAAU;AACvF,UAAO;;AAET,SAAO,YAAY;;;;;;CAOrB,MAAM,mBAAmB,YAA6C;EAEpE,MAAM,cAAc,MADG,sBAAsB,CACJ,YAAY;AACrD,MAAI,YAAY,OAAO,EAAE;AACvB,WAAQ,MAAM,IAAI,WAAW,8BAA8B,YAAY,MAAM,UAAU;AACvF,UAAO;;AAET,SAAO,YAAY;;AAGrB,QAAO;EACL;EACA;EACA;EACD;;;;;AChDH,MAAM,+BAAe,IAAI,KAA0B;;;;AAKnD,MAAa,kBAAkB,QAA6B;CAC1D,IAAI,QAAQ,aAAa,IAAI,IAAI;AACjC,KAAI,CAAC,OAAO;AACV,UAAQ;GACN,eAAe;GACf,iBAAiB;GACjB,iCAAiB,IAAI,KAAK;GAC1B,YAAY;GACZ,gBAAgB;GAChB,iBAAiB;GAClB;AACD,eAAa,IAAI,KAAK,MAAM;;AAE9B,QAAO;;;;;AAMT,MAAa,qBACX,KACA,UACA,oBACS;CACT,MAAM,QAAQ,eAAe,IAAI;AACjC,OAAM,kBAAkB;AACxB,KAAI,gBACF,OAAM,kBAAkB;AAE1B,OAAM;;;;;AAMR,MAAa,qBAAqB,QAAwC;AACxE,QAAO,eAAe,IAAI,CAAC;;;;;AAM7B,MAAa,0BAA0B,QAAsC;AAC3E,QAAO,eAAe,IAAI,CAAC;;;;;AAM7B,MAAa,0BAA0B,KAAa,YAAwC;AAC1F,gBAAe,IAAI,CAAC,gBAAgB;;;;;AAMtC,MAAa,eAAe,eAAgC;AAC1D,QAAO,cAAc,QAAQ,KAAK;;;;;AAMpC,MAAa,2BAA2B,KAAa,gBAAsD;AACzG,gBAAe,IAAI,CAAC,iBAAiB;;;;;AAMvC,MAAa,2BAA2B,QAAgD;AACtF,QAAO,eAAe,IAAI,CAAC;;;;;AAM7B,MAAa,4BAA4B,KAAa,oBAAkD;AACtG,gBAAe,IAAI,CAAC,kBAAkB;;;;;AAMxC,MAAa,4BAA4B,QAAwC;AAC/E,QAAO,eAAe,IAAI,CAAC;;;;;;;;;;;ACpH7B,MAAa,sBAAsB,UAAkB,YACnD,kBAAkB,QAAQ,SAAS,EAAE,QAAQ"}
package/package.json CHANGED
@@ -1,6 +1,7 @@
1
1
  {
2
2
  "name": "@soda-gql/plugin-common",
3
- "version": "0.1.0",
3
+ "version": "0.2.0",
4
+ "description": "Shared utilities for soda-gql build plugins",
4
5
  "type": "module",
5
6
  "private": false,
6
7
  "license": "MIT",
@@ -12,12 +13,31 @@
12
13
  "email": "shota.hatada@whatasoda.me",
13
14
  "url": "https://github.com/whatasoda"
14
15
  },
16
+ "keywords": [
17
+ "graphql",
18
+ "codegen",
19
+ "zero-runtime",
20
+ "typescript",
21
+ "plugin"
22
+ ],
23
+ "repository": {
24
+ "type": "git",
25
+ "url": "https://github.com/whatasoda/soda-gql.git",
26
+ "directory": "packages/plugin-common"
27
+ },
28
+ "homepage": "https://github.com/whatasoda/soda-gql#readme",
29
+ "bugs": {
30
+ "url": "https://github.com/whatasoda/soda-gql/issues"
31
+ },
32
+ "engines": {
33
+ "node": ">=18"
34
+ },
15
35
  "main": "./dist/index.mjs",
16
36
  "module": "./dist/index.mjs",
17
37
  "types": "./dist/index.d.mts",
18
38
  "exports": {
19
39
  ".": {
20
- "@soda-gql": "./src/index.ts",
40
+ "@soda-gql": "./@x-index.ts",
21
41
  "types": "./dist/index.d.mts",
22
42
  "import": "./dist/index.mjs",
23
43
  "require": "./dist/index.cjs",
@@ -26,9 +46,9 @@
26
46
  "./package.json": "./package.json"
27
47
  },
28
48
  "dependencies": {
29
- "@soda-gql/builder": "0.1.0",
30
- "@soda-gql/common": "0.1.0",
31
- "@soda-gql/config": "0.1.0",
49
+ "@soda-gql/builder": "0.2.0",
50
+ "@soda-gql/common": "0.2.0",
51
+ "@soda-gql/config": "0.2.0",
32
52
  "neverthrow": "^8.1.1"
33
53
  },
34
54
  "devDependencies": {},