Skip to content

Commit 91b0c5f

Browse files
committed
Fix node.js dependency issue in browser bundle
1 parent d89ba08 commit 91b0c5f

9 files changed

Lines changed: 30 additions & 18 deletions

File tree

apps/cli/src/cli-controller/forms.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,8 @@ import { Command } from 'commander';
33

44
import { commands } from '@flexion/forms-infra-core';
55
import { type Context } from './types.js';
6-
import { createFormService, createFormsRepository, defaultFormConfig, createTestPdfParser, parsePdf as parsePdfCore } from '@flexion/forms-core';
6+
import { createFormService, createFormsRepository, defaultFormConfig, parsePdf as parsePdfCore } from '@flexion/forms-core';
7+
import { createTestPdfParser } from '@flexion/forms-core/documents/pdf/context';
78
import { createFilesystemDatabaseContext } from '@flexion/forms-database/context';
89

910
export const addFormCommands = (ctx: Context, cli: Command) => {

apps/spotlight/src/context.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import {
22
type FormConfig,
33
type FormService,
44
createFormService,
5-
createNoopPdfParser,
5+
createSimpleFakeParser,
66
} from '@flexion/forms-core';
77
import { defaultFormConfig } from '@flexion/forms-core';
88
import { BrowserFormRepository } from '@flexion/forms-core/context';
@@ -44,7 +44,7 @@ const createAppFormService = () => {
4444
repository,
4545
config: defaultFormConfig,
4646
isUserLoggedIn: () => true,
47-
parser: createNoopPdfParser(),
47+
parser: createSimpleFakeParser(),
4848
});
4949
} else {
5050
return createTestBrowserFormService();

packages/forms/package.json

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,11 @@
2020
"types": "./dist/types/context/index.d.ts",
2121
"import": "./dist/esm/context.js",
2222
"require": "./dist/cjs/context.js"
23+
},
24+
"./documents/pdf/context": {
25+
"types": "./dist/types/documents/pdf/context.d.ts",
26+
"import": "./dist/esm/documents/pdf/context.js",
27+
"require": "./dist/cjs/documents/pdf/context.js"
2328
}
2429
},
2530
"scripts": {

packages/forms/rollup.config.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ export default {
1414
input: {
1515
index: 'src/index.ts',
1616
context: 'src/context/index.ts',
17+
'documents/pdf/context': 'src/documents/pdf/context.ts',
1718
},
1819
output: [
1920
{

packages/forms/src/context/test/index.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import { BrowserFormRepository } from '../browser/form-repo.js';
2-
import { createTestPdfParser } from '../../documents/pdf/index.js';
2+
import { createSimpleFakeParser } from '../../documents/pdf/index.js';
33
import { defaultFormConfig } from '../../patterns/index.js';
44
import { type FormService, createFormService } from '../../services/index.js';
55

@@ -15,7 +15,7 @@ export const createTestBrowserFormService = (
1515
repository,
1616
config: defaultFormConfig,
1717
isUserLoggedIn: () => true,
18-
parser: createTestPdfParser(),
18+
parser: createSimpleFakeParser(),
1919
});
2020
if (testData) {
2121
Object.entries(testData).forEach(([id, blueprint]) => {

packages/forms/src/documents/__tests__/doj-pardon-marijuana.test.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,7 @@ describe('DOJ Pardon Attorney Office - Marijuana pardon application form', () =>
9191
'doj-pardon-marijuana/demo-application_for_certificate_of_pardon_for_simple_marijuana_possession.pdf'
9292
);
9393

94-
const { createTestPdfParser } = await import('../pdf/index.js');
94+
const { createTestPdfParser } = await import('../pdf/context.js');
9595
const { defaultFormConfig } = await import('../../patterns/index.js');
9696
const parser = createTestPdfParser();
9797
const result = await parsePdf(

packages/forms/src/documents/pdf/index.ts

Lines changed: 14 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// Primary PDF parsing API
1+
// Primary PDF parsing API (Node.js only - uses bedrock)
22
export { parsePdf } from './parsing-api.js';
33
export type { ParsePdf } from './parsing-api.js';
44

@@ -9,21 +9,25 @@ export type { ExtractedForm } from './domain/schema.js';
99
export type { PdfParser } from './services/parser-interface.js';
1010
export type { PdfParsingContext } from './services/context.js';
1111

12-
// Parser implementations
13-
export { createBedrockParser } from './adapters/bedrock-parser.js';
12+
// Parser implementations (Node.js only)
13+
// NOTE: createBedrockParser is not exported here to avoid pulling in Node.js-only
14+
// AWS SDK code into browser bundles. Import directly from './adapters/bedrock-parser.js' if needed.
15+
// export { createBedrockParser } from './adapters/bedrock-parser.js';
1416
export {
1517
FakePdfParser,
1618
createSimpleFakeParser,
1719
} from './adapters/fake-parser.js';
1820

19-
// Parser factory functions
20-
export {
21-
createProductionPdfParser,
22-
createTestPdfParser,
23-
createNoopPdfParser,
24-
} from './context.js';
21+
// Parser factory functions (Node.js only - createProductionPdfParser uses bedrock)
22+
// NOTE: These are not exported to avoid pulling Node.js-only code into browser bundles.
23+
// Import directly from './context.js' if needed in Node.js environments.
24+
// export {
25+
// createProductionPdfParser,
26+
// createTestPdfParser,
27+
// createNoopPdfParser,
28+
// } from './context.js';
2529

26-
// PDF generation
30+
// PDF generation (browser-safe)
2731
export * from './generate.js';
2832
export { generateDummyPDF } from './generate-dummy.js';
2933

packages/forms/src/testing.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,8 @@ import { createInMemoryDatabaseContext } from '@flexion/forms-database/context';
33

44
import type { InternalFormServiceContext } from './context';
55
import type { PdfParser } from './documents/pdf/services/parser-interface';
6-
import { createTestPdfParser, parsePdf as parsePdfCore } from './documents/pdf';
6+
import { parsePdf as parsePdfCore } from './documents/pdf';
7+
import { createTestPdfParser } from './documents/pdf/context';
78
import { defaultFormConfig } from './patterns';
89
import { createFormsRepository } from './repository';
910

packages/server/src/config/services.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,8 @@ import {
33
createFormService,
44
createFormsRepository,
55
defaultFormConfig,
6-
createProductionPdfParser,
76
} from '@flexion/forms-core';
7+
import { createProductionPdfParser } from '@flexion/forms-core/documents/pdf/context';
88
import { type ServerOptions } from './options.js';
99

1010
export const createServerFormService = (

0 commit comments

Comments
 (0)