pdyform 1.0.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.
Files changed (76) hide show
  1. package/README.md +34 -0
  2. package/eslint.config.mjs +53 -0
  3. package/package.json +45 -0
  4. package/packages/core/dist/chunk-KQR3LFND.js +60 -0
  5. package/packages/core/dist/index.cjs +87 -0
  6. package/packages/core/dist/index.d.cts +2 -0
  7. package/packages/core/dist/index.d.ts +2 -0
  8. package/packages/core/dist/index.js +8 -0
  9. package/packages/core/dist/parser.cjs +1 -0
  10. package/packages/core/dist/parser.d.cts +2 -0
  11. package/packages/core/dist/parser.d.ts +2 -0
  12. package/packages/core/dist/parser.js +0 -0
  13. package/packages/core/dist/types.cjs +18 -0
  14. package/packages/core/dist/types.d.cts +39 -0
  15. package/packages/core/dist/types.d.ts +39 -0
  16. package/packages/core/dist/types.js +0 -0
  17. package/packages/core/dist/utils.cjs +85 -0
  18. package/packages/core/dist/utils.d.cts +6 -0
  19. package/packages/core/dist/utils.d.ts +6 -0
  20. package/packages/core/dist/utils.js +8 -0
  21. package/packages/core/node_modules/.bin/esbuild +14 -0
  22. package/packages/core/node_modules/.bin/tsc +17 -0
  23. package/packages/core/node_modules/.bin/tsserver +17 -0
  24. package/packages/core/node_modules/.bin/tsup +17 -0
  25. package/packages/core/node_modules/.bin/tsup-node +17 -0
  26. package/packages/core/node_modules/.bin/vitest +17 -0
  27. package/packages/core/node_modules/.vite/vitest/results.json +1 -0
  28. package/packages/core/package.json +30 -0
  29. package/packages/core/src/index.test.ts +37 -0
  30. package/packages/core/src/index.ts +2 -0
  31. package/packages/core/src/parser.ts +0 -0
  32. package/packages/core/src/types.ts +42 -0
  33. package/packages/core/src/utils.ts +59 -0
  34. package/packages/core/tsconfig.json +15 -0
  35. package/packages/core/tsup.config.ts +9 -0
  36. package/packages/react/dist/index.cjs +217 -0
  37. package/packages/react/dist/index.d.cts +20 -0
  38. package/packages/react/dist/index.d.ts +20 -0
  39. package/packages/react/dist/index.js +189 -0
  40. package/packages/react/node_modules/.bin/browserslist +17 -0
  41. package/packages/react/node_modules/.bin/esbuild +14 -0
  42. package/packages/react/node_modules/.bin/tsc +17 -0
  43. package/packages/react/node_modules/.bin/tsserver +17 -0
  44. package/packages/react/node_modules/.bin/tsup +17 -0
  45. package/packages/react/node_modules/.bin/tsup-node +17 -0
  46. package/packages/react/node_modules/.bin/vite +17 -0
  47. package/packages/react/node_modules/.bin/vitest +17 -0
  48. package/packages/react/node_modules/.vite/vitest/results.json +1 -0
  49. package/packages/react/package.json +45 -0
  50. package/packages/react/src/DynamicForm.test.tsx +25 -0
  51. package/packages/react/src/DynamicForm.tsx +93 -0
  52. package/packages/react/src/FormFieldRenderer.tsx +130 -0
  53. package/packages/react/src/index.tsx +2 -0
  54. package/packages/react/tsconfig.json +15 -0
  55. package/packages/react/vitest.config.ts +16 -0
  56. package/packages/vue/dist/index.js +1 -0
  57. package/packages/vue/dist/index.mjs +183 -0
  58. package/packages/vue/node_modules/.bin/tsc +17 -0
  59. package/packages/vue/node_modules/.bin/tsserver +17 -0
  60. package/packages/vue/node_modules/.bin/vite +17 -0
  61. package/packages/vue/node_modules/.bin/vitest +17 -0
  62. package/packages/vue/node_modules/.bin/vue-tsc +17 -0
  63. package/packages/vue/node_modules/.vite/vitest/results.json +1 -0
  64. package/packages/vue/node_modules/.vue-global-types/vue_3.5_0_0_0.d.ts +118 -0
  65. package/packages/vue/package.json +43 -0
  66. package/packages/vue/src/DynamicForm.test.ts +19 -0
  67. package/packages/vue/src/DynamicForm.vue +81 -0
  68. package/packages/vue/src/FormFieldRenderer.vue +114 -0
  69. package/packages/vue/src/env.d.ts +7 -0
  70. package/packages/vue/src/index.ts +2 -0
  71. package/packages/vue/tsconfig.json +15 -0
  72. package/packages/vue/vite.config.ts +28 -0
  73. package/packages/vue/vitest.config.ts +16 -0
  74. package/pnpm-workspace.yaml +4 -0
  75. package/tsconfig.json +21 -0
  76. package/turbo.json +17 -0
package/README.md ADDED
@@ -0,0 +1,34 @@
1
+ # pdyform
2
+
3
+ A high-performance, schema-driven dynamic form system with React and Vue support.
4
+
5
+ ## Packages
6
+
7
+ - `pdyform-core`: Framework-agnostic logic and schema parser.
8
+ - `pdyform-react`: React components based on Shadcn UI.
9
+ - `pdyform-vue`: Vue components based on Shadcn-vue.
10
+
11
+ ## Development
12
+
13
+ ```bash
14
+ # Build all packages
15
+ pnpm run build:all
16
+
17
+ # Run all tests
18
+ pnpm run test:all
19
+ ```
20
+
21
+ ## Usage
22
+
23
+ This package provides a unified entry point. You can import framework-specific components directly from the main package:
24
+
25
+ ```typescript
26
+ // Core logic
27
+ import { validateField } from 'pdyform/core';
28
+
29
+ // React components
30
+ import { DynamicForm } from 'pdyform/react';
31
+
32
+ // Vue components
33
+ import { DynamicForm } from 'pdyform/vue';
34
+ ```
@@ -0,0 +1,53 @@
1
+ import js from "@eslint/js";
2
+ import ts from "typescript-eslint";
3
+ import reactPlugin from "eslint-plugin-react";
4
+ import vuePlugin from "eslint-plugin-vue";
5
+ import prettierConfig from "eslint-config-prettier";
6
+ import globals from "globals";
7
+
8
+ export default ts.config(
9
+ js.configs.recommended,
10
+ ...ts.configs.recommended,
11
+ // React configuration
12
+ {
13
+ files: ["**/*.{ts,tsx}"],
14
+ ...reactPlugin.configs.flat.recommended,
15
+ languageOptions: {
16
+ ...reactPlugin.configs.flat.recommended.languageOptions,
17
+ globals: {
18
+ ...globals.browser,
19
+ ...globals.es2021,
20
+ },
21
+ },
22
+ settings: {
23
+ react: {
24
+ version: "detect",
25
+ },
26
+ },
27
+ rules: {
28
+ ...reactPlugin.configs.flat.recommended.rules,
29
+ "react/react-in-jsx-scope": "off",
30
+ "@typescript-eslint/no-explicit-any": "off",
31
+ },
32
+ },
33
+ // Vue configuration
34
+ ...vuePlugin.configs["flat/recommended"],
35
+ {
36
+ files: ["**/*.vue"],
37
+ languageOptions: {
38
+ parserOptions: {
39
+ parser: ts.parser,
40
+ ecmaVersion: "latest",
41
+ sourceType: "module",
42
+ },
43
+ },
44
+ rules: {
45
+ "vue/multi-word-component-names": "off",
46
+ "@typescript-eslint/no-explicit-any": "off",
47
+ },
48
+ },
49
+ prettierConfig,
50
+ {
51
+ ignores: ["**/dist/**", "**/node_modules/**"],
52
+ }
53
+ );
package/package.json ADDED
@@ -0,0 +1,45 @@
1
+ {
2
+ "name": "pdyform",
3
+ "exports": {
4
+ "./core": {
5
+ "types": "./packages/core/src/index.ts",
6
+ "import": "./packages/core/src/index.ts"
7
+ },
8
+ "./react": {
9
+ "types": "./packages/react/src/index.tsx",
10
+ "import": "./packages/react/src/index.tsx"
11
+ },
12
+ "./vue": {
13
+ "types": "./packages/vue/src/index.ts",
14
+ "import": "./packages/vue/src/index.ts"
15
+ }
16
+ },
17
+ "license": "MIT",
18
+ "homepage": "https://github.com/LaoChen1994/pdyform",
19
+ "repository": {
20
+ "type": "git",
21
+ "url": "https://github.com/LaoChen1994/pdyform"
22
+ },
23
+ "devDependencies": {
24
+ "@eslint/js": "^9.39.3",
25
+ "@typescript-eslint/eslint-plugin": "^8.56.1",
26
+ "@typescript-eslint/parser": "^8.56.1",
27
+ "eslint": "^9.39.3",
28
+ "eslint-config-prettier": "^10.1.8",
29
+ "eslint-plugin-react": "^7.37.5",
30
+ "eslint-plugin-vue": "^10.8.0",
31
+ "globals": "^15.15.0",
32
+ "prettier": "^3.8.1",
33
+ "turbo": "latest",
34
+ "typescript": "^5.0.0",
35
+ "typescript-eslint": "^8.56.1",
36
+ "vitest": "^1.0.0"
37
+ },
38
+ "version": "1.0.0",
39
+ "scripts": {
40
+ "build:all": "turbo run build",
41
+ "dev:all": "turbo run dev",
42
+ "test:all": "turbo run test",
43
+ "lint:all": "turbo run lint"
44
+ }
45
+ }
@@ -0,0 +1,60 @@
1
+ // src/utils.ts
2
+ function validateField(value, field) {
3
+ if (!field.validations) return null;
4
+ for (const rule of field.validations) {
5
+ switch (rule.type) {
6
+ case "required":
7
+ if (value === void 0 || value === null || value === "" || Array.isArray(value) && value.length === 0) {
8
+ return rule.message || `${field.label} is required`;
9
+ }
10
+ break;
11
+ case "min":
12
+ if (typeof value === "number" && value < rule.value) {
13
+ return rule.message || `${field.label} must be at least ${rule.value}`;
14
+ }
15
+ if (typeof value === "string" && value.length < rule.value) {
16
+ return rule.message || `${field.label} must be at least ${rule.value} characters`;
17
+ }
18
+ break;
19
+ case "max":
20
+ if (typeof value === "number" && value > rule.value) {
21
+ return rule.message || `${field.label} must be at most ${rule.value}`;
22
+ }
23
+ if (typeof value === "string" && value.length > rule.value) {
24
+ return rule.message || `${field.label} must be at most ${rule.value} characters`;
25
+ }
26
+ break;
27
+ case "email": {
28
+ const emailRegex = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
29
+ if (value && !emailRegex.test(value)) {
30
+ return rule.message || "Invalid email address";
31
+ }
32
+ break;
33
+ }
34
+ case "pattern":
35
+ if (value && rule.value && !new RegExp(rule.value).test(value)) {
36
+ return rule.message || "Invalid format";
37
+ }
38
+ break;
39
+ case "custom":
40
+ if (rule.validator) {
41
+ const result = rule.validator(value);
42
+ if (typeof result === "string") return result;
43
+ if (!result) return rule.message || "Invalid value";
44
+ }
45
+ break;
46
+ }
47
+ }
48
+ return null;
49
+ }
50
+ function getDefaultValues(fields) {
51
+ return fields.reduce((acc, field) => {
52
+ acc[field.name] = field.defaultValue !== void 0 ? field.defaultValue : field.type === "checkbox" ? [] : "";
53
+ return acc;
54
+ }, {});
55
+ }
56
+
57
+ export {
58
+ validateField,
59
+ getDefaultValues
60
+ };
@@ -0,0 +1,87 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+
20
+ // src/index.ts
21
+ var index_exports = {};
22
+ __export(index_exports, {
23
+ getDefaultValues: () => getDefaultValues,
24
+ validateField: () => validateField
25
+ });
26
+ module.exports = __toCommonJS(index_exports);
27
+
28
+ // src/utils.ts
29
+ function validateField(value, field) {
30
+ if (!field.validations) return null;
31
+ for (const rule of field.validations) {
32
+ switch (rule.type) {
33
+ case "required":
34
+ if (value === void 0 || value === null || value === "" || Array.isArray(value) && value.length === 0) {
35
+ return rule.message || `${field.label} is required`;
36
+ }
37
+ break;
38
+ case "min":
39
+ if (typeof value === "number" && value < rule.value) {
40
+ return rule.message || `${field.label} must be at least ${rule.value}`;
41
+ }
42
+ if (typeof value === "string" && value.length < rule.value) {
43
+ return rule.message || `${field.label} must be at least ${rule.value} characters`;
44
+ }
45
+ break;
46
+ case "max":
47
+ if (typeof value === "number" && value > rule.value) {
48
+ return rule.message || `${field.label} must be at most ${rule.value}`;
49
+ }
50
+ if (typeof value === "string" && value.length > rule.value) {
51
+ return rule.message || `${field.label} must be at most ${rule.value} characters`;
52
+ }
53
+ break;
54
+ case "email": {
55
+ const emailRegex = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
56
+ if (value && !emailRegex.test(value)) {
57
+ return rule.message || "Invalid email address";
58
+ }
59
+ break;
60
+ }
61
+ case "pattern":
62
+ if (value && rule.value && !new RegExp(rule.value).test(value)) {
63
+ return rule.message || "Invalid format";
64
+ }
65
+ break;
66
+ case "custom":
67
+ if (rule.validator) {
68
+ const result = rule.validator(value);
69
+ if (typeof result === "string") return result;
70
+ if (!result) return rule.message || "Invalid value";
71
+ }
72
+ break;
73
+ }
74
+ }
75
+ return null;
76
+ }
77
+ function getDefaultValues(fields) {
78
+ return fields.reduce((acc, field) => {
79
+ acc[field.name] = field.defaultValue !== void 0 ? field.defaultValue : field.type === "checkbox" ? [] : "";
80
+ return acc;
81
+ }, {});
82
+ }
83
+ // Annotate the CommonJS export names for ESM import in node:
84
+ 0 && (module.exports = {
85
+ getDefaultValues,
86
+ validateField
87
+ });
@@ -0,0 +1,2 @@
1
+ export { FieldType, FormField, FormSchema, FormState, Option, ValidationRule } from './types.cjs';
2
+ export { getDefaultValues, validateField } from './utils.cjs';
@@ -0,0 +1,2 @@
1
+ export { FieldType, FormField, FormSchema, FormState, Option, ValidationRule } from './types.js';
2
+ export { getDefaultValues, validateField } from './utils.js';
@@ -0,0 +1,8 @@
1
+ import {
2
+ getDefaultValues,
3
+ validateField
4
+ } from "./chunk-KQR3LFND.js";
5
+ export {
6
+ getDefaultValues,
7
+ validateField
8
+ };
@@ -0,0 +1 @@
1
+ "use strict";
@@ -0,0 +1,2 @@
1
+
2
+ export { }
@@ -0,0 +1,2 @@
1
+
2
+ export { }
File without changes
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __copyProps = (to, from, except, desc) => {
7
+ if (from && typeof from === "object" || typeof from === "function") {
8
+ for (let key of __getOwnPropNames(from))
9
+ if (!__hasOwnProp.call(to, key) && key !== except)
10
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
11
+ }
12
+ return to;
13
+ };
14
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
15
+
16
+ // src/types.ts
17
+ var types_exports = {};
18
+ module.exports = __toCommonJS(types_exports);
@@ -0,0 +1,39 @@
1
+ type FieldType = 'text' | 'number' | 'email' | 'password' | 'select' | 'checkbox' | 'radio' | 'textarea' | 'date';
2
+ interface ValidationRule {
3
+ type: 'required' | 'min' | 'max' | 'pattern' | 'email' | 'custom';
4
+ value?: any;
5
+ message?: string;
6
+ validator?: (value: any) => boolean | string;
7
+ }
8
+ interface Option {
9
+ label: string;
10
+ value: string | number;
11
+ }
12
+ interface FormField {
13
+ id: string;
14
+ name: string;
15
+ label: string;
16
+ type: FieldType;
17
+ placeholder?: string;
18
+ description?: string;
19
+ defaultValue?: any;
20
+ options?: Option[];
21
+ validations?: ValidationRule[];
22
+ hidden?: boolean;
23
+ disabled?: boolean;
24
+ className?: string;
25
+ }
26
+ interface FormSchema {
27
+ title?: string;
28
+ description?: string;
29
+ fields: FormField[];
30
+ submitButtonText?: string;
31
+ }
32
+ interface FormState {
33
+ values: Record<string, any>;
34
+ errors: Record<string, string>;
35
+ isSubmitting: boolean;
36
+ isValid: boolean;
37
+ }
38
+
39
+ export type { FieldType, FormField, FormSchema, FormState, Option, ValidationRule };
@@ -0,0 +1,39 @@
1
+ type FieldType = 'text' | 'number' | 'email' | 'password' | 'select' | 'checkbox' | 'radio' | 'textarea' | 'date';
2
+ interface ValidationRule {
3
+ type: 'required' | 'min' | 'max' | 'pattern' | 'email' | 'custom';
4
+ value?: any;
5
+ message?: string;
6
+ validator?: (value: any) => boolean | string;
7
+ }
8
+ interface Option {
9
+ label: string;
10
+ value: string | number;
11
+ }
12
+ interface FormField {
13
+ id: string;
14
+ name: string;
15
+ label: string;
16
+ type: FieldType;
17
+ placeholder?: string;
18
+ description?: string;
19
+ defaultValue?: any;
20
+ options?: Option[];
21
+ validations?: ValidationRule[];
22
+ hidden?: boolean;
23
+ disabled?: boolean;
24
+ className?: string;
25
+ }
26
+ interface FormSchema {
27
+ title?: string;
28
+ description?: string;
29
+ fields: FormField[];
30
+ submitButtonText?: string;
31
+ }
32
+ interface FormState {
33
+ values: Record<string, any>;
34
+ errors: Record<string, string>;
35
+ isSubmitting: boolean;
36
+ isValid: boolean;
37
+ }
38
+
39
+ export type { FieldType, FormField, FormSchema, FormState, Option, ValidationRule };
File without changes
@@ -0,0 +1,85 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+
20
+ // src/utils.ts
21
+ var utils_exports = {};
22
+ __export(utils_exports, {
23
+ getDefaultValues: () => getDefaultValues,
24
+ validateField: () => validateField
25
+ });
26
+ module.exports = __toCommonJS(utils_exports);
27
+ function validateField(value, field) {
28
+ if (!field.validations) return null;
29
+ for (const rule of field.validations) {
30
+ switch (rule.type) {
31
+ case "required":
32
+ if (value === void 0 || value === null || value === "" || Array.isArray(value) && value.length === 0) {
33
+ return rule.message || `${field.label} is required`;
34
+ }
35
+ break;
36
+ case "min":
37
+ if (typeof value === "number" && value < rule.value) {
38
+ return rule.message || `${field.label} must be at least ${rule.value}`;
39
+ }
40
+ if (typeof value === "string" && value.length < rule.value) {
41
+ return rule.message || `${field.label} must be at least ${rule.value} characters`;
42
+ }
43
+ break;
44
+ case "max":
45
+ if (typeof value === "number" && value > rule.value) {
46
+ return rule.message || `${field.label} must be at most ${rule.value}`;
47
+ }
48
+ if (typeof value === "string" && value.length > rule.value) {
49
+ return rule.message || `${field.label} must be at most ${rule.value} characters`;
50
+ }
51
+ break;
52
+ case "email": {
53
+ const emailRegex = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
54
+ if (value && !emailRegex.test(value)) {
55
+ return rule.message || "Invalid email address";
56
+ }
57
+ break;
58
+ }
59
+ case "pattern":
60
+ if (value && rule.value && !new RegExp(rule.value).test(value)) {
61
+ return rule.message || "Invalid format";
62
+ }
63
+ break;
64
+ case "custom":
65
+ if (rule.validator) {
66
+ const result = rule.validator(value);
67
+ if (typeof result === "string") return result;
68
+ if (!result) return rule.message || "Invalid value";
69
+ }
70
+ break;
71
+ }
72
+ }
73
+ return null;
74
+ }
75
+ function getDefaultValues(fields) {
76
+ return fields.reduce((acc, field) => {
77
+ acc[field.name] = field.defaultValue !== void 0 ? field.defaultValue : field.type === "checkbox" ? [] : "";
78
+ return acc;
79
+ }, {});
80
+ }
81
+ // Annotate the CommonJS export names for ESM import in node:
82
+ 0 && (module.exports = {
83
+ getDefaultValues,
84
+ validateField
85
+ });
@@ -0,0 +1,6 @@
1
+ import { FormField } from './types.cjs';
2
+
3
+ declare function validateField(value: any, field: FormField): string | null;
4
+ declare function getDefaultValues(fields: FormField[]): Record<string, any>;
5
+
6
+ export { getDefaultValues, validateField };
@@ -0,0 +1,6 @@
1
+ import { FormField } from './types.js';
2
+
3
+ declare function validateField(value: any, field: FormField): string | null;
4
+ declare function getDefaultValues(fields: FormField[]): Record<string, any>;
5
+
6
+ export { getDefaultValues, validateField };
@@ -0,0 +1,8 @@
1
+ import {
2
+ getDefaultValues,
3
+ validateField
4
+ } from "./chunk-KQR3LFND.js";
5
+ export {
6
+ getDefaultValues,
7
+ validateField
8
+ };
@@ -0,0 +1,14 @@
1
+ #!/bin/sh
2
+ basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
3
+
4
+ case `uname` in
5
+ *CYGWIN*) basedir=`cygpath -w "$basedir"`;;
6
+ esac
7
+
8
+ if [ -z "$NODE_PATH" ]; then
9
+ export NODE_PATH="/Users/pidan/Work/Learn/dynamic-form/node_modules/.pnpm/esbuild@0.27.3/node_modules/esbuild/bin/node_modules:/Users/pidan/Work/Learn/dynamic-form/node_modules/.pnpm/esbuild@0.27.3/node_modules/esbuild/node_modules:/Users/pidan/Work/Learn/dynamic-form/node_modules/.pnpm/esbuild@0.27.3/node_modules:/Users/pidan/Work/Learn/dynamic-form/node_modules/.pnpm/node_modules"
10
+ else
11
+ export NODE_PATH="/Users/pidan/Work/Learn/dynamic-form/node_modules/.pnpm/esbuild@0.27.3/node_modules/esbuild/bin/node_modules:/Users/pidan/Work/Learn/dynamic-form/node_modules/.pnpm/esbuild@0.27.3/node_modules/esbuild/node_modules:/Users/pidan/Work/Learn/dynamic-form/node_modules/.pnpm/esbuild@0.27.3/node_modules:/Users/pidan/Work/Learn/dynamic-form/node_modules/.pnpm/node_modules:$NODE_PATH"
12
+ fi
13
+ "$basedir/../../../../node_modules/.pnpm/esbuild@0.27.3/node_modules/esbuild/bin/esbuild" "$@"
14
+ exit $?
@@ -0,0 +1,17 @@
1
+ #!/bin/sh
2
+ basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
3
+
4
+ case `uname` in
5
+ *CYGWIN*) basedir=`cygpath -w "$basedir"`;;
6
+ esac
7
+
8
+ if [ -z "$NODE_PATH" ]; then
9
+ export NODE_PATH="/Users/pidan/Work/Learn/dynamic-form/node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/bin/node_modules:/Users/pidan/Work/Learn/dynamic-form/node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/node_modules:/Users/pidan/Work/Learn/dynamic-form/node_modules/.pnpm/typescript@5.9.3/node_modules:/Users/pidan/Work/Learn/dynamic-form/node_modules/.pnpm/node_modules"
10
+ else
11
+ export NODE_PATH="/Users/pidan/Work/Learn/dynamic-form/node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/bin/node_modules:/Users/pidan/Work/Learn/dynamic-form/node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/node_modules:/Users/pidan/Work/Learn/dynamic-form/node_modules/.pnpm/typescript@5.9.3/node_modules:/Users/pidan/Work/Learn/dynamic-form/node_modules/.pnpm/node_modules:$NODE_PATH"
12
+ fi
13
+ if [ -x "$basedir/node" ]; then
14
+ exec "$basedir/node" "$basedir/../typescript/bin/tsc" "$@"
15
+ else
16
+ exec node "$basedir/../typescript/bin/tsc" "$@"
17
+ fi
@@ -0,0 +1,17 @@
1
+ #!/bin/sh
2
+ basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
3
+
4
+ case `uname` in
5
+ *CYGWIN*) basedir=`cygpath -w "$basedir"`;;
6
+ esac
7
+
8
+ if [ -z "$NODE_PATH" ]; then
9
+ export NODE_PATH="/Users/pidan/Work/Learn/dynamic-form/node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/bin/node_modules:/Users/pidan/Work/Learn/dynamic-form/node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/node_modules:/Users/pidan/Work/Learn/dynamic-form/node_modules/.pnpm/typescript@5.9.3/node_modules:/Users/pidan/Work/Learn/dynamic-form/node_modules/.pnpm/node_modules"
10
+ else
11
+ export NODE_PATH="/Users/pidan/Work/Learn/dynamic-form/node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/bin/node_modules:/Users/pidan/Work/Learn/dynamic-form/node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/node_modules:/Users/pidan/Work/Learn/dynamic-form/node_modules/.pnpm/typescript@5.9.3/node_modules:/Users/pidan/Work/Learn/dynamic-form/node_modules/.pnpm/node_modules:$NODE_PATH"
12
+ fi
13
+ if [ -x "$basedir/node" ]; then
14
+ exec "$basedir/node" "$basedir/../typescript/bin/tsserver" "$@"
15
+ else
16
+ exec node "$basedir/../typescript/bin/tsserver" "$@"
17
+ fi
@@ -0,0 +1,17 @@
1
+ #!/bin/sh
2
+ basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
3
+
4
+ case `uname` in
5
+ *CYGWIN*) basedir=`cygpath -w "$basedir"`;;
6
+ esac
7
+
8
+ if [ -z "$NODE_PATH" ]; then
9
+ export NODE_PATH="/Users/pidan/Work/Learn/dynamic-form/node_modules/.pnpm/tsup@8.5.1_postcss@8.5.8_typescript@5.9.3/node_modules/tsup/dist/node_modules:/Users/pidan/Work/Learn/dynamic-form/node_modules/.pnpm/tsup@8.5.1_postcss@8.5.8_typescript@5.9.3/node_modules/tsup/node_modules:/Users/pidan/Work/Learn/dynamic-form/node_modules/.pnpm/tsup@8.5.1_postcss@8.5.8_typescript@5.9.3/node_modules:/Users/pidan/Work/Learn/dynamic-form/node_modules/.pnpm/node_modules"
10
+ else
11
+ export NODE_PATH="/Users/pidan/Work/Learn/dynamic-form/node_modules/.pnpm/tsup@8.5.1_postcss@8.5.8_typescript@5.9.3/node_modules/tsup/dist/node_modules:/Users/pidan/Work/Learn/dynamic-form/node_modules/.pnpm/tsup@8.5.1_postcss@8.5.8_typescript@5.9.3/node_modules/tsup/node_modules:/Users/pidan/Work/Learn/dynamic-form/node_modules/.pnpm/tsup@8.5.1_postcss@8.5.8_typescript@5.9.3/node_modules:/Users/pidan/Work/Learn/dynamic-form/node_modules/.pnpm/node_modules:$NODE_PATH"
12
+ fi
13
+ if [ -x "$basedir/node" ]; then
14
+ exec "$basedir/node" "$basedir/../tsup/dist/cli-default.js" "$@"
15
+ else
16
+ exec node "$basedir/../tsup/dist/cli-default.js" "$@"
17
+ fi
@@ -0,0 +1,17 @@
1
+ #!/bin/sh
2
+ basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
3
+
4
+ case `uname` in
5
+ *CYGWIN*) basedir=`cygpath -w "$basedir"`;;
6
+ esac
7
+
8
+ if [ -z "$NODE_PATH" ]; then
9
+ export NODE_PATH="/Users/pidan/Work/Learn/dynamic-form/node_modules/.pnpm/tsup@8.5.1_postcss@8.5.8_typescript@5.9.3/node_modules/tsup/dist/node_modules:/Users/pidan/Work/Learn/dynamic-form/node_modules/.pnpm/tsup@8.5.1_postcss@8.5.8_typescript@5.9.3/node_modules/tsup/node_modules:/Users/pidan/Work/Learn/dynamic-form/node_modules/.pnpm/tsup@8.5.1_postcss@8.5.8_typescript@5.9.3/node_modules:/Users/pidan/Work/Learn/dynamic-form/node_modules/.pnpm/node_modules"
10
+ else
11
+ export NODE_PATH="/Users/pidan/Work/Learn/dynamic-form/node_modules/.pnpm/tsup@8.5.1_postcss@8.5.8_typescript@5.9.3/node_modules/tsup/dist/node_modules:/Users/pidan/Work/Learn/dynamic-form/node_modules/.pnpm/tsup@8.5.1_postcss@8.5.8_typescript@5.9.3/node_modules/tsup/node_modules:/Users/pidan/Work/Learn/dynamic-form/node_modules/.pnpm/tsup@8.5.1_postcss@8.5.8_typescript@5.9.3/node_modules:/Users/pidan/Work/Learn/dynamic-form/node_modules/.pnpm/node_modules:$NODE_PATH"
12
+ fi
13
+ if [ -x "$basedir/node" ]; then
14
+ exec "$basedir/node" "$basedir/../tsup/dist/cli-node.js" "$@"
15
+ else
16
+ exec node "$basedir/../tsup/dist/cli-node.js" "$@"
17
+ fi
@@ -0,0 +1,17 @@
1
+ #!/bin/sh
2
+ basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
3
+
4
+ case `uname` in
5
+ *CYGWIN*) basedir=`cygpath -w "$basedir"`;;
6
+ esac
7
+
8
+ if [ -z "$NODE_PATH" ]; then
9
+ export NODE_PATH="/Users/pidan/Work/Learn/dynamic-form/node_modules/.pnpm/vitest@1.6.1_@types+node@20.19.35_jsdom@22.1.0/node_modules/vitest/node_modules:/Users/pidan/Work/Learn/dynamic-form/node_modules/.pnpm/vitest@1.6.1_@types+node@20.19.35_jsdom@22.1.0/node_modules:/Users/pidan/Work/Learn/dynamic-form/node_modules/.pnpm/node_modules"
10
+ else
11
+ export NODE_PATH="/Users/pidan/Work/Learn/dynamic-form/node_modules/.pnpm/vitest@1.6.1_@types+node@20.19.35_jsdom@22.1.0/node_modules/vitest/node_modules:/Users/pidan/Work/Learn/dynamic-form/node_modules/.pnpm/vitest@1.6.1_@types+node@20.19.35_jsdom@22.1.0/node_modules:/Users/pidan/Work/Learn/dynamic-form/node_modules/.pnpm/node_modules:$NODE_PATH"
12
+ fi
13
+ if [ -x "$basedir/node" ]; then
14
+ exec "$basedir/node" "$basedir/../vitest/vitest.mjs" "$@"
15
+ else
16
+ exec node "$basedir/../vitest/vitest.mjs" "$@"
17
+ fi
@@ -0,0 +1 @@
1
+ {"version":"1.6.1","results":[[":src/index.test.ts",{"duration":2,"failed":false}]]}