@navios/adapter-xml 0.1.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/LICENSE +7 -0
- package/README.md +532 -0
- package/bun-plugin.mts +129 -0
- package/bunPlugin.cache +1 -0
- package/bunfig.toml +3 -0
- package/dist/bun-plugin.d.mts +4 -0
- package/dist/bun-plugin.d.mts.map +1 -0
- package/dist/e2e/bun/xml-stream.spec.d.ts +2 -0
- package/dist/e2e/bun/xml-stream.spec.d.ts.map +1 -0
- package/dist/e2e/fastify/xml-stream.spec.d.ts +2 -0
- package/dist/e2e/fastify/xml-stream.spec.d.ts.map +1 -0
- package/dist/src/adapters/index.d.mts +2 -0
- package/dist/src/adapters/index.d.mts.map +1 -0
- package/dist/src/adapters/xml-stream-adapter.service.d.mts +21 -0
- package/dist/src/adapters/xml-stream-adapter.service.d.mts.map +1 -0
- package/dist/src/decorators/component.decorator.d.mts +17 -0
- package/dist/src/decorators/component.decorator.d.mts.map +1 -0
- package/dist/src/decorators/component.decorator.spec.d.mts +2 -0
- package/dist/src/decorators/component.decorator.spec.d.mts.map +1 -0
- package/dist/src/decorators/index.d.mts +4 -0
- package/dist/src/decorators/index.d.mts.map +1 -0
- package/dist/src/decorators/xml-stream.decorator.d.mts +42 -0
- package/dist/src/decorators/xml-stream.decorator.d.mts.map +1 -0
- package/dist/src/define-environment.d.mts +31 -0
- package/dist/src/define-environment.d.mts.map +1 -0
- package/dist/src/handlers/index.d.mts +2 -0
- package/dist/src/handlers/index.d.mts.map +1 -0
- package/dist/src/handlers/xml-stream.d.mts +23 -0
- package/dist/src/handlers/xml-stream.d.mts.map +1 -0
- package/dist/src/index.d.mts +12 -0
- package/dist/src/index.d.mts.map +1 -0
- package/dist/src/jsx-dev-runtime.d.mts +5 -0
- package/dist/src/jsx-dev-runtime.d.mts.map +1 -0
- package/dist/src/jsx-runtime.d.mts +3 -0
- package/dist/src/jsx-runtime.d.mts.map +1 -0
- package/dist/src/jsx.d.mts +18 -0
- package/dist/src/jsx.d.mts.map +1 -0
- package/dist/src/runtime/create-element.d.mts +25 -0
- package/dist/src/runtime/create-element.d.mts.map +1 -0
- package/dist/src/runtime/fragment.d.mts +2 -0
- package/dist/src/runtime/fragment.d.mts.map +1 -0
- package/dist/src/runtime/index.d.mts +5 -0
- package/dist/src/runtime/index.d.mts.map +1 -0
- package/dist/src/runtime/render-to-xml.d.mts +20 -0
- package/dist/src/runtime/render-to-xml.d.mts.map +1 -0
- package/dist/src/runtime/render-to-xml.spec.d.mts +2 -0
- package/dist/src/runtime/render-to-xml.spec.d.mts.map +1 -0
- package/dist/src/runtime/special-nodes.d.mts +24 -0
- package/dist/src/runtime/special-nodes.d.mts.map +1 -0
- package/dist/src/tags/define-tag.d.mts +33 -0
- package/dist/src/tags/define-tag.d.mts.map +1 -0
- package/dist/src/tags/define-tag.spec.d.mts +2 -0
- package/dist/src/tags/define-tag.spec.d.mts.map +1 -0
- package/dist/src/tags/index.d.mts +3 -0
- package/dist/src/tags/index.d.mts.map +1 -0
- package/dist/src/types/component.d.mts +15 -0
- package/dist/src/types/component.d.mts.map +1 -0
- package/dist/src/types/config.d.mts +10 -0
- package/dist/src/types/config.d.mts.map +1 -0
- package/dist/src/types/index.d.mts +5 -0
- package/dist/src/types/index.d.mts.map +1 -0
- package/dist/src/types/xml-node.d.mts +35 -0
- package/dist/src/types/xml-node.d.mts.map +1 -0
- package/dist/tsconfig.lib.tsbuildinfo +1 -0
- package/dist/tsconfig.spec.tsbuildinfo +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -0
- package/dist/tsup.config.d.mts +3 -0
- package/dist/tsup.config.d.mts.map +1 -0
- package/dist/vitest.config.d.mts +3 -0
- package/dist/vitest.config.d.mts.map +1 -0
- package/dist/vitest.e2e.fastify.config.d.mts +3 -0
- package/dist/vitest.e2e.fastify.config.d.mts.map +1 -0
- package/e2e/bun/xml-stream.spec.tsx +553 -0
- package/e2e/fastify/xml-stream.spec.tsx +569 -0
- package/jsx.d.ts +42 -0
- package/lib/_tsup-dts-rollup.d.mts +414 -0
- package/lib/_tsup-dts-rollup.d.ts +414 -0
- package/lib/chunk-6OR6LGJA.mjs +153 -0
- package/lib/chunk-6OR6LGJA.mjs.map +1 -0
- package/lib/index.d.mts +29 -0
- package/lib/index.d.ts +29 -0
- package/lib/index.js +376 -0
- package/lib/index.js.map +1 -0
- package/lib/index.mjs +256 -0
- package/lib/index.mjs.map +1 -0
- package/lib/jsx-dev-runtime.d.mts +4 -0
- package/lib/jsx-dev-runtime.d.ts +4 -0
- package/lib/jsx-dev-runtime.js +61 -0
- package/lib/jsx-dev-runtime.js.map +1 -0
- package/lib/jsx-dev-runtime.mjs +9 -0
- package/lib/jsx-dev-runtime.mjs.map +1 -0
- package/lib/jsx-runtime.d.mts +3 -0
- package/lib/jsx-runtime.d.ts +3 -0
- package/lib/jsx-runtime.js +57 -0
- package/lib/jsx-runtime.js.map +1 -0
- package/lib/jsx-runtime.mjs +3 -0
- package/lib/jsx-runtime.mjs.map +1 -0
- package/lib/jsx.d.mts +1 -0
- package/lib/jsx.d.ts +1 -0
- package/lib/jsx.js +4 -0
- package/lib/jsx.js.map +1 -0
- package/lib/jsx.mjs +3 -0
- package/lib/jsx.mjs.map +1 -0
- package/package.json +80 -0
- package/project.json +91 -0
- package/src/adapters/index.mts +1 -0
- package/src/adapters/xml-stream-adapter.service.mts +121 -0
- package/src/decorators/component.decorator.mts +102 -0
- package/src/decorators/component.decorator.spec.mts +345 -0
- package/src/decorators/index.mts +4 -0
- package/src/decorators/xml-stream.decorator.mts +93 -0
- package/src/define-environment.mts +40 -0
- package/src/handlers/index.mts +1 -0
- package/src/handlers/xml-stream.mts +31 -0
- package/src/index.mts +41 -0
- package/src/jsx-dev-runtime.mts +8 -0
- package/src/jsx-runtime.mts +2 -0
- package/src/jsx.mts +25 -0
- package/src/runtime/create-element.mts +113 -0
- package/src/runtime/fragment.mts +1 -0
- package/src/runtime/index.mts +4 -0
- package/src/runtime/render-to-xml.mts +214 -0
- package/src/runtime/render-to-xml.spec.mts +360 -0
- package/src/runtime/special-nodes.mts +32 -0
- package/src/tags/define-tag.mts +54 -0
- package/src/tags/define-tag.spec.mts +250 -0
- package/src/tags/index.mts +2 -0
- package/src/types/component.mts +16 -0
- package/src/types/config.mts +15 -0
- package/src/types/index.mts +23 -0
- package/src/types/jsx.d.ts +21 -0
- package/src/types/xml-node.mts +50 -0
- package/tsconfig.json +24 -0
- package/tsconfig.lib.json +8 -0
- package/tsconfig.spec.json +25 -0
- package/tsup.config.mts +18 -0
- package/vitest.config.mts +9 -0
- package/vitest.e2e.fastify.config.mts +29 -0
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { AnyXmlNode } from './xml-node.mjs'
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Base interface for class components.
|
|
5
|
+
* The render method takes no arguments - props are received via constructor.
|
|
6
|
+
*/
|
|
7
|
+
export interface XmlComponent {
|
|
8
|
+
render(): AnyXmlNode | Promise<AnyXmlNode>
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* Type for class component constructors.
|
|
13
|
+
*/
|
|
14
|
+
export interface ComponentClass {
|
|
15
|
+
new (...args: any[]): XmlComponent
|
|
16
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { BaseStreamConfig, HttpMethod } from '@navios/builder'
|
|
2
|
+
|
|
3
|
+
export interface BaseXmlStreamConfig<
|
|
4
|
+
Method extends HttpMethod = HttpMethod,
|
|
5
|
+
Url extends string = string,
|
|
6
|
+
QuerySchema = undefined,
|
|
7
|
+
RequestSchema = undefined,
|
|
8
|
+
> extends BaseStreamConfig<Method, Url, QuerySchema, RequestSchema> {
|
|
9
|
+
/** Content-Type header, defaults to 'application/xml' */
|
|
10
|
+
contentType?: 'application/xml' | 'text/xml' | 'application/rss+xml' | 'application/atom+xml'
|
|
11
|
+
/** Include XML declaration (<?xml version="1.0"?>) - defaults to true */
|
|
12
|
+
xmlDeclaration?: boolean
|
|
13
|
+
/** XML encoding, defaults to 'UTF-8' */
|
|
14
|
+
encoding?: string
|
|
15
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
export {
|
|
2
|
+
Fragment,
|
|
3
|
+
AsyncComponent,
|
|
4
|
+
CDataSymbol,
|
|
5
|
+
RawXmlSymbol,
|
|
6
|
+
ClassComponent,
|
|
7
|
+
} from './xml-node.mjs'
|
|
8
|
+
|
|
9
|
+
export type {
|
|
10
|
+
XmlNode,
|
|
11
|
+
AsyncXmlNode,
|
|
12
|
+
CDataNode,
|
|
13
|
+
RawXmlNode,
|
|
14
|
+
ClassComponentNode,
|
|
15
|
+
AnyXmlNode,
|
|
16
|
+
} from './xml-node.mjs'
|
|
17
|
+
|
|
18
|
+
export type { XmlComponent, ComponentClass } from './component.mjs'
|
|
19
|
+
|
|
20
|
+
export type { BaseXmlStreamConfig } from './config.mjs'
|
|
21
|
+
|
|
22
|
+
// Re-export JSX types for side effects
|
|
23
|
+
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import type { AnyXmlNode, XmlNode } from './xml-node.mjs'
|
|
2
|
+
|
|
3
|
+
declare global {
|
|
4
|
+
namespace JSX {
|
|
5
|
+
type Element = XmlNode
|
|
6
|
+
|
|
7
|
+
interface ElementChildrenAttribute {
|
|
8
|
+
children: {}
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
interface IntrinsicElements {
|
|
12
|
+
// Allow any XML tag name with any props
|
|
13
|
+
[tagName: string]: {
|
|
14
|
+
[prop: string]: string | number | boolean | null | undefined
|
|
15
|
+
children?: AnyXmlNode | AnyXmlNode[]
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
export {}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import type { ComponentClass } from './component.mjs'
|
|
2
|
+
|
|
3
|
+
export const Fragment = Symbol.for('xml.fragment')
|
|
4
|
+
export const AsyncComponent = Symbol.for('xml.async')
|
|
5
|
+
export const CDataSymbol = Symbol.for('xml.cdata')
|
|
6
|
+
export const RawXmlSymbol = Symbol.for('xml.raw')
|
|
7
|
+
export const ClassComponent = Symbol.for('xml.class-component')
|
|
8
|
+
|
|
9
|
+
/** Represents a CDATA section - content is wrapped in <![CDATA[...]]> */
|
|
10
|
+
export interface CDataNode {
|
|
11
|
+
type: typeof CDataSymbol
|
|
12
|
+
content: string
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
/** Represents raw XML content - inserted without any escaping or wrapping */
|
|
16
|
+
export interface RawXmlNode {
|
|
17
|
+
type: typeof RawXmlSymbol
|
|
18
|
+
content: string
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
/** Represents a class component that needs to be resolved via DI */
|
|
22
|
+
export interface ClassComponentNode {
|
|
23
|
+
type: typeof ClassComponent
|
|
24
|
+
componentClass: ComponentClass
|
|
25
|
+
props: Record<string, unknown>
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
export interface XmlNode {
|
|
29
|
+
type: string | typeof Fragment
|
|
30
|
+
props: Record<string, unknown>
|
|
31
|
+
children: AnyXmlNode[]
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
/** Represents an async component that needs to be resolved before rendering */
|
|
35
|
+
export interface AsyncXmlNode {
|
|
36
|
+
type: typeof AsyncComponent
|
|
37
|
+
promise: Promise<AnyXmlNode>
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
/** Union type for all possible node types */
|
|
41
|
+
export type AnyXmlNode =
|
|
42
|
+
| XmlNode
|
|
43
|
+
| AsyncXmlNode
|
|
44
|
+
| CDataNode
|
|
45
|
+
| RawXmlNode
|
|
46
|
+
| ClassComponentNode
|
|
47
|
+
| string
|
|
48
|
+
| number
|
|
49
|
+
| null
|
|
50
|
+
| undefined
|
package/tsconfig.json
ADDED
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
{
|
|
2
|
+
"extends": "../../tsconfig.json",
|
|
3
|
+
"compilerOptions": {
|
|
4
|
+
"module": "Node18",
|
|
5
|
+
"outDir": "dist"
|
|
6
|
+
},
|
|
7
|
+
"references": [
|
|
8
|
+
{
|
|
9
|
+
"path": "./tsconfig.lib.json"
|
|
10
|
+
},
|
|
11
|
+
{
|
|
12
|
+
"path": "./tsconfig.spec.json"
|
|
13
|
+
},
|
|
14
|
+
{
|
|
15
|
+
"path": "../core"
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
"path": "../di"
|
|
19
|
+
},
|
|
20
|
+
{
|
|
21
|
+
"path": "../builder"
|
|
22
|
+
}
|
|
23
|
+
]
|
|
24
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
{
|
|
2
|
+
"extends": "./tsconfig.json",
|
|
3
|
+
"compilerOptions": {
|
|
4
|
+
"outDir": "./dist",
|
|
5
|
+
"module": "preserve",
|
|
6
|
+
"moduleResolution": "bundler",
|
|
7
|
+
"jsx": "react-jsx",
|
|
8
|
+
"jsxImportSource": "@navios/adapter-xml",
|
|
9
|
+
"types": ["./jsx.d.ts"]
|
|
10
|
+
},
|
|
11
|
+
"include": [
|
|
12
|
+
"src/**/*.spec.mts",
|
|
13
|
+
"src/**/__tests__/*.spec.mts",
|
|
14
|
+
"e2e/**/*.mts",
|
|
15
|
+
"vitest.config.mts",
|
|
16
|
+
"vitest.e2e.fastify.config.mts",
|
|
17
|
+
"e2e/fastify/xml-stream.spec.tsx",
|
|
18
|
+
"e2e/bun/xml-stream.spec.tsx"
|
|
19
|
+
],
|
|
20
|
+
"references": [
|
|
21
|
+
{
|
|
22
|
+
"path": "./tsconfig.lib.json"
|
|
23
|
+
}
|
|
24
|
+
]
|
|
25
|
+
}
|
package/tsup.config.mts
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { defineConfig } from 'tsup'
|
|
2
|
+
|
|
3
|
+
export default defineConfig({
|
|
4
|
+
entry: [
|
|
5
|
+
'src/index.mts',
|
|
6
|
+
'src/jsx-runtime.mts',
|
|
7
|
+
'src/jsx-dev-runtime.mts',
|
|
8
|
+
'src/jsx.mts',
|
|
9
|
+
],
|
|
10
|
+
outDir: 'lib',
|
|
11
|
+
format: ['esm', 'cjs'],
|
|
12
|
+
clean: true,
|
|
13
|
+
tsconfig: 'tsconfig.lib.json',
|
|
14
|
+
treeshake: 'smallest',
|
|
15
|
+
sourcemap: true,
|
|
16
|
+
platform: 'node',
|
|
17
|
+
experimentalDts: true,
|
|
18
|
+
})
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { resolve } from 'node:path'
|
|
2
|
+
|
|
3
|
+
import { defineProject } from 'vitest/config'
|
|
4
|
+
|
|
5
|
+
export default defineProject({
|
|
6
|
+
test: {
|
|
7
|
+
include: ['e2e/fastify/**/*.spec.tsx'],
|
|
8
|
+
typecheck: {
|
|
9
|
+
enabled: true,
|
|
10
|
+
},
|
|
11
|
+
},
|
|
12
|
+
esbuild: {
|
|
13
|
+
jsx: 'automatic',
|
|
14
|
+
jsxImportSource: '@navios/adapter-xml',
|
|
15
|
+
loader: 'tsx',
|
|
16
|
+
},
|
|
17
|
+
resolve: {
|
|
18
|
+
alias: {
|
|
19
|
+
'@navios/adapter-xml/jsx-dev-runtime': resolve(
|
|
20
|
+
__dirname,
|
|
21
|
+
'src/jsx-dev-runtime.mts',
|
|
22
|
+
),
|
|
23
|
+
'@navios/adapter-xml/jsx-runtime': resolve(
|
|
24
|
+
__dirname,
|
|
25
|
+
'src/jsx-runtime.mts',
|
|
26
|
+
),
|
|
27
|
+
},
|
|
28
|
+
},
|
|
29
|
+
})
|