@redrockswebdevelopment/formstack-code-embed 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/dist/index.d.ts +188 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +547 -0
- package/dist/index.js.map +1 -0
- package/package.json +32 -0
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,188 @@
|
|
|
1
|
+
import { type MinifyOptions } from "terser";
|
|
2
|
+
import { type UserConfig } from "vite";
|
|
3
|
+
export interface CodeEmbedEntry {
|
|
4
|
+
readonly name: string;
|
|
5
|
+
readonly input: string;
|
|
6
|
+
readonly outputFile?: string;
|
|
7
|
+
readonly globalName?: string;
|
|
8
|
+
}
|
|
9
|
+
export interface CodeEmbedBuildProfile {
|
|
10
|
+
readonly root?: string;
|
|
11
|
+
readonly outDir?: string;
|
|
12
|
+
readonly minifiedOutDir?: string;
|
|
13
|
+
readonly entries: readonly CodeEmbedEntry[];
|
|
14
|
+
readonly target?: string;
|
|
15
|
+
readonly sourcemap?: boolean;
|
|
16
|
+
readonly clean?: boolean;
|
|
17
|
+
readonly vite?: UserConfig;
|
|
18
|
+
readonly minify?: CodeEmbedMinifyOptions;
|
|
19
|
+
readonly fieldOptionTypes?: FieldOptionTypesProfile;
|
|
20
|
+
}
|
|
21
|
+
export interface FormstackManagedFormProfile {
|
|
22
|
+
readonly id?: string | number;
|
|
23
|
+
readonly name?: string;
|
|
24
|
+
readonly formBackup?: string;
|
|
25
|
+
readonly fieldTypes?: FormFieldTypesProfile;
|
|
26
|
+
readonly codeEmbeds?: Record<string, CodeEmbedBuildProfile>;
|
|
27
|
+
}
|
|
28
|
+
export interface FormstackManagedDocumentProfile {
|
|
29
|
+
readonly id?: string | number;
|
|
30
|
+
readonly name?: string;
|
|
31
|
+
readonly documentBackup?: string;
|
|
32
|
+
readonly detailsBackup?: string;
|
|
33
|
+
readonly fieldTypes?: Record<string, unknown>;
|
|
34
|
+
}
|
|
35
|
+
export interface FormstackManagedDataRouteProfile {
|
|
36
|
+
readonly id?: string | number;
|
|
37
|
+
readonly name?: string;
|
|
38
|
+
readonly routeBackup?: string;
|
|
39
|
+
readonly fieldsBackup?: string;
|
|
40
|
+
readonly rulesBackup?: string;
|
|
41
|
+
readonly deliveriesBackup?: string;
|
|
42
|
+
readonly fieldMap?: string;
|
|
43
|
+
}
|
|
44
|
+
export type FormstackWorkflowResourceKind = "form" | "dataRoute" | "document";
|
|
45
|
+
export interface FormstackWorkflowResourceRef {
|
|
46
|
+
readonly kind: FormstackWorkflowResourceKind;
|
|
47
|
+
readonly ref: string;
|
|
48
|
+
}
|
|
49
|
+
export interface FormstackWorkflowEdge {
|
|
50
|
+
readonly from: FormstackWorkflowResourceRef;
|
|
51
|
+
readonly to: FormstackWorkflowResourceRef;
|
|
52
|
+
readonly kind?: "submitsTo" | "routesTo" | "generates" | "redirectsTo" | "dependsOn" | string;
|
|
53
|
+
readonly maps?: Record<string, string>;
|
|
54
|
+
readonly description?: string;
|
|
55
|
+
}
|
|
56
|
+
export interface FormstackWorkflowProfile {
|
|
57
|
+
readonly name?: string;
|
|
58
|
+
readonly description?: string;
|
|
59
|
+
readonly forms?: readonly string[];
|
|
60
|
+
readonly dataRoutes?: readonly string[];
|
|
61
|
+
readonly documents?: readonly string[];
|
|
62
|
+
readonly lineageProfile?: string;
|
|
63
|
+
readonly edges?: readonly FormstackWorkflowEdge[];
|
|
64
|
+
}
|
|
65
|
+
export interface FormstackProjectConfig {
|
|
66
|
+
readonly codeEmbeds?: Record<string, CodeEmbedBuildProfile>;
|
|
67
|
+
readonly forms?: Record<string, FormstackManagedFormProfile>;
|
|
68
|
+
readonly dataRoutes?: Record<string, FormstackManagedDataRouteProfile>;
|
|
69
|
+
readonly documents?: Record<string, FormstackManagedDocumentProfile>;
|
|
70
|
+
readonly workflows?: Record<string, FormstackWorkflowProfile>;
|
|
71
|
+
readonly lineage?: Record<string, unknown>;
|
|
72
|
+
readonly tests?: Record<string, unknown>;
|
|
73
|
+
}
|
|
74
|
+
export interface BuildCodeEmbedsOptions extends CodeEmbedBuildProfile {
|
|
75
|
+
readonly cwd?: string;
|
|
76
|
+
}
|
|
77
|
+
export interface BuiltCodeEmbedFile {
|
|
78
|
+
readonly name: string;
|
|
79
|
+
readonly input: string;
|
|
80
|
+
readonly outputPath: string;
|
|
81
|
+
readonly bytes: number;
|
|
82
|
+
}
|
|
83
|
+
export interface BuildCodeEmbedsResult {
|
|
84
|
+
readonly outDir: string;
|
|
85
|
+
readonly files: readonly BuiltCodeEmbedFile[];
|
|
86
|
+
}
|
|
87
|
+
export interface CodeEmbedMinifyOptions {
|
|
88
|
+
readonly inputDir?: string;
|
|
89
|
+
readonly outDir?: string;
|
|
90
|
+
readonly files?: readonly string[];
|
|
91
|
+
readonly terser?: MinifyOptions;
|
|
92
|
+
}
|
|
93
|
+
export interface MinifiedCodeEmbedFile {
|
|
94
|
+
readonly fileName: string;
|
|
95
|
+
readonly inputPath: string;
|
|
96
|
+
readonly outputPath: string;
|
|
97
|
+
readonly sourceBytes: number;
|
|
98
|
+
readonly outputBytes: number;
|
|
99
|
+
}
|
|
100
|
+
export interface MinifyCodeEmbedsResult {
|
|
101
|
+
readonly outDir: string;
|
|
102
|
+
readonly files: readonly MinifiedCodeEmbedFile[];
|
|
103
|
+
}
|
|
104
|
+
export interface FormBackupFieldOption {
|
|
105
|
+
readonly label?: unknown;
|
|
106
|
+
readonly value?: unknown;
|
|
107
|
+
}
|
|
108
|
+
export interface FormBackupField {
|
|
109
|
+
readonly id?: unknown;
|
|
110
|
+
readonly type?: unknown;
|
|
111
|
+
readonly name?: unknown;
|
|
112
|
+
readonly label?: unknown;
|
|
113
|
+
readonly internal_label?: unknown;
|
|
114
|
+
readonly internalLabel?: unknown;
|
|
115
|
+
readonly default?: unknown;
|
|
116
|
+
readonly options?: unknown;
|
|
117
|
+
}
|
|
118
|
+
export interface FieldOptionTypesProfile {
|
|
119
|
+
readonly root?: string;
|
|
120
|
+
readonly formBackup: string;
|
|
121
|
+
readonly sourceFiles: readonly string[];
|
|
122
|
+
readonly outFile: string;
|
|
123
|
+
readonly fieldIds?: readonly string[];
|
|
124
|
+
readonly typeReferenceNames?: readonly string[];
|
|
125
|
+
readonly exportDeclarations?: boolean;
|
|
126
|
+
readonly allowEmpty?: boolean;
|
|
127
|
+
}
|
|
128
|
+
export interface FormFieldTypesProfile {
|
|
129
|
+
readonly root?: string;
|
|
130
|
+
readonly formBackup?: string;
|
|
131
|
+
readonly sourceFiles?: readonly string[];
|
|
132
|
+
readonly outFile: string;
|
|
133
|
+
readonly fieldIds?: readonly string[];
|
|
134
|
+
readonly typeReferenceNames?: readonly string[];
|
|
135
|
+
readonly exportDeclarations?: boolean;
|
|
136
|
+
readonly allowEmpty?: boolean;
|
|
137
|
+
readonly includeAllFields?: boolean;
|
|
138
|
+
}
|
|
139
|
+
export interface GenerateFieldOptionTypesOptions extends FieldOptionTypesProfile {
|
|
140
|
+
readonly cwd?: string;
|
|
141
|
+
readonly check?: boolean;
|
|
142
|
+
}
|
|
143
|
+
export interface GenerateFormFieldTypesOptions extends FormFieldTypesProfile {
|
|
144
|
+
readonly cwd?: string;
|
|
145
|
+
readonly formBackup: string;
|
|
146
|
+
readonly check?: boolean;
|
|
147
|
+
}
|
|
148
|
+
export interface GenerateFieldOptionTypesResult {
|
|
149
|
+
readonly root: string;
|
|
150
|
+
readonly formBackupPath: string;
|
|
151
|
+
readonly sourceFiles: readonly string[];
|
|
152
|
+
readonly outFile: string;
|
|
153
|
+
readonly fieldIds: readonly string[];
|
|
154
|
+
readonly output: string;
|
|
155
|
+
readonly changed: boolean;
|
|
156
|
+
readonly written: boolean;
|
|
157
|
+
}
|
|
158
|
+
export interface GenerateFormFieldTypesResult extends GenerateFieldOptionTypesResult {
|
|
159
|
+
}
|
|
160
|
+
export declare function defineFormstackProject<TConfig extends FormstackProjectConfig>(config: TConfig): TConfig;
|
|
161
|
+
export declare function defineCodeEmbedProfile<TProfile extends CodeEmbedBuildProfile>(profile: TProfile): TProfile;
|
|
162
|
+
export declare function extractFieldOptionTypeReferences(source: string, typeReferenceNames?: readonly string[]): readonly string[];
|
|
163
|
+
export declare function generateFieldOptionTypesDeclaration(input: {
|
|
164
|
+
readonly sourceLabel: string;
|
|
165
|
+
readonly fields: readonly FormBackupField[];
|
|
166
|
+
readonly exportDeclarations?: boolean;
|
|
167
|
+
}): string;
|
|
168
|
+
export declare function generateFormFieldTypesDeclaration(input: {
|
|
169
|
+
readonly sourceLabel: string;
|
|
170
|
+
readonly fields: readonly FormBackupField[];
|
|
171
|
+
readonly exportDeclarations?: boolean;
|
|
172
|
+
}): string;
|
|
173
|
+
export declare function generateFieldOptionTypes(options: GenerateFieldOptionTypesOptions): Promise<GenerateFieldOptionTypesResult>;
|
|
174
|
+
export declare function generateFormFieldTypes(options: GenerateFormFieldTypesOptions): Promise<GenerateFormFieldTypesResult>;
|
|
175
|
+
export declare function buildCodeEmbeds(options: BuildCodeEmbedsOptions): Promise<BuildCodeEmbedsResult>;
|
|
176
|
+
export declare function minifyCodeEmbeds(options?: CodeEmbedMinifyOptions): Promise<MinifyCodeEmbedsResult>;
|
|
177
|
+
export declare function buildAndMaybeMinifyCodeEmbeds(options: BuildCodeEmbedsOptions, shouldMinify: boolean): Promise<{
|
|
178
|
+
readonly build: BuildCodeEmbedsResult;
|
|
179
|
+
readonly minify?: MinifyCodeEmbedsResult;
|
|
180
|
+
}>;
|
|
181
|
+
export declare function loadFormstackProjectConfig(configPath: string): Promise<FormstackProjectConfig>;
|
|
182
|
+
export declare function getCodeEmbedProfile(config: FormstackProjectConfig, profileName: string): CodeEmbedBuildProfile;
|
|
183
|
+
export declare function getFormProfile(config: FormstackProjectConfig, formName: string): FormstackManagedFormProfile;
|
|
184
|
+
export declare function getFormCodeEmbedProfile(config: FormstackProjectConfig, formName: string, embedName: string): CodeEmbedBuildProfile;
|
|
185
|
+
export declare function getDocumentProfile(config: FormstackProjectConfig, documentName: string): FormstackManagedDocumentProfile;
|
|
186
|
+
export declare function getDataRouteProfile(config: FormstackProjectConfig, dataRouteName: string): FormstackManagedDataRouteProfile;
|
|
187
|
+
export declare function getWorkflowProfile(config: FormstackProjectConfig, workflowName: string): FormstackWorkflowProfile;
|
|
188
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,547 @@
|
|
|
1
|
+
import { rm, mkdir, readFile, readdir, writeFile } from "node:fs/promises";
|
|
2
|
+
import path from "node:path";
|
|
3
|
+
import { fileURLToPath, pathToFileURL } from "node:url";
|
|
4
|
+
import { minify } from "terser";
|
|
5
|
+
import { build as viteBuild, mergeConfig } from "vite";
|
|
6
|
+
export function defineFormstackProject(config) {
|
|
7
|
+
return config;
|
|
8
|
+
}
|
|
9
|
+
export function defineCodeEmbedProfile(profile) {
|
|
10
|
+
return profile;
|
|
11
|
+
}
|
|
12
|
+
function sanitizeGlobalName(value) {
|
|
13
|
+
const normalized = value
|
|
14
|
+
.replace(/^[^A-Za-z_$]+/, "")
|
|
15
|
+
.replace(/[^A-Za-z0-9_$]+/g, "_");
|
|
16
|
+
return normalized.length > 0 ? normalized : "FormstackCodeEmbed";
|
|
17
|
+
}
|
|
18
|
+
function resolveFrom(base, value) {
|
|
19
|
+
return path.isAbsolute(value) ? value : path.resolve(base, value);
|
|
20
|
+
}
|
|
21
|
+
function outputFileFor(entry) {
|
|
22
|
+
return entry.outputFile ?? `${entry.name}.js`;
|
|
23
|
+
}
|
|
24
|
+
const defaultFieldOptionTypeReferenceNames = [
|
|
25
|
+
"FieldOptionValue",
|
|
26
|
+
"FieldOptionDefault",
|
|
27
|
+
"OptionalRadioField",
|
|
28
|
+
"OptionalSelectField",
|
|
29
|
+
"DefaultedRadioField",
|
|
30
|
+
"DefaultedSelectField",
|
|
31
|
+
];
|
|
32
|
+
const optionFieldTypes = new Set(["checkbox", "radio", "select"]);
|
|
33
|
+
function readString(value) {
|
|
34
|
+
return typeof value === "string" && value.length > 0 ? value : null;
|
|
35
|
+
}
|
|
36
|
+
function readFieldId(field) {
|
|
37
|
+
const id = typeof field.id === "number" || typeof field.id === "string" ? String(field.id) : "";
|
|
38
|
+
if (id.length === 0) {
|
|
39
|
+
throw new TypeError("Encountered an option field without a usable id.");
|
|
40
|
+
}
|
|
41
|
+
return id;
|
|
42
|
+
}
|
|
43
|
+
function readFieldType(field) {
|
|
44
|
+
return readString(field.type) ?? "unknown";
|
|
45
|
+
}
|
|
46
|
+
function readFieldLabel(field) {
|
|
47
|
+
return readString(field.internal_label) ?? readString(field.internalLabel) ?? readString(field.name) ?? readString(field.label) ?? "unnamed field";
|
|
48
|
+
}
|
|
49
|
+
function fieldKeyBase(field) {
|
|
50
|
+
return readString(field.internal_label) ?? readString(field.internalLabel) ?? readString(field.name) ?? readString(field.label) ?? `field ${readFieldId(field)}`;
|
|
51
|
+
}
|
|
52
|
+
function sanitizeFieldKey(value) {
|
|
53
|
+
const parts = value
|
|
54
|
+
.trim()
|
|
55
|
+
.replace(/([a-z0-9])([A-Z])/g, "$1 $2")
|
|
56
|
+
.split(/[^A-Za-z0-9]+/)
|
|
57
|
+
.filter((part) => part.length > 0);
|
|
58
|
+
if (parts.length === 0) {
|
|
59
|
+
return "field";
|
|
60
|
+
}
|
|
61
|
+
const [first, ...rest] = parts;
|
|
62
|
+
const key = [
|
|
63
|
+
first?.toLowerCase() ?? "field",
|
|
64
|
+
...rest.map((part) => `${part.charAt(0).toUpperCase()}${part.slice(1).toLowerCase()}`),
|
|
65
|
+
].join("");
|
|
66
|
+
return /^[A-Za-z_$]/.test(key) ? key : `field${key.charAt(0).toUpperCase()}${key.slice(1)}`;
|
|
67
|
+
}
|
|
68
|
+
function uniqueFieldKeys(fields) {
|
|
69
|
+
const counts = new Map();
|
|
70
|
+
const keys = new Map();
|
|
71
|
+
for (const field of fields) {
|
|
72
|
+
const baseKey = sanitizeFieldKey(fieldKeyBase(field));
|
|
73
|
+
const count = counts.get(baseKey) ?? 0;
|
|
74
|
+
counts.set(baseKey, count + 1);
|
|
75
|
+
keys.set(field, count === 0 ? baseKey : `${baseKey}${readFieldId(field)}`);
|
|
76
|
+
}
|
|
77
|
+
return keys;
|
|
78
|
+
}
|
|
79
|
+
function escapeForComment(value) {
|
|
80
|
+
return String(value ?? "").replace(/\*\//g, "* /");
|
|
81
|
+
}
|
|
82
|
+
function escapeStringLiteral(value) {
|
|
83
|
+
return JSON.stringify(value).replace(/\u2028/g, "\\u2028").replace(/\u2029/g, "\\u2029");
|
|
84
|
+
}
|
|
85
|
+
function isOptionField(field) {
|
|
86
|
+
return optionFieldTypes.has(readFieldType(field)) && Array.isArray(field.options);
|
|
87
|
+
}
|
|
88
|
+
function getBackupFields(backup) {
|
|
89
|
+
if (backup && typeof backup === "object" && Array.isArray(backup.fields)) {
|
|
90
|
+
return backup.fields;
|
|
91
|
+
}
|
|
92
|
+
throw new TypeError("Form backup JSON must contain a top-level fields array.");
|
|
93
|
+
}
|
|
94
|
+
function normalizeOptionValues(field) {
|
|
95
|
+
if (!Array.isArray(field.options)) {
|
|
96
|
+
throw new TypeError(`Field ${readFieldId(field)} does not have an options array.`);
|
|
97
|
+
}
|
|
98
|
+
const values = [];
|
|
99
|
+
const seen = new Set();
|
|
100
|
+
for (const option of field.options) {
|
|
101
|
+
if (!option || typeof option.value !== "string") {
|
|
102
|
+
throw new TypeError(`Field ${readFieldId(field)} has an option without a string value.`);
|
|
103
|
+
}
|
|
104
|
+
if (seen.has(option.value)) {
|
|
105
|
+
throw new TypeError(`Field ${readFieldId(field)} has duplicate option value: ${option.value}`);
|
|
106
|
+
}
|
|
107
|
+
seen.add(option.value);
|
|
108
|
+
values.push(option.value);
|
|
109
|
+
}
|
|
110
|
+
if (values.length === 0) {
|
|
111
|
+
throw new TypeError(`Field ${readFieldId(field)} has no options.`);
|
|
112
|
+
}
|
|
113
|
+
return values;
|
|
114
|
+
}
|
|
115
|
+
function getDefaultOptionValue(field, values) {
|
|
116
|
+
return typeof field.default === "string" && values.includes(field.default) ? field.default : null;
|
|
117
|
+
}
|
|
118
|
+
function escapeRegExp(value) {
|
|
119
|
+
return value.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
|
|
120
|
+
}
|
|
121
|
+
export function extractFieldOptionTypeReferences(source, typeReferenceNames = defaultFieldOptionTypeReferenceNames) {
|
|
122
|
+
if (typeReferenceNames.length === 0) {
|
|
123
|
+
throw new Error("At least one field option type reference name is required.");
|
|
124
|
+
}
|
|
125
|
+
const quotePattern = "[\"'`]";
|
|
126
|
+
const pattern = new RegExp(`\\b(?:${typeReferenceNames.map(escapeRegExp).join("|")})\\s*<\\s*${quotePattern}([^"'\`]+)${quotePattern}\\s*>`, "g");
|
|
127
|
+
const fieldIds = [];
|
|
128
|
+
const seen = new Set();
|
|
129
|
+
for (const match of source.matchAll(pattern)) {
|
|
130
|
+
const fieldId = match[1];
|
|
131
|
+
if (fieldId && !seen.has(fieldId)) {
|
|
132
|
+
seen.add(fieldId);
|
|
133
|
+
fieldIds.push(fieldId);
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
return fieldIds;
|
|
137
|
+
}
|
|
138
|
+
function selectFieldsByIds(fields, fieldIds) {
|
|
139
|
+
const fieldById = new Map(fields.map((field) => [readFieldId(field), field]));
|
|
140
|
+
const selectedFields = [];
|
|
141
|
+
for (const fieldId of fieldIds) {
|
|
142
|
+
const field = fieldById.get(fieldId);
|
|
143
|
+
if (!field) {
|
|
144
|
+
throw new TypeError(`Field ${fieldId} was requested but is missing from the backup JSON.`);
|
|
145
|
+
}
|
|
146
|
+
if (!isOptionField(field)) {
|
|
147
|
+
throw new TypeError(`Field ${fieldId} was requested but is not a checkbox, radio, or select field with options.`);
|
|
148
|
+
}
|
|
149
|
+
selectedFields.push(field);
|
|
150
|
+
}
|
|
151
|
+
return selectedFields;
|
|
152
|
+
}
|
|
153
|
+
function selectBackupFields(fields, fieldIds, includeAllFields) {
|
|
154
|
+
return fieldIds.length === 0 && includeAllFields ? fields : selectFieldsByIds(fields, fieldIds);
|
|
155
|
+
}
|
|
156
|
+
export function generateFieldOptionTypesDeclaration(input) {
|
|
157
|
+
const declarationPrefix = input.exportDeclarations === true ? "export " : "";
|
|
158
|
+
const defaults = [];
|
|
159
|
+
const lines = [
|
|
160
|
+
"// Auto-generated by fspt code-embed field-options.",
|
|
161
|
+
"// Do not edit by hand.",
|
|
162
|
+
`// Source backup: ${input.sourceLabel}`,
|
|
163
|
+
"",
|
|
164
|
+
`${declarationPrefix}interface FormFieldOptionValues {`,
|
|
165
|
+
];
|
|
166
|
+
for (const field of input.fields) {
|
|
167
|
+
const fieldId = readFieldId(field);
|
|
168
|
+
const values = normalizeOptionValues(field);
|
|
169
|
+
const defaultValue = getDefaultOptionValue(field, values);
|
|
170
|
+
lines.push(` /** ${escapeForComment(readFieldType(field))}: ${escapeForComment(readFieldLabel(field))} */`);
|
|
171
|
+
lines.push(` "${fieldId}": ${values.map(escapeStringLiteral).join(" | ")};`);
|
|
172
|
+
if (defaultValue !== null) {
|
|
173
|
+
defaults.push({ field, fieldId, defaultValue });
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
lines.push("}");
|
|
177
|
+
lines.push("");
|
|
178
|
+
lines.push(`${declarationPrefix}interface FormFieldOptionDefaults {`);
|
|
179
|
+
for (const { field, fieldId, defaultValue } of defaults) {
|
|
180
|
+
lines.push(` /** ${escapeForComment(readFieldType(field))}: ${escapeForComment(readFieldLabel(field))} */`);
|
|
181
|
+
lines.push(` "${fieldId}": ${escapeStringLiteral(defaultValue)};`);
|
|
182
|
+
}
|
|
183
|
+
lines.push("}");
|
|
184
|
+
lines.push("");
|
|
185
|
+
lines.push(`${declarationPrefix}type FieldOptionValue<TFieldId extends keyof FormFieldOptionValues> = FormFieldOptionValues[TFieldId];`);
|
|
186
|
+
lines.push(`${declarationPrefix}type FieldOptionDefault<TFieldId extends keyof FormFieldOptionDefaults> = FormFieldOptionDefaults[TFieldId];`);
|
|
187
|
+
lines.push("");
|
|
188
|
+
return lines.join("\n");
|
|
189
|
+
}
|
|
190
|
+
export function generateFormFieldTypesDeclaration(input) {
|
|
191
|
+
const declarationPrefix = input.exportDeclarations === true ? "export " : "";
|
|
192
|
+
const fieldKeys = uniqueFieldKeys(input.fields);
|
|
193
|
+
const optionFields = input.fields.filter(isOptionField);
|
|
194
|
+
const optionKeys = uniqueFieldKeys(optionFields);
|
|
195
|
+
const defaults = [];
|
|
196
|
+
const lines = [
|
|
197
|
+
"// Auto-generated by fspt forms field-types.",
|
|
198
|
+
"// Do not edit by hand.",
|
|
199
|
+
`// Source backup: ${input.sourceLabel}`,
|
|
200
|
+
"",
|
|
201
|
+
`${declarationPrefix}interface FormFieldIds {`,
|
|
202
|
+
];
|
|
203
|
+
for (const field of input.fields) {
|
|
204
|
+
lines.push(` /** ${escapeForComment(readFieldType(field))}: ${escapeForComment(readFieldLabel(field))} */`);
|
|
205
|
+
lines.push(` ${fieldKeys.get(field)}: ${escapeStringLiteral(readFieldId(field))};`);
|
|
206
|
+
}
|
|
207
|
+
lines.push("}");
|
|
208
|
+
lines.push("");
|
|
209
|
+
lines.push(`${declarationPrefix}interface FormFieldKinds {`);
|
|
210
|
+
for (const field of input.fields) {
|
|
211
|
+
lines.push(` ${fieldKeys.get(field)}: ${escapeStringLiteral(readFieldType(field))};`);
|
|
212
|
+
}
|
|
213
|
+
lines.push("}");
|
|
214
|
+
lines.push("");
|
|
215
|
+
lines.push(`${declarationPrefix}interface FormFieldOptionValues {`);
|
|
216
|
+
for (const field of optionFields) {
|
|
217
|
+
const fieldId = readFieldId(field);
|
|
218
|
+
const values = normalizeOptionValues(field);
|
|
219
|
+
const defaultValue = getDefaultOptionValue(field, values);
|
|
220
|
+
lines.push(` /** ${escapeForComment(readFieldType(field))}: ${escapeForComment(readFieldLabel(field))} */`);
|
|
221
|
+
lines.push(` "${fieldId}": ${values.map(escapeStringLiteral).join(" | ")};`);
|
|
222
|
+
if (defaultValue !== null) {
|
|
223
|
+
defaults.push({ field, fieldId, defaultValue });
|
|
224
|
+
}
|
|
225
|
+
}
|
|
226
|
+
lines.push("}");
|
|
227
|
+
lines.push("");
|
|
228
|
+
lines.push(`${declarationPrefix}interface FormFieldOptionValuesByKey {`);
|
|
229
|
+
for (const field of optionFields) {
|
|
230
|
+
const values = normalizeOptionValues(field);
|
|
231
|
+
lines.push(` /** ${escapeForComment(readFieldType(field))}: ${escapeForComment(readFieldLabel(field))} */`);
|
|
232
|
+
lines.push(` ${optionKeys.get(field)}: ${values.map(escapeStringLiteral).join(" | ")};`);
|
|
233
|
+
}
|
|
234
|
+
lines.push("}");
|
|
235
|
+
lines.push("");
|
|
236
|
+
lines.push(`${declarationPrefix}interface FormFieldOptionDefaults {`);
|
|
237
|
+
for (const { field, fieldId, defaultValue } of defaults) {
|
|
238
|
+
lines.push(` /** ${escapeForComment(readFieldType(field))}: ${escapeForComment(readFieldLabel(field))} */`);
|
|
239
|
+
lines.push(` "${fieldId}": ${escapeStringLiteral(defaultValue)};`);
|
|
240
|
+
}
|
|
241
|
+
lines.push("}");
|
|
242
|
+
lines.push("");
|
|
243
|
+
lines.push(`${declarationPrefix}type FormFieldKey = keyof FormFieldIds;`);
|
|
244
|
+
lines.push(`${declarationPrefix}type FormFieldId<TFieldKey extends FormFieldKey> = FormFieldIds[TFieldKey];`);
|
|
245
|
+
lines.push(`${declarationPrefix}type FormFieldKind<TFieldKey extends keyof FormFieldKinds> = FormFieldKinds[TFieldKey];`);
|
|
246
|
+
lines.push(`${declarationPrefix}type FormFieldOptionValue<TFieldKey extends keyof FormFieldOptionValuesByKey> = FormFieldOptionValuesByKey[TFieldKey];`);
|
|
247
|
+
lines.push(`${declarationPrefix}type FieldOptionValue<TFieldId extends keyof FormFieldOptionValues> = FormFieldOptionValues[TFieldId];`);
|
|
248
|
+
lines.push(`${declarationPrefix}type FieldOptionDefault<TFieldId extends keyof FormFieldOptionDefaults> = FormFieldOptionDefaults[TFieldId];`);
|
|
249
|
+
lines.push("");
|
|
250
|
+
return lines.join("\n");
|
|
251
|
+
}
|
|
252
|
+
async function readExistingFile(filePath) {
|
|
253
|
+
try {
|
|
254
|
+
return await readFile(filePath, "utf8");
|
|
255
|
+
}
|
|
256
|
+
catch (error) {
|
|
257
|
+
if (error.code === "ENOENT") {
|
|
258
|
+
return null;
|
|
259
|
+
}
|
|
260
|
+
throw error;
|
|
261
|
+
}
|
|
262
|
+
}
|
|
263
|
+
function uniqueFieldIds(fieldIds) {
|
|
264
|
+
const unique = [];
|
|
265
|
+
const seen = new Set();
|
|
266
|
+
for (const fieldId of fieldIds) {
|
|
267
|
+
const normalized = fieldId.trim();
|
|
268
|
+
if (normalized.length > 0 && !seen.has(normalized)) {
|
|
269
|
+
seen.add(normalized);
|
|
270
|
+
unique.push(normalized);
|
|
271
|
+
}
|
|
272
|
+
}
|
|
273
|
+
return unique;
|
|
274
|
+
}
|
|
275
|
+
export async function generateFieldOptionTypes(options) {
|
|
276
|
+
const cwd = options.cwd ? path.resolve(options.cwd) : process.cwd();
|
|
277
|
+
const root = options.root ? resolveFrom(cwd, options.root) : cwd;
|
|
278
|
+
const formBackupPath = resolveFrom(root, options.formBackup);
|
|
279
|
+
const outFile = resolveFrom(root, options.outFile);
|
|
280
|
+
const sourceFiles = options.sourceFiles.map((sourceFile) => resolveFrom(root, sourceFile));
|
|
281
|
+
let fieldIds = uniqueFieldIds(options.fieldIds ?? []);
|
|
282
|
+
if (fieldIds.length === 0) {
|
|
283
|
+
const discovered = [];
|
|
284
|
+
for (const sourceFile of sourceFiles) {
|
|
285
|
+
discovered.push(...extractFieldOptionTypeReferences(await readFile(sourceFile, "utf8"), options.typeReferenceNames));
|
|
286
|
+
}
|
|
287
|
+
fieldIds = uniqueFieldIds(discovered);
|
|
288
|
+
}
|
|
289
|
+
if (fieldIds.length === 0 && options.allowEmpty !== true) {
|
|
290
|
+
throw new Error(`No field option type references were found in source files: ${sourceFiles.join(", ")}`);
|
|
291
|
+
}
|
|
292
|
+
const backup = JSON.parse(await readFile(formBackupPath, "utf8"));
|
|
293
|
+
const fields = selectFieldsByIds(getBackupFields(backup), fieldIds);
|
|
294
|
+
const output = generateFieldOptionTypesDeclaration({
|
|
295
|
+
sourceLabel: path.relative(root, formBackupPath).split(path.sep).join("/"),
|
|
296
|
+
fields,
|
|
297
|
+
...(options.exportDeclarations === undefined ? {} : { exportDeclarations: options.exportDeclarations }),
|
|
298
|
+
});
|
|
299
|
+
const current = await readExistingFile(outFile);
|
|
300
|
+
const changed = current !== output;
|
|
301
|
+
if (!options.check) {
|
|
302
|
+
await mkdir(path.dirname(outFile), { recursive: true });
|
|
303
|
+
await writeFile(outFile, output, "utf8");
|
|
304
|
+
}
|
|
305
|
+
return {
|
|
306
|
+
root,
|
|
307
|
+
formBackupPath,
|
|
308
|
+
sourceFiles,
|
|
309
|
+
outFile,
|
|
310
|
+
fieldIds,
|
|
311
|
+
output,
|
|
312
|
+
changed,
|
|
313
|
+
written: !options.check,
|
|
314
|
+
};
|
|
315
|
+
}
|
|
316
|
+
export async function generateFormFieldTypes(options) {
|
|
317
|
+
const cwd = options.cwd ? path.resolve(options.cwd) : process.cwd();
|
|
318
|
+
const root = options.root ? resolveFrom(cwd, options.root) : cwd;
|
|
319
|
+
const formBackupPath = resolveFrom(root, options.formBackup);
|
|
320
|
+
const outFile = resolveFrom(root, options.outFile);
|
|
321
|
+
const sourceFiles = (options.sourceFiles ?? []).map((sourceFile) => resolveFrom(root, sourceFile));
|
|
322
|
+
let fieldIds = uniqueFieldIds(options.fieldIds ?? []);
|
|
323
|
+
if (fieldIds.length === 0 && options.includeAllFields !== true) {
|
|
324
|
+
const discovered = [];
|
|
325
|
+
for (const sourceFile of sourceFiles) {
|
|
326
|
+
discovered.push(...extractFieldOptionTypeReferences(await readFile(sourceFile, "utf8"), options.typeReferenceNames));
|
|
327
|
+
}
|
|
328
|
+
fieldIds = uniqueFieldIds(discovered);
|
|
329
|
+
}
|
|
330
|
+
if (fieldIds.length === 0 && options.includeAllFields !== true && options.allowEmpty !== true) {
|
|
331
|
+
throw new Error(`No field type references were found in source files: ${sourceFiles.join(", ")}`);
|
|
332
|
+
}
|
|
333
|
+
const backup = JSON.parse(await readFile(formBackupPath, "utf8"));
|
|
334
|
+
const fields = selectBackupFields(getBackupFields(backup), fieldIds, options.includeAllFields === true);
|
|
335
|
+
const output = generateFormFieldTypesDeclaration({
|
|
336
|
+
sourceLabel: path.relative(root, formBackupPath).split(path.sep).join("/"),
|
|
337
|
+
fields,
|
|
338
|
+
...(options.exportDeclarations === undefined ? {} : { exportDeclarations: options.exportDeclarations }),
|
|
339
|
+
});
|
|
340
|
+
const current = await readExistingFile(outFile);
|
|
341
|
+
const changed = current !== output;
|
|
342
|
+
if (!options.check) {
|
|
343
|
+
await mkdir(path.dirname(outFile), { recursive: true });
|
|
344
|
+
await writeFile(outFile, output, "utf8");
|
|
345
|
+
}
|
|
346
|
+
return {
|
|
347
|
+
root,
|
|
348
|
+
formBackupPath,
|
|
349
|
+
sourceFiles,
|
|
350
|
+
outFile,
|
|
351
|
+
fieldIds: fields.map(readFieldId),
|
|
352
|
+
output,
|
|
353
|
+
changed,
|
|
354
|
+
written: !options.check,
|
|
355
|
+
};
|
|
356
|
+
}
|
|
357
|
+
const liveFormApiToolsPackage = "@redrockswebdevelopment/formstack-live-form-api-tools";
|
|
358
|
+
function isLiveFormApiToolsImport(source) {
|
|
359
|
+
return source === liveFormApiToolsPackage || source.startsWith(`${liveFormApiToolsPackage}/`);
|
|
360
|
+
}
|
|
361
|
+
function createLiveFormApiToolsResolver() {
|
|
362
|
+
return {
|
|
363
|
+
name: "fspt-live-form-api-tools-resolver",
|
|
364
|
+
enforce: "pre",
|
|
365
|
+
resolveId(source) {
|
|
366
|
+
if (!isLiveFormApiToolsImport(source)) {
|
|
367
|
+
return null;
|
|
368
|
+
}
|
|
369
|
+
return fileURLToPath(import.meta.resolve(source));
|
|
370
|
+
},
|
|
371
|
+
};
|
|
372
|
+
}
|
|
373
|
+
async function getFileBytes(filePath) {
|
|
374
|
+
return Buffer.byteLength(await readFile(filePath));
|
|
375
|
+
}
|
|
376
|
+
export async function buildCodeEmbeds(options) {
|
|
377
|
+
const cwd = options.cwd ? path.resolve(options.cwd) : process.cwd();
|
|
378
|
+
const root = options.root ? resolveFrom(cwd, options.root) : cwd;
|
|
379
|
+
const outDir = resolveFrom(root, options.outDir ?? "dist-code-embed");
|
|
380
|
+
const clean = options.clean ?? true;
|
|
381
|
+
if (options.entries.length === 0) {
|
|
382
|
+
throw new Error("At least one Code Embed entry is required.");
|
|
383
|
+
}
|
|
384
|
+
if (clean) {
|
|
385
|
+
await rm(outDir, { recursive: true, force: true });
|
|
386
|
+
}
|
|
387
|
+
await mkdir(outDir, { recursive: true });
|
|
388
|
+
const files = [];
|
|
389
|
+
for (const entry of options.entries) {
|
|
390
|
+
const input = resolveFrom(root, entry.input);
|
|
391
|
+
const outputFile = outputFileFor(entry);
|
|
392
|
+
const outputPath = path.join(outDir, outputFile);
|
|
393
|
+
const globalName = sanitizeGlobalName(entry.globalName ?? `FormstackCodeEmbed_${entry.name}`);
|
|
394
|
+
const baseConfig = {
|
|
395
|
+
root,
|
|
396
|
+
configFile: false,
|
|
397
|
+
publicDir: false,
|
|
398
|
+
logLevel: "warn",
|
|
399
|
+
plugins: [createLiveFormApiToolsResolver()],
|
|
400
|
+
build: {
|
|
401
|
+
emptyOutDir: false,
|
|
402
|
+
outDir,
|
|
403
|
+
sourcemap: options.sourcemap ?? false,
|
|
404
|
+
target: options.target ?? "es2020",
|
|
405
|
+
minify: false,
|
|
406
|
+
lib: {
|
|
407
|
+
entry: input,
|
|
408
|
+
name: globalName,
|
|
409
|
+
formats: ["iife"],
|
|
410
|
+
fileName: () => outputFile,
|
|
411
|
+
},
|
|
412
|
+
rollupOptions: {
|
|
413
|
+
output: {
|
|
414
|
+
extend: true,
|
|
415
|
+
inlineDynamicImports: true,
|
|
416
|
+
},
|
|
417
|
+
},
|
|
418
|
+
},
|
|
419
|
+
};
|
|
420
|
+
await viteBuild(mergeConfig(baseConfig, options.vite ?? {}));
|
|
421
|
+
files.push({
|
|
422
|
+
name: entry.name,
|
|
423
|
+
input,
|
|
424
|
+
outputPath,
|
|
425
|
+
bytes: await getFileBytes(outputPath),
|
|
426
|
+
});
|
|
427
|
+
}
|
|
428
|
+
return { outDir, files };
|
|
429
|
+
}
|
|
430
|
+
const defaultTerserOptions = {
|
|
431
|
+
ecma: 2015,
|
|
432
|
+
module: false,
|
|
433
|
+
compress: {
|
|
434
|
+
passes: 2,
|
|
435
|
+
toplevel: false,
|
|
436
|
+
},
|
|
437
|
+
mangle: {
|
|
438
|
+
toplevel: false,
|
|
439
|
+
},
|
|
440
|
+
format: {
|
|
441
|
+
comments: false,
|
|
442
|
+
},
|
|
443
|
+
};
|
|
444
|
+
async function listJavaScriptFiles(inputDir) {
|
|
445
|
+
return (await readdir(inputDir))
|
|
446
|
+
.filter((fileName) => fileName.endsWith(".js"))
|
|
447
|
+
.sort((a, b) => a.localeCompare(b, "en", { numeric: true }));
|
|
448
|
+
}
|
|
449
|
+
export async function minifyCodeEmbeds(options = {}) {
|
|
450
|
+
const inputDir = path.resolve(options.inputDir ?? "dist-code-embed");
|
|
451
|
+
const outDir = path.resolve(options.outDir ?? inputDir);
|
|
452
|
+
const files = options.files ? [...options.files] : await listJavaScriptFiles(inputDir);
|
|
453
|
+
const terserOptions = {
|
|
454
|
+
...defaultTerserOptions,
|
|
455
|
+
...(options.terser ?? {}),
|
|
456
|
+
};
|
|
457
|
+
const minifiedFiles = [];
|
|
458
|
+
await mkdir(outDir, { recursive: true });
|
|
459
|
+
for (const fileName of files) {
|
|
460
|
+
const inputPath = path.join(inputDir, fileName);
|
|
461
|
+
const outputPath = path.join(outDir, fileName);
|
|
462
|
+
const source = await readFile(inputPath, "utf8");
|
|
463
|
+
const result = await minify(source, terserOptions);
|
|
464
|
+
if (!result.code) {
|
|
465
|
+
throw new Error(`Terser did not produce output for ${fileName}.`);
|
|
466
|
+
}
|
|
467
|
+
await writeFile(outputPath, `${result.code}\n`, "utf8");
|
|
468
|
+
minifiedFiles.push({
|
|
469
|
+
fileName,
|
|
470
|
+
inputPath,
|
|
471
|
+
outputPath,
|
|
472
|
+
sourceBytes: Buffer.byteLength(source),
|
|
473
|
+
outputBytes: Buffer.byteLength(result.code),
|
|
474
|
+
});
|
|
475
|
+
}
|
|
476
|
+
return { outDir, files: minifiedFiles };
|
|
477
|
+
}
|
|
478
|
+
export async function buildAndMaybeMinifyCodeEmbeds(options, shouldMinify) {
|
|
479
|
+
const build = await buildCodeEmbeds(options);
|
|
480
|
+
if (!shouldMinify) {
|
|
481
|
+
return { build };
|
|
482
|
+
}
|
|
483
|
+
const minifyOptions = options.minify ?? {};
|
|
484
|
+
const minified = await minifyCodeEmbeds({
|
|
485
|
+
...minifyOptions,
|
|
486
|
+
inputDir: minifyOptions.inputDir ?? build.outDir,
|
|
487
|
+
outDir: minifyOptions.outDir ?? resolveFrom(options.root ? resolveFrom(options.cwd ?? process.cwd(), options.root) : (options.cwd ?? process.cwd()), options.minifiedOutDir ?? "dist-code-embed-min"),
|
|
488
|
+
files: minifyOptions.files ?? build.files.map((file) => path.basename(file.outputPath)),
|
|
489
|
+
});
|
|
490
|
+
return { build, minify: minified };
|
|
491
|
+
}
|
|
492
|
+
export async function loadFormstackProjectConfig(configPath) {
|
|
493
|
+
const resolvedPath = path.resolve(configPath);
|
|
494
|
+
if (resolvedPath.endsWith(".json")) {
|
|
495
|
+
return JSON.parse(await readFile(resolvedPath, "utf8"));
|
|
496
|
+
}
|
|
497
|
+
const module = (await import(pathToFileURL(resolvedPath).href));
|
|
498
|
+
const config = module.default;
|
|
499
|
+
if (!config || typeof config !== "object") {
|
|
500
|
+
throw new Error(`Config ${resolvedPath} must export a project object as default.`);
|
|
501
|
+
}
|
|
502
|
+
return config;
|
|
503
|
+
}
|
|
504
|
+
export function getCodeEmbedProfile(config, profileName) {
|
|
505
|
+
const profile = config.codeEmbeds?.[profileName];
|
|
506
|
+
if (!profile) {
|
|
507
|
+
throw new Error(`Code Embed profile "${profileName}" was not found in config.`);
|
|
508
|
+
}
|
|
509
|
+
return profile;
|
|
510
|
+
}
|
|
511
|
+
export function getFormProfile(config, formName) {
|
|
512
|
+
const profile = config.forms?.[formName];
|
|
513
|
+
if (!profile) {
|
|
514
|
+
throw new Error(`Form profile "${formName}" was not found in config.`);
|
|
515
|
+
}
|
|
516
|
+
return profile;
|
|
517
|
+
}
|
|
518
|
+
export function getFormCodeEmbedProfile(config, formName, embedName) {
|
|
519
|
+
const form = getFormProfile(config, formName);
|
|
520
|
+
const profile = form.codeEmbeds?.[embedName];
|
|
521
|
+
if (!profile) {
|
|
522
|
+
throw new Error(`Code Embed profile "${embedName}" was not found on form "${formName}".`);
|
|
523
|
+
}
|
|
524
|
+
return profile;
|
|
525
|
+
}
|
|
526
|
+
export function getDocumentProfile(config, documentName) {
|
|
527
|
+
const profile = config.documents?.[documentName];
|
|
528
|
+
if (!profile) {
|
|
529
|
+
throw new Error(`Document profile "${documentName}" was not found in config.`);
|
|
530
|
+
}
|
|
531
|
+
return profile;
|
|
532
|
+
}
|
|
533
|
+
export function getDataRouteProfile(config, dataRouteName) {
|
|
534
|
+
const profile = config.dataRoutes?.[dataRouteName];
|
|
535
|
+
if (!profile) {
|
|
536
|
+
throw new Error(`Data route profile "${dataRouteName}" was not found in config.`);
|
|
537
|
+
}
|
|
538
|
+
return profile;
|
|
539
|
+
}
|
|
540
|
+
export function getWorkflowProfile(config, workflowName) {
|
|
541
|
+
const profile = config.workflows?.[workflowName];
|
|
542
|
+
if (!profile) {
|
|
543
|
+
throw new Error(`Workflow profile "${workflowName}" was not found in config.`);
|
|
544
|
+
}
|
|
545
|
+
return profile;
|
|
546
|
+
}
|
|
547
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
ADDED
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@redrockswebdevelopment/formstack-code-embed",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"type": "module",
|
|
5
|
+
"description": "Vite build and minification harness for Formstack Code Embed JavaScript projects.",
|
|
6
|
+
"main": "dist/index.js",
|
|
7
|
+
"types": "dist/index.d.ts",
|
|
8
|
+
"exports": {
|
|
9
|
+
".": {
|
|
10
|
+
"types": "./dist/index.d.ts",
|
|
11
|
+
"import": "./dist/index.js"
|
|
12
|
+
}
|
|
13
|
+
},
|
|
14
|
+
"files": [
|
|
15
|
+
"dist"
|
|
16
|
+
],
|
|
17
|
+
"dependencies": {
|
|
18
|
+
"@redrockswebdevelopment/formstack-live-form-api-tools": "0.1.0",
|
|
19
|
+
"terser": "^5.47.1",
|
|
20
|
+
"vite": "^7.3.3"
|
|
21
|
+
},
|
|
22
|
+
"devDependencies": {
|
|
23
|
+
"@types/node": "^25.7.0",
|
|
24
|
+
"typescript": "^5.9.0",
|
|
25
|
+
"vitest": "^4.1.6"
|
|
26
|
+
},
|
|
27
|
+
"scripts": {
|
|
28
|
+
"build": "tsc -p tsconfig.json",
|
|
29
|
+
"typecheck": "tsc -p tsconfig.json --noEmit",
|
|
30
|
+
"test": "vitest run"
|
|
31
|
+
}
|
|
32
|
+
}
|