@locode2/harness 0.1.0-preview.1

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.
Files changed (162) hide show
  1. package/README.md +27 -0
  2. package/THIRD_PARTY_LICENSES.txt +32769 -0
  3. package/THIRD_PARTY_NOTICES.md +13 -0
  4. package/apps/host/dist/document-parser-worker.js +215 -0
  5. package/apps/host/dist/frontend-runtime-worker.js +1755 -0
  6. package/apps/host/dist/index.js +23380 -0
  7. package/apps/web/dist/assets/LocalMonacoEditor-CXkKwxiP.css +1 -0
  8. package/apps/web/dist/assets/LocalMonacoEditor-WKAHQmzG.js +940 -0
  9. package/apps/web/dist/assets/LogsView-BFFFSFB-.js +1 -0
  10. package/apps/web/dist/assets/PluginsView-DM_ZnENS.js +1 -0
  11. package/apps/web/dist/assets/SettingsView-Cb5Q4ile.js +1 -0
  12. package/apps/web/dist/assets/abap-DLDM7-KI.js +1 -0
  13. package/apps/web/dist/assets/apex-DNDY2TF8.js +1 -0
  14. package/apps/web/dist/assets/azcli-Y6nb8tq_.js +1 -0
  15. package/apps/web/dist/assets/bat-BwHxbl9M.js +1 -0
  16. package/apps/web/dist/assets/bicep-CFznDFnq.js +2 -0
  17. package/apps/web/dist/assets/cameligo-Bf6VGUru.js +1 -0
  18. package/apps/web/dist/assets/clojure-Dnu-v4kV.js +1 -0
  19. package/apps/web/dist/assets/codicon-Brq4_Ui5.ttf +0 -0
  20. package/apps/web/dist/assets/coffee-Bd8akH9Z.js +1 -0
  21. package/apps/web/dist/assets/cpp-BbWJElDN.js +1 -0
  22. package/apps/web/dist/assets/csharp-Co3qMtFm.js +1 -0
  23. package/apps/web/dist/assets/csp-D-4FJmMZ.js +1 -0
  24. package/apps/web/dist/assets/css-DdJfP1eB.js +3 -0
  25. package/apps/web/dist/assets/css.worker-11mhRRLC.js +97 -0
  26. package/apps/web/dist/assets/cssMode-L5f5LAEn.js +1 -0
  27. package/apps/web/dist/assets/cypher-cTPe9QuQ.js +1 -0
  28. package/apps/web/dist/assets/dart-BOtBlQCF.js +1 -0
  29. package/apps/web/dist/assets/dockerfile-BG73LgW2.js +1 -0
  30. package/apps/web/dist/assets/ecl-BEgZUVRK.js +1 -0
  31. package/apps/web/dist/assets/editor.worker-DysRFSaV.js +30 -0
  32. package/apps/web/dist/assets/elixir-BkW5O-1t.js +1 -0
  33. package/apps/web/dist/assets/flow9-BeJ5waoc.js +1 -0
  34. package/apps/web/dist/assets/freemarker2-UOwftS75.js +3 -0
  35. package/apps/web/dist/assets/fsharp-PahG7c26.js +1 -0
  36. package/apps/web/dist/assets/go-acbASCJo.js +1 -0
  37. package/apps/web/dist/assets/graphql-BxJiqAUM.js +1 -0
  38. package/apps/web/dist/assets/handlebars-C_E41ffr.js +1 -0
  39. package/apps/web/dist/assets/hcl-DtV1sZF8.js +1 -0
  40. package/apps/web/dist/assets/html-HsrixH2x.js +1 -0
  41. package/apps/web/dist/assets/html.worker-C8Tw8ncf.js +474 -0
  42. package/apps/web/dist/assets/htmlMode-DipGmEOi.js +1 -0
  43. package/apps/web/dist/assets/index-COUF63cT.js +213 -0
  44. package/apps/web/dist/assets/index-SNSmF2-c.css +1 -0
  45. package/apps/web/dist/assets/ini-Kd9XrMLS.js +1 -0
  46. package/apps/web/dist/assets/java-CXBNlu9o.js +1 -0
  47. package/apps/web/dist/assets/javascript-D36WEqF9.js +1 -0
  48. package/apps/web/dist/assets/json.worker-BzkYZgJ7.js +62 -0
  49. package/apps/web/dist/assets/jsonMode-D9BrIats.js +7 -0
  50. package/apps/web/dist/assets/julia-cl7-CwDS.js +1 -0
  51. package/apps/web/dist/assets/kotlin-s7OhZKlX.js +1 -0
  52. package/apps/web/dist/assets/less-9HpZscsL.js +2 -0
  53. package/apps/web/dist/assets/lexon-OrD6JF1K.js +1 -0
  54. package/apps/web/dist/assets/liquid-DES89Tjc.js +1 -0
  55. package/apps/web/dist/assets/lock-keyhole-jo-FJcGq.js +1 -0
  56. package/apps/web/dist/assets/lspLanguageFeatures-YKkgcn4q.js +4 -0
  57. package/apps/web/dist/assets/lua-Cyyb5UIc.js +1 -0
  58. package/apps/web/dist/assets/m3-B8OfTtLu.js +1 -0
  59. package/apps/web/dist/assets/markdown-BFxVWTOG.js +1 -0
  60. package/apps/web/dist/assets/mdx-D1Bfax8e.js +1 -0
  61. package/apps/web/dist/assets/mips-CiqrrVzr.js +1 -0
  62. package/apps/web/dist/assets/msdax-DmeGPVcC.js +1 -0
  63. package/apps/web/dist/assets/mysql-C_tMU-Nz.js +1 -0
  64. package/apps/web/dist/assets/objective-c-BDtDVThU.js +1 -0
  65. package/apps/web/dist/assets/pascal-vHIfCaH5.js +1 -0
  66. package/apps/web/dist/assets/pascaligo-DtZ0uQbO.js +1 -0
  67. package/apps/web/dist/assets/perl-Ub6l9XKa.js +1 -0
  68. package/apps/web/dist/assets/pgsql-BlNEE0v7.js +1 -0
  69. package/apps/web/dist/assets/php-BBUBE1dy.js +1 -0
  70. package/apps/web/dist/assets/pla-DSh2-awV.js +1 -0
  71. package/apps/web/dist/assets/postiats-CocnycG-.js +1 -0
  72. package/apps/web/dist/assets/powerquery-tScXyioY.js +1 -0
  73. package/apps/web/dist/assets/powershell-COWaemsV.js +1 -0
  74. package/apps/web/dist/assets/protobuf-Brw8urJB.js +2 -0
  75. package/apps/web/dist/assets/pug-8SOpv6rk.js +1 -0
  76. package/apps/web/dist/assets/python-DKhPhY0N.js +1 -0
  77. package/apps/web/dist/assets/qsharp-Bw9ernYp.js +1 -0
  78. package/apps/web/dist/assets/r-j7ic8hl3.js +1 -0
  79. package/apps/web/dist/assets/razor-Cha8qrI6.js +1 -0
  80. package/apps/web/dist/assets/redis-Bu5POkcn.js +1 -0
  81. package/apps/web/dist/assets/redshift-Bs9aos_-.js +1 -0
  82. package/apps/web/dist/assets/restructuredtext-CqXO7rUv.js +1 -0
  83. package/apps/web/dist/assets/ruby-zBfavPgS.js +1 -0
  84. package/apps/web/dist/assets/rust-BzKRNQWT.js +1 -0
  85. package/apps/web/dist/assets/sb-BBc9UKZt.js +1 -0
  86. package/apps/web/dist/assets/scala-D9hQfWCl.js +1 -0
  87. package/apps/web/dist/assets/scheme-BPhDTwHR.js +1 -0
  88. package/apps/web/dist/assets/scss-CBJaRo0y.js +3 -0
  89. package/apps/web/dist/assets/shell-DiJ1NA_G.js +1 -0
  90. package/apps/web/dist/assets/solidity-Db0IVjzk.js +1 -0
  91. package/apps/web/dist/assets/sophia-CnS9iZB_.js +1 -0
  92. package/apps/web/dist/assets/sparql-CJmd_6j2.js +1 -0
  93. package/apps/web/dist/assets/sql-ClhHkBeG.js +1 -0
  94. package/apps/web/dist/assets/st-CHwy0fLd.js +1 -0
  95. package/apps/web/dist/assets/swift-CnmFD0ga.js +1 -0
  96. package/apps/web/dist/assets/systemverilog-Bs9z6M-B.js +1 -0
  97. package/apps/web/dist/assets/tcl-Dm6ycUr_.js +1 -0
  98. package/apps/web/dist/assets/ts.worker-Bupg6llt.js +67722 -0
  99. package/apps/web/dist/assets/tsMode-CEhssXv8.js +11 -0
  100. package/apps/web/dist/assets/twig-Csy3S7wG.js +1 -0
  101. package/apps/web/dist/assets/typescript-DWqmw58R.js +1 -0
  102. package/apps/web/dist/assets/typespec-Btyra-wh.js +1 -0
  103. package/apps/web/dist/assets/vb-Db0cS2oM.js +1 -0
  104. package/apps/web/dist/assets/wgsl-DumH7NcR.js +298 -0
  105. package/apps/web/dist/assets/workers-BmZvNFRq.js +1 -0
  106. package/apps/web/dist/assets/xml-WQTAFV9b.js +1 -0
  107. package/apps/web/dist/assets/yaml-Ke2Lf79d.js +1 -0
  108. package/apps/web/dist/index.html +15 -0
  109. package/bin/launch.mjs +71 -0
  110. package/bin/locode-mini.mjs +12 -0
  111. package/bin/options.mjs +49 -0
  112. package/bin/restore-assets.mjs +40 -0
  113. package/bundled-plugins/fast-frontend/.gitignore +2 -0
  114. package/bundled-plugins/fast-frontend/README.md +29 -0
  115. package/bundled-plugins/fast-frontend/harness.plugin.json +123 -0
  116. package/bundled-plugins/fast-frontend/runtimes/antd-admin/PUBLIC_CONTRACT.md +139 -0
  117. package/bundled-plugins/fast-frontend/runtimes/antd-admin/contracts/app.schema.json +24 -0
  118. package/bundled-plugins/fast-frontend/runtimes/antd-admin/contracts/route.schema.json +52 -0
  119. package/bundled-plugins/fast-frontend/runtimes/antd-admin/examples/app.json +9 -0
  120. package/bundled-plugins/fast-frontend/runtimes/antd-admin/examples/route.json +8 -0
  121. package/bundled-plugins/fast-frontend/runtimes/antd-admin/index.html +17 -0
  122. package/bundled-plugins/fast-frontend/runtimes/antd-admin/package.json +31 -0
  123. package/bundled-plugins/fast-frontend/runtimes/antd-admin/scripts/smoke-build.mjs +40 -0
  124. package/bundled-plugins/fast-frontend/runtimes/antd-admin/src/inspector/index.ts +612 -0
  125. package/bundled-plugins/fast-frontend/runtimes/antd-admin/src/main.tsx +17 -0
  126. package/bundled-plugins/fast-frontend/runtimes/antd-admin/src/sdk/index.ts +1028 -0
  127. package/bundled-plugins/fast-frontend/runtimes/antd-admin/src/shell/RuntimeApp.tsx +380 -0
  128. package/bundled-plugins/fast-frontend/runtimes/antd-admin/src/shell/runtime.css +246 -0
  129. package/bundled-plugins/fast-frontend/runtimes/antd-admin/tsconfig.json +20 -0
  130. package/bundled-plugins/fast-frontend/runtimes/antd-admin/types/runtime.consumer-smoke.ts +70 -0
  131. package/bundled-plugins/fast-frontend/runtimes/antd-admin/types/runtime.d.ts +227 -0
  132. package/bundled-plugins/fast-frontend/templates/antd-admin/.gitignore +9 -0
  133. package/bundled-plugins/fast-frontend/templates/antd-admin/.harness/template.json +10 -0
  134. package/bundled-plugins/fast-frontend/templates/antd-admin/index.html +13 -0
  135. package/bundled-plugins/fast-frontend/templates/antd-admin/package.json +34 -0
  136. package/bundled-plugins/fast-frontend/templates/antd-admin/pnpm-lock.yaml +1451 -0
  137. package/bundled-plugins/fast-frontend/templates/antd-admin/pnpm-workspace.yaml +4 -0
  138. package/bundled-plugins/fast-frontend/templates/antd-admin/public/generated/.gitkeep +1 -0
  139. package/bundled-plugins/fast-frontend/templates/antd-admin/scripts/validate-routes.mjs +153 -0
  140. package/bundled-plugins/fast-frontend/templates/antd-admin/src/app/App.tsx +27 -0
  141. package/bundled-plugins/fast-frontend/templates/antd-admin/src/app/NotFoundPage.tsx +15 -0
  142. package/bundled-plugins/fast-frontend/templates/antd-admin/src/features/.gitkeep +1 -0
  143. package/bundled-plugins/fast-frontend/templates/antd-admin/src/layouts/MainLayout.tsx +77 -0
  144. package/bundled-plugins/fast-frontend/templates/antd-admin/src/main.tsx +14 -0
  145. package/bundled-plugins/fast-frontend/templates/antd-admin/src/mocks/dashboard.ts +48 -0
  146. package/bundled-plugins/fast-frontend/templates/antd-admin/src/pages/dashboard/page.tsx +151 -0
  147. package/bundled-plugins/fast-frontend/templates/antd-admin/src/pages/dashboard/route.ts +9 -0
  148. package/bundled-plugins/fast-frontend/templates/antd-admin/src/routes/definition.ts +21 -0
  149. package/bundled-plugins/fast-frontend/templates/antd-admin/src/routes/menu.tsx +44 -0
  150. package/bundled-plugins/fast-frontend/templates/antd-admin/src/routes/registry.ts +48 -0
  151. package/bundled-plugins/fast-frontend/templates/antd-admin/src/routes/router.tsx +34 -0
  152. package/bundled-plugins/fast-frontend/templates/antd-admin/src/shared/components/business/.gitkeep +1 -0
  153. package/bundled-plugins/fast-frontend/templates/antd-admin/src/shared/components/business/BusinessProviders.tsx +9 -0
  154. package/bundled-plugins/fast-frontend/templates/antd-admin/src/styles/global.css +180 -0
  155. package/bundled-plugins/fast-frontend/templates/antd-admin/src/vite-env.d.ts +1 -0
  156. package/bundled-plugins/fast-frontend/templates/antd-admin/tsconfig.app.json +24 -0
  157. package/bundled-plugins/fast-frontend/templates/antd-admin/tsconfig.json +7 -0
  158. package/bundled-plugins/fast-frontend/templates/antd-admin/tsconfig.node.json +17 -0
  159. package/bundled-plugins/fast-frontend/templates/antd-admin/vite.config.ts +39 -0
  160. package/npm-shrinkwrap.json +9737 -0
  161. package/package.json +80 -0
  162. package/release-integrity.json +168 -0
@@ -0,0 +1,227 @@
1
+ declare module "@harness/frontend-runtime" {
2
+ import type {
3
+ ComponentType,
4
+ CSSProperties,
5
+ Dispatch,
6
+ Key,
7
+ LazyExoticComponent,
8
+ PropsWithChildren,
9
+ ReactNode,
10
+ SetStateAction,
11
+ } from "react";
12
+ import type {
13
+ CardProps,
14
+ DrawerProps,
15
+ FormInstance,
16
+ FormProps,
17
+ RowProps,
18
+ StatisticProps,
19
+ TableProps,
20
+ TagProps,
21
+ } from "antd";
22
+
23
+ export interface FrontendAppTheme {
24
+ readonly colorPrimary?: string;
25
+ readonly borderRadius?: number;
26
+ readonly compact?: boolean;
27
+ }
28
+
29
+ export interface FrontendBusinessAppManifest {
30
+ readonly name?: string;
31
+ /** Project-relative URL below `./generated/`; remote URLs are forbidden. */
32
+ readonly logo?: string;
33
+ readonly theme?: FrontendAppTheme;
34
+ }
35
+
36
+ export interface FrontendRouteMetadata {
37
+ readonly id: string;
38
+ readonly path: string;
39
+ readonly title: string;
40
+ readonly icon?: string;
41
+ readonly order?: number;
42
+ readonly parentId?: string;
43
+ readonly hidden?: boolean;
44
+ }
45
+
46
+ export type FrontendPageComponent = ComponentType<Record<string, never>>;
47
+ export type FrontendLazyPageComponent = LazyExoticComponent<FrontendPageComponent>;
48
+ export type FrontendRuntimeProvider = ComponentType<PropsWithChildren>;
49
+
50
+ export interface FrontendBusinessRoute {
51
+ readonly metadata: FrontendRouteMetadata;
52
+ readonly Component: FrontendLazyPageComponent;
53
+ }
54
+
55
+ export interface FrontendRuntimeApi {
56
+ readonly app: FrontendBusinessAppManifest;
57
+ readonly routes: readonly FrontendRouteMetadata[];
58
+ readonly currentPath: string;
59
+ navigate(to: string): void;
60
+ }
61
+
62
+ export interface FrontendStorage {
63
+ readonly length: number;
64
+ clear(): void;
65
+ getItem(key: string): string | null;
66
+ key(index: number): string | null;
67
+ removeItem(key: string): void;
68
+ setItem(key: string, value: string): void;
69
+ }
70
+
71
+ export type FrontendPageWidth = "standard" | "wide" | "full";
72
+
73
+ export interface FrontendShellUser {
74
+ readonly name: ReactNode;
75
+ readonly description?: ReactNode;
76
+ readonly avatar?: ReactNode;
77
+ }
78
+
79
+ export interface FrontendShellOptions {
80
+ readonly headerActions?: ReactNode;
81
+ readonly currentUser?: FrontendShellUser;
82
+ readonly userSwitcher?: ReactNode;
83
+ }
84
+
85
+ export interface FrontendPageOptions {
86
+ readonly title?: ReactNode;
87
+ readonly description?: ReactNode;
88
+ readonly titleActions?: ReactNode;
89
+ readonly width?: FrontendPageWidth;
90
+ }
91
+
92
+ export type FrontendShellProviderProps = PropsWithChildren<FrontendShellOptions>;
93
+
94
+ export function useFrontendShell(options: FrontendShellOptions): void;
95
+
96
+ export function useFrontendPage(options: FrontendPageOptions): void;
97
+
98
+ export function FrontendShellProvider(props: FrontendShellProviderProps): ReactNode;
99
+
100
+ export interface PageContainerProps extends PropsWithChildren<FrontendPageOptions> {
101
+ readonly className?: string;
102
+ readonly style?: CSSProperties;
103
+ }
104
+
105
+ export function PageContainer(props: PageContainerProps): ReactNode;
106
+
107
+ export interface FrontendMetric {
108
+ readonly key: Key;
109
+ readonly title: ReactNode;
110
+ readonly value: StatisticProps["value"];
111
+ readonly prefix?: ReactNode;
112
+ readonly suffix?: ReactNode;
113
+ readonly precision?: number;
114
+ readonly valueStyle?: CSSProperties;
115
+ readonly description?: ReactNode;
116
+ readonly loading?: boolean;
117
+ }
118
+
119
+ export interface MetricGridProps {
120
+ readonly items: readonly FrontendMetric[];
121
+ readonly columns?: 1 | 2 | 3 | 4 | 6;
122
+ readonly gutter?: RowProps["gutter"];
123
+ readonly className?: string;
124
+ readonly style?: CSSProperties;
125
+ }
126
+
127
+ export function MetricGrid(props: MetricGridProps): ReactNode;
128
+
129
+ export interface DataTableProps<RecordType extends object = Record<string, unknown>>
130
+ extends Omit<TableProps<RecordType>, "title"> {
131
+ readonly title?: ReactNode;
132
+ readonly description?: ReactNode;
133
+ readonly toolbar?: ReactNode;
134
+ readonly cardProps?: Omit<CardProps, "children" | "extra" | "title">;
135
+ }
136
+
137
+ export function DataTable<RecordType extends object = Record<string, unknown>>(
138
+ props: DataTableProps<RecordType>,
139
+ ): ReactNode;
140
+
141
+ export interface CrudDrawerProps<Values extends object = Record<string, unknown>>
142
+ extends Omit<DrawerProps, "children" | "footer" | "onClose" | "open"> {
143
+ readonly open: boolean;
144
+ readonly form?: FormInstance<Values>;
145
+ readonly formProps?: Omit<FormProps<Values>, "children" | "form" | "initialValues" | "onFinish">;
146
+ readonly initialValues?: Partial<Values>;
147
+ readonly children?: ReactNode;
148
+ readonly submitText?: ReactNode;
149
+ readonly cancelText?: ReactNode;
150
+ readonly submitting?: boolean;
151
+ readonly onClose: () => void;
152
+ readonly onSubmit: (values: Values) => void | Promise<void>;
153
+ readonly onSubmitError?: (error: unknown) => void;
154
+ }
155
+
156
+ export function CrudDrawer<Values extends object = Record<string, unknown>>(
157
+ props: CrudDrawerProps<Values>,
158
+ ): ReactNode;
159
+
160
+ export interface StatusTagProps extends Omit<TagProps, "children" | "color"> {
161
+ readonly status: string;
162
+ readonly label?: ReactNode;
163
+ readonly color?: TagProps["color"];
164
+ readonly colors?: Readonly<Record<string, TagProps["color"]>>;
165
+ }
166
+
167
+ export function StatusTag(props: StatusTagProps): ReactNode;
168
+
169
+ export type FrontendStoreSetter<TState> = TState | ((current: TState) => TState);
170
+ export type FrontendStorePatch<TState extends object> =
171
+ Partial<TState> | ((current: TState) => Partial<TState>);
172
+
173
+ export interface FrontendStore<TState extends object> {
174
+ getState(): TState;
175
+ setState(next: FrontendStoreSetter<TState>): void;
176
+ update(patch: FrontendStorePatch<TState>): void;
177
+ reset(): void;
178
+ subscribe(listener: () => void): () => void;
179
+ useStore<Selection = TState>(selector?: (state: TState) => Selection): Selection;
180
+ }
181
+
182
+ export function createFrontendStore<TState extends object>(
183
+ initialState: TState | (() => TState),
184
+ ): FrontendStore<TState>;
185
+
186
+ export interface PersistentFrontendStateOptions<T> {
187
+ readonly namespace?: string;
188
+ readonly serialize?: (value: T) => string;
189
+ readonly deserialize?: (value: string) => T;
190
+ }
191
+
192
+ export function usePersistentFrontendState<T>(
193
+ key: string,
194
+ initialState: T | (() => T),
195
+ options?: PersistentFrontendStateOptions<T>,
196
+ ): [T, Dispatch<SetStateAction<T>>];
197
+
198
+ export function FrontendRuntimeContextProvider(
199
+ props: PropsWithChildren<{ readonly value: FrontendRuntimeApi }>,
200
+ ): ReactNode;
201
+
202
+ export function useFrontendRuntime(): FrontendRuntimeApi;
203
+
204
+ export function defineFrontendProviders(
205
+ providers: readonly FrontendRuntimeProvider[],
206
+ ): readonly FrontendRuntimeProvider[];
207
+
208
+ /**
209
+ * Returns namespace-isolated synchronous storage. Harness previews persist
210
+ * it through a scoped parent bridge and safely fall back to memory when no
211
+ * persistent backend is available.
212
+ */
213
+ export function getFrontendStorage(namespace?: string): FrontendStorage;
214
+ }
215
+
216
+ declare module "virtual:harness-business-registry" {
217
+ import type {
218
+ FrontendBusinessAppManifest,
219
+ FrontendBusinessRoute,
220
+ FrontendRuntimeProvider,
221
+ } from "@harness/frontend-runtime";
222
+
223
+ export const routes: readonly FrontendBusinessRoute[];
224
+ export const appManifest: FrontendBusinessAppManifest;
225
+ export const providers: readonly FrontendRuntimeProvider[];
226
+ export const stylesUrl: string | undefined;
227
+ }
@@ -0,0 +1,9 @@
1
+ node_modules/
2
+ dist/
3
+ *.tsbuildinfo
4
+ .env
5
+ .env.*
6
+ !.env.example
7
+ !.harness/
8
+ !.harness/template.json
9
+ .harness/install.json
@@ -0,0 +1,10 @@
1
+ {
2
+ "schemaVersion": 1,
3
+ "pluginId": "harness.fast-frontend",
4
+ "modeId": "fast-frontend",
5
+ "templateId": "antd-admin",
6
+ "templateVersion": "1.1.0",
7
+ "pluginContentHash": "{{HARNESS_PLUGIN_CONTENT_HASH}}",
8
+ "installedAt": "{{HARNESS_INSTALLED_AT}}",
9
+ "protectedFiles": {}
10
+ }
@@ -0,0 +1,13 @@
1
+ <!doctype html>
2
+ <html lang="zh-CN">
3
+ <head>
4
+ <meta charset="UTF-8" />
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
6
+ <meta name="theme-color" content="#f5f7fb" />
7
+ <title>业务管理后台</title>
8
+ </head>
9
+ <body>
10
+ <div id="root"></div>
11
+ <script type="module" src="/src/main.tsx"></script>
12
+ </body>
13
+ </html>
@@ -0,0 +1,34 @@
1
+ {
2
+ "name": "harness-antd-admin",
3
+ "version": "1.0.0",
4
+ "private": true,
5
+ "type": "module",
6
+ "packageManager": "pnpm@11.1.1",
7
+ "engines": {
8
+ "node": ">=24.0.0"
9
+ },
10
+ "scripts": {
11
+ "dev": "vite",
12
+ "build": "tsc -b && vite build --config vite.config.ts",
13
+ "preview": "vite preview",
14
+ "typecheck": "tsc -b --pretty false",
15
+ "validate:routes": "node scripts/validate-routes.mjs",
16
+ "validate": "pnpm run validate:routes && pnpm run typecheck && pnpm run build"
17
+ },
18
+ "dependencies": {
19
+ "@ant-design/icons": "6.3.2",
20
+ "antd": "6.6.1",
21
+ "dayjs": "1.11.23",
22
+ "react": "19.2.8",
23
+ "react-dom": "19.2.8",
24
+ "react-router-dom": "7.18.2"
25
+ },
26
+ "devDependencies": {
27
+ "@types/node": "24.13.3",
28
+ "@types/react": "19.2.18",
29
+ "@types/react-dom": "19.2.5",
30
+ "@vitejs/plugin-react": "6.1.0",
31
+ "typescript": "5.9.2",
32
+ "vite": "8.2.2"
33
+ }
34
+ }