@underpeaks/generator-core 1.0.27 → 1.0.29
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 +3 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -0
- package/dist/index.js.map +1 -1
- package/dist/insertion/field-insertion.d.ts +45 -0
- package/dist/insertion/field-insertion.d.ts.map +1 -0
- package/dist/insertion/field-insertion.js +95 -0
- package/dist/insertion/field-insertion.js.map +1 -0
- package/dist/manifest/manifest.d.ts +5 -2
- package/dist/manifest/manifest.d.ts.map +1 -1
- package/dist/manifest/manifest.js +9 -0
- package/dist/manifest/manifest.js.map +1 -1
- package/dist/scan/resolve-widgets.d.ts +20 -0
- package/dist/scan/resolve-widgets.d.ts.map +1 -0
- package/dist/scan/resolve-widgets.js +30 -0
- package/dist/scan/resolve-widgets.js.map +1 -0
- package/dist/scan/scan-ui-types.d.ts +16 -0
- package/dist/scan/scan-ui-types.d.ts.map +1 -0
- package/dist/scan/scan-ui-types.js +50 -0
- package/dist/scan/scan-ui-types.js.map +1 -0
- package/dist/schema/page-template-types.d.ts +9 -0
- package/dist/schema/page-template-types.d.ts.map +1 -0
- package/dist/schema/page-template-types.js +54 -0
- package/dist/schema/page-template-types.js.map +1 -0
- package/dist/schema/types.d.ts +1 -0
- package/dist/schema/types.d.ts.map +1 -1
- package/package.json +1 -1
- package/dist/routes/parser.d.ts +0 -1
- package/dist/routes/parser.d.ts.map +0 -1
- package/dist/routes/parser.js +0 -2
- package/dist/routes/parser.js.map +0 -1
- package/dist/theme/mapper.d.ts +0 -1
- package/dist/theme/mapper.d.ts.map +0 -1
- package/dist/theme/mapper.js +0 -2
- package/dist/theme/mapper.js.map +0 -1
package/dist/index.d.ts
CHANGED
|
@@ -1,4 +1,7 @@
|
|
|
1
1
|
export * from './schema/types';
|
|
2
2
|
export * from './schema/parser';
|
|
3
|
+
export * from './schema/page-template-types';
|
|
3
4
|
export * from './manifest/manifest';
|
|
5
|
+
export * from './scan/scan-ui-types';
|
|
6
|
+
export * from './scan/resolve-widgets';
|
|
4
7
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,cAAc,gBAAgB,CAAA;AAC9B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,qBAAqB,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,cAAc,gBAAgB,CAAA;AAC9B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,8BAA8B,CAAA;AAC5C,cAAc,qBAAqB,CAAA;AACnC,cAAc,sBAAsB,CAAA;AACpC,cAAc,wBAAwB,CAAA"}
|
package/dist/index.js
CHANGED
|
@@ -17,5 +17,8 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
17
17
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
18
|
__exportStar(require("./schema/types"), exports);
|
|
19
19
|
__exportStar(require("./schema/parser"), exports);
|
|
20
|
+
__exportStar(require("./schema/page-template-types"), exports);
|
|
20
21
|
__exportStar(require("./manifest/manifest"), exports);
|
|
22
|
+
__exportStar(require("./scan/scan-ui-types"), exports);
|
|
23
|
+
__exportStar(require("./scan/resolve-widgets"), exports);
|
|
21
24
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA,gEAAgE;;;;;;;;;;;;;;;;AAEhE,iDAA8B;AAC9B,kDAA+B;AAC/B,sDAAmC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA,gEAAgE;;;;;;;;;;;;;;;;AAEhE,iDAA8B;AAC9B,kDAA+B;AAC/B,+DAA4C;AAC5C,sDAAmC;AACnC,uDAAoC;AACpC,yDAAsC"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
export declare const NXF_INSERT_MARKER = "NXF:INSERT-FIELDS-HERE";
|
|
2
|
+
/**
|
|
3
|
+
* The marker comment block inserted once, at first generation, into
|
|
4
|
+
* every page that renders per-field content. `commentPrefix` is '//' for
|
|
5
|
+
* both Dart and TSX, so this is trivially shared — kept as a parameter
|
|
6
|
+
* rather than hardcoded in case a future target language needs a
|
|
7
|
+
* different comment syntax (e.g. '#').
|
|
8
|
+
*/
|
|
9
|
+
export declare function buildMarkerComment(commentPrefix?: string): string[];
|
|
10
|
+
export interface FieldInsertionResult {
|
|
11
|
+
content: string;
|
|
12
|
+
insertedAtMarker: boolean;
|
|
13
|
+
message?: string;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Finds the marker's line index in an existing file's content, or -1 if
|
|
17
|
+
* it's missing (deleted, or the file predates this mechanism).
|
|
18
|
+
*/
|
|
19
|
+
export declare function findMarkerLine(existingContent: string): number;
|
|
20
|
+
/**
|
|
21
|
+
* Inserts newFieldLines into an existing page's content:
|
|
22
|
+
* - If the marker is present, splices the new field's code in directly
|
|
23
|
+
* above the marker (so the marker always stays as the insertion point
|
|
24
|
+
* for the NEXT field too), preserving everything else in the file
|
|
25
|
+
* exactly as the developer left it.
|
|
26
|
+
* - If the marker is missing, appends the new field's code to the very
|
|
27
|
+
* bottom of the file instead, with a clear header comment, and returns
|
|
28
|
+
* a message the CLI should print telling the developer where to find
|
|
29
|
+
* it and that they should cut/paste it into place themselves.
|
|
30
|
+
*
|
|
31
|
+
* Indentation of newFieldLines is the caller's responsibility — this
|
|
32
|
+
* function does not reformat or re-indent anything, since it can't know
|
|
33
|
+
* the surrounding widget tree's nesting depth safely for every page type.
|
|
34
|
+
*/
|
|
35
|
+
export declare function insertFieldAtMarker(existingContent: string, newFieldLines: string[], pageLabel: string, fieldLabel: string, commentPrefix?: string): FieldInsertionResult;
|
|
36
|
+
/**
|
|
37
|
+
* Diffs the model's current visible field names against the set of
|
|
38
|
+
* field names the page was last generated with (tracked in the
|
|
39
|
+
* manifest — see ManifestEntry.field_names in manifest.ts), returning
|
|
40
|
+
* only the ones that are genuinely new. Used to decide which fields
|
|
41
|
+
* need inserting on a regeneration run, rather than re-rendering every
|
|
42
|
+
* field from scratch.
|
|
43
|
+
*/
|
|
44
|
+
export declare function diffNewFields(currentFieldNames: string[], previousFieldNames: string[] | undefined): string[];
|
|
45
|
+
//# sourceMappingURL=field-insertion.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"field-insertion.d.ts","sourceRoot":"","sources":["../../src/insertion/field-insertion.ts"],"names":[],"mappings":"AAQA,eAAO,MAAM,iBAAiB,2BAA2B,CAAA;AAEzD;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,aAAa,GAAE,MAAa,GAAG,MAAM,EAAE,CAOzE;AAED,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,MAAM,CAAA;IAIf,gBAAgB,EAAE,OAAO,CAAA;IAGzB,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,eAAe,EAAE,MAAM,GAAG,MAAM,CAG9D;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,mBAAmB,CACjC,eAAe,EAAE,MAAM,EACvB,aAAa,EAAI,MAAM,EAAE,EACzB,SAAS,EAAQ,MAAM,EACvB,UAAU,EAAO,MAAM,EACvB,aAAa,GAAI,MAAa,GAC7B,oBAAoB,CAgCtB;AAED;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAC3B,iBAAiB,EAAG,MAAM,EAAE,EAC5B,kBAAkB,EAAE,MAAM,EAAE,GAAG,SAAS,GACvC,MAAM,EAAE,CAIV"}
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// File: underpeaks_codegen/packages/generator-core/src/insertion/field-insertion.ts
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.NXF_INSERT_MARKER = void 0;
|
|
5
|
+
exports.buildMarkerComment = buildMarkerComment;
|
|
6
|
+
exports.findMarkerLine = findMarkerLine;
|
|
7
|
+
exports.insertFieldAtMarker = insertFieldAtMarker;
|
|
8
|
+
exports.diffNewFields = diffNewFields;
|
|
9
|
+
// The marker-tag mechanism: lets a regenerated page pick up newly added
|
|
10
|
+
// model fields without overwriting the whole file (and losing whatever
|
|
11
|
+
// the developer has customized in it since). Platform-agnostic — works
|
|
12
|
+
// on plain text/line arrays, so both Flutter (.dart, // comments) and
|
|
13
|
+
// Next.js (.tsx, // comments) can share this exact logic.
|
|
14
|
+
exports.NXF_INSERT_MARKER = 'NXF:INSERT-FIELDS-HERE';
|
|
15
|
+
/**
|
|
16
|
+
* The marker comment block inserted once, at first generation, into
|
|
17
|
+
* every page that renders per-field content. `commentPrefix` is '//' for
|
|
18
|
+
* both Dart and TSX, so this is trivially shared — kept as a parameter
|
|
19
|
+
* rather than hardcoded in case a future target language needs a
|
|
20
|
+
* different comment syntax (e.g. '#').
|
|
21
|
+
*/
|
|
22
|
+
function buildMarkerComment(commentPrefix = '//') {
|
|
23
|
+
return [
|
|
24
|
+
`${commentPrefix} ${exports.NXF_INSERT_MARKER} — DO NOT DELETE`,
|
|
25
|
+
`${commentPrefix} This tag marks where new fields get inserted automatically when you`,
|
|
26
|
+
`${commentPrefix} update your model. Removing it means future field additions get pasted`,
|
|
27
|
+
`${commentPrefix} at the bottom of this file instead, for you to move into place yourself.`,
|
|
28
|
+
];
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Finds the marker's line index in an existing file's content, or -1 if
|
|
32
|
+
* it's missing (deleted, or the file predates this mechanism).
|
|
33
|
+
*/
|
|
34
|
+
function findMarkerLine(existingContent) {
|
|
35
|
+
const lines = existingContent.split('\n');
|
|
36
|
+
return lines.findIndex((line) => line.includes(exports.NXF_INSERT_MARKER));
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Inserts newFieldLines into an existing page's content:
|
|
40
|
+
* - If the marker is present, splices the new field's code in directly
|
|
41
|
+
* above the marker (so the marker always stays as the insertion point
|
|
42
|
+
* for the NEXT field too), preserving everything else in the file
|
|
43
|
+
* exactly as the developer left it.
|
|
44
|
+
* - If the marker is missing, appends the new field's code to the very
|
|
45
|
+
* bottom of the file instead, with a clear header comment, and returns
|
|
46
|
+
* a message the CLI should print telling the developer where to find
|
|
47
|
+
* it and that they should cut/paste it into place themselves.
|
|
48
|
+
*
|
|
49
|
+
* Indentation of newFieldLines is the caller's responsibility — this
|
|
50
|
+
* function does not reformat or re-indent anything, since it can't know
|
|
51
|
+
* the surrounding widget tree's nesting depth safely for every page type.
|
|
52
|
+
*/
|
|
53
|
+
function insertFieldAtMarker(existingContent, newFieldLines, pageLabel, fieldLabel, commentPrefix = '//') {
|
|
54
|
+
const markerLine = findMarkerLine(existingContent);
|
|
55
|
+
if (markerLine === -1) {
|
|
56
|
+
const lines = existingContent.split('\n');
|
|
57
|
+
const appended = [
|
|
58
|
+
...lines,
|
|
59
|
+
'',
|
|
60
|
+
`${commentPrefix} NEW FIELD ADDED: ${fieldLabel}`,
|
|
61
|
+
`${commentPrefix} The insertion marker was not found in this file (removed, or this file`,
|
|
62
|
+
`${commentPrefix} predates the marker mechanism). This field's widget code was appended`,
|
|
63
|
+
`${commentPrefix} here instead — cut and paste it wherever you'd like it in the layout.`,
|
|
64
|
+
...newFieldLines,
|
|
65
|
+
];
|
|
66
|
+
return {
|
|
67
|
+
content: appended.join('\n'),
|
|
68
|
+
insertedAtMarker: false,
|
|
69
|
+
message: `Added the ${fieldLabel} widget to the bottom of ${pageLabel} — cut and paste it wherever you'd like it in the layout.`,
|
|
70
|
+
};
|
|
71
|
+
}
|
|
72
|
+
const lines = existingContent.split('\n');
|
|
73
|
+
const before = lines.slice(0, markerLine);
|
|
74
|
+
const after = lines.slice(markerLine);
|
|
75
|
+
const spliced = [...before, ...newFieldLines, ...after];
|
|
76
|
+
return {
|
|
77
|
+
content: spliced.join('\n'),
|
|
78
|
+
insertedAtMarker: true,
|
|
79
|
+
};
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* Diffs the model's current visible field names against the set of
|
|
83
|
+
* field names the page was last generated with (tracked in the
|
|
84
|
+
* manifest — see ManifestEntry.field_names in manifest.ts), returning
|
|
85
|
+
* only the ones that are genuinely new. Used to decide which fields
|
|
86
|
+
* need inserting on a regeneration run, rather than re-rendering every
|
|
87
|
+
* field from scratch.
|
|
88
|
+
*/
|
|
89
|
+
function diffNewFields(currentFieldNames, previousFieldNames) {
|
|
90
|
+
if (!previousFieldNames)
|
|
91
|
+
return []; // no prior record — full-file generation path handles this case instead
|
|
92
|
+
const previousSet = new Set(previousFieldNames);
|
|
93
|
+
return currentFieldNames.filter((name) => !previousSet.has(name));
|
|
94
|
+
}
|
|
95
|
+
//# sourceMappingURL=field-insertion.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"field-insertion.js","sourceRoot":"","sources":["../../src/insertion/field-insertion.ts"],"names":[],"mappings":";AAAA,oFAAoF;;;AAiBpF,gDAOC;AAiBD,wCAGC;AAiBD,kDAsCC;AAUD,sCAOC;AAlHD,wEAAwE;AACxE,uEAAuE;AACvE,uEAAuE;AACvE,sEAAsE;AACtE,0DAA0D;AAE7C,QAAA,iBAAiB,GAAG,wBAAwB,CAAA;AAEzD;;;;;;GAMG;AACH,SAAgB,kBAAkB,CAAC,gBAAwB,IAAI;IAC7D,OAAO;QACL,GAAG,aAAa,IAAI,yBAAiB,kBAAkB;QACvD,GAAG,aAAa,sEAAsE;QACtF,GAAG,aAAa,yEAAyE;QACzF,GAAG,aAAa,2EAA2E;KAC5F,CAAA;AACH,CAAC;AAaD;;;GAGG;AACH,SAAgB,cAAc,CAAC,eAAuB;IACpD,MAAM,KAAK,GAAG,eAAe,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;IACzC,OAAO,KAAK,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,yBAAiB,CAAC,CAAC,CAAA;AACpE,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,SAAgB,mBAAmB,CACjC,eAAuB,EACvB,aAAyB,EACzB,SAAuB,EACvB,UAAuB,EACvB,gBAA0B,IAAI;IAE9B,MAAM,UAAU,GAAG,cAAc,CAAC,eAAe,CAAC,CAAA;IAElD,IAAI,UAAU,KAAK,CAAC,CAAC,EAAE,CAAC;QACtB,MAAM,KAAK,GAAG,eAAe,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;QACzC,MAAM,QAAQ,GAAG;YACf,GAAG,KAAK;YACR,EAAE;YACF,GAAG,aAAa,qBAAqB,UAAU,EAAE;YACjD,GAAG,aAAa,yEAAyE;YACzF,GAAG,aAAa,wEAAwE;YACxF,GAAG,aAAa,wEAAwE;YACxF,GAAG,aAAa;SACjB,CAAA;QAED,OAAO;YACL,OAAO,EAAW,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;YACrC,gBAAgB,EAAE,KAAK;YACvB,OAAO,EAAW,aAAa,UAAU,4BAA4B,SAAS,2DAA2D;SAC1I,CAAA;IACH,CAAC;IAED,MAAM,KAAK,GAAG,eAAe,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;IACzC,MAAM,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC,CAAA;IACzC,MAAM,KAAK,GAAI,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,CAAA;IAEtC,MAAM,OAAO,GAAG,CAAC,GAAG,MAAM,EAAE,GAAG,aAAa,EAAE,GAAG,KAAK,CAAC,CAAA;IAEvD,OAAO;QACL,OAAO,EAAW,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;QACpC,gBAAgB,EAAE,IAAI;KACvB,CAAA;AACH,CAAC;AAED;;;;;;;GAOG;AACH,SAAgB,aAAa,CAC3B,iBAA4B,EAC5B,kBAAwC;IAExC,IAAI,CAAC,kBAAkB;QAAE,OAAO,EAAE,CAAA,CAAC,wEAAwE;IAC3G,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,kBAAkB,CAAC,CAAA;IAC/C,OAAO,iBAAiB,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAA;AACnE,CAAC"}
|
|
@@ -6,6 +6,7 @@ export interface ManifestEntry {
|
|
|
6
6
|
generated: boolean;
|
|
7
7
|
customized: boolean;
|
|
8
8
|
generated_at: string;
|
|
9
|
+
field_names?: string[];
|
|
9
10
|
}
|
|
10
11
|
export interface Manifest {
|
|
11
12
|
version: string;
|
|
@@ -14,10 +15,12 @@ export interface Manifest {
|
|
|
14
15
|
files: Record<string, ManifestEntry>;
|
|
15
16
|
}
|
|
16
17
|
export declare function computeChecksum(content: string): string;
|
|
17
|
-
export
|
|
18
|
+
export interface CreateManifestFileInfo {
|
|
18
19
|
type: ManifestEntry['source_type'];
|
|
19
20
|
id: string;
|
|
20
|
-
|
|
21
|
+
field_names?: string[];
|
|
22
|
+
}
|
|
23
|
+
export declare function createManifest(projectId: string, files: GeneratedFile[], sourceMap: Record<string, CreateManifestFileInfo>): Manifest;
|
|
21
24
|
export declare function mergeManifest(existing: Manifest, incoming: Manifest, existingFileContents: Record<string, string>): Manifest;
|
|
22
25
|
export declare function getFilesToSkip(manifest: Manifest): string[];
|
|
23
26
|
//# sourceMappingURL=manifest.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manifest.d.ts","sourceRoot":"","sources":["../../src/manifest/manifest.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAEpD,MAAM,WAAW,aAAa;IAC5B,WAAW,
|
|
1
|
+
{"version":3,"file":"manifest.d.ts","sourceRoot":"","sources":["../../src/manifest/manifest.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAEpD,MAAM,WAAW,aAAa;IAC5B,WAAW,EAAG,OAAO,GAAG,MAAM,GAAG,OAAO,GAAG,OAAO,GAAG,MAAM,CAAA;IAC3D,SAAS,EAAK,MAAM,CAAA;IACpB,QAAQ,EAAM,MAAM,CAAA;IACpB,SAAS,EAAK,OAAO,CAAA;IACrB,UAAU,EAAI,OAAO,CAAA;IACrB,YAAY,EAAE,MAAM,CAAA;IAQpB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAA;CACvB;AAED,MAAM,WAAW,QAAQ;IACvB,OAAO,EAAO,MAAM,CAAA;IACpB,YAAY,EAAE,MAAM,CAAA;IACpB,UAAU,EAAI,MAAM,CAAA;IACpB,KAAK,EAAS,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAA;CAC5C;AAED,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAEvD;AAED,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAU,aAAa,CAAC,aAAa,CAAC,CAAA;IAC1C,EAAE,EAAY,MAAM,CAAA;IACpB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAA;CACvB;AAED,wBAAgB,cAAc,CAC5B,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,aAAa,EAAE,EACtB,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,sBAAsB,CAAC,GAChD,QAAQ,CAuBV;AAED,wBAAgB,aAAa,CAC3B,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,QAAQ,EAClB,oBAAoB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC3C,QAAQ,CAmCV;AAED,wBAAgB,cAAc,CAAC,QAAQ,EAAE,QAAQ,GAAG,MAAM,EAAE,CAI3D"}
|
|
@@ -24,6 +24,7 @@ function createManifest(projectId, files, sourceMap) {
|
|
|
24
24
|
generated: true,
|
|
25
25
|
customized: false,
|
|
26
26
|
generated_at: now,
|
|
27
|
+
field_names: source.field_names,
|
|
27
28
|
};
|
|
28
29
|
}
|
|
29
30
|
return {
|
|
@@ -53,6 +54,14 @@ function mergeManifest(existing, incoming, existingFileContents) {
|
|
|
53
54
|
merged.files[filePath] = {
|
|
54
55
|
...incomingEntry,
|
|
55
56
|
customized: true,
|
|
57
|
+
// A customized page keeps its LAST KNOWN field_names from the
|
|
58
|
+
// existing manifest, not whatever the fresh incoming entry
|
|
59
|
+
// would have had — the incoming entry reflects a full
|
|
60
|
+
// regeneration that never actually happened for this file
|
|
61
|
+
// (it was skipped because it's customized), so its field_names
|
|
62
|
+
// don't describe what's actually on disk. Preserving the old
|
|
63
|
+
// list keeps future diffNewFields() calls accurate.
|
|
64
|
+
field_names: existingEntry.field_names,
|
|
56
65
|
};
|
|
57
66
|
}
|
|
58
67
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manifest.js","sourceRoot":"","sources":["../../src/manifest/manifest.ts"],"names":[],"mappings":";AAAA,4EAA4E;;;;;
|
|
1
|
+
{"version":3,"file":"manifest.js","sourceRoot":"","sources":["../../src/manifest/manifest.ts"],"names":[],"mappings":";AAAA,4EAA4E;;;;;AA6B5E,0CAEC;AAQD,wCA2BC;AAED,sCAuCC;AAED,wCAIC;AA/GD,oDAA2B;AA2B3B,SAAgB,eAAe,CAAC,OAAe;IAC7C,OAAO,SAAS,GAAG,gBAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;AAC9E,CAAC;AAQD,SAAgB,cAAc,CAC5B,SAAiB,EACjB,KAAsB,EACtB,SAAiD;IAEjD,MAAM,GAAG,GAAO,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAA;IACxC,MAAM,OAAO,GAAkC,EAAE,CAAA;IAEjD,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,MAAM,GAAG,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,MAAe,EAAE,EAAE,EAAE,MAAM,EAAE,CAAA;QAC5E,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG;YACnB,WAAW,EAAG,MAAM,CAAC,IAAI;YACzB,SAAS,EAAK,MAAM,CAAC,EAAE;YACvB,QAAQ,EAAM,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC;YAC3C,SAAS,EAAK,IAAI;YAClB,UAAU,EAAI,KAAK;YACnB,YAAY,EAAE,GAAG;YACjB,WAAW,EAAG,MAAM,CAAC,WAAW;SACjC,CAAA;IACH,CAAC;IAED,OAAO;QACL,OAAO,EAAO,OAAO;QACrB,YAAY,EAAE,GAAG;QACjB,UAAU,EAAI,SAAS;QACvB,KAAK,EAAS,OAAO;KACtB,CAAA;AACH,CAAC;AAED,SAAgB,aAAa,CAC3B,QAAkB,EAClB,QAAkB,EAClB,oBAA4C;IAE5C,uEAAuE;IACvE,uEAAuE;IACvE,oEAAoE;IACpE,6DAA6D;IAC7D,MAAM,MAAM,GAAa;QACvB,GAAG,QAAQ;QACX,KAAK,EAAE,EAAE,GAAG,QAAQ,CAAC,KAAK,EAAE;KAC7B,CAAA;IAED,KAAK,MAAM,CAAC,QAAQ,EAAE,aAAa,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QACvE,MAAM,aAAa,GAAG,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAA;QAC9C,IAAI,CAAC,aAAa;YAAE,SAAQ;QAE5B,0FAA0F;QAC1F,MAAM,aAAa,GAAI,oBAAoB,CAAC,QAAQ,CAAC,CAAA;QACrD,MAAM,cAAc,GAAG,aAAa,CAAC,CAAC,CAAC,eAAe,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;QAE5E,IAAI,cAAc,IAAI,cAAc,KAAK,aAAa,CAAC,QAAQ,EAAE,CAAC;YAChE,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG;gBACvB,GAAG,aAAa;gBAChB,UAAU,EAAE,IAAI;gBAChB,8DAA8D;gBAC9D,2DAA2D;gBAC3D,sDAAsD;gBACtD,0DAA0D;gBAC1D,+DAA+D;gBAC/D,6DAA6D;gBAC7D,oDAAoD;gBACpD,WAAW,EAAE,aAAa,CAAC,WAAW;aACvC,CAAA;QACH,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAA;AACf,CAAC;AAED,SAAgB,cAAc,CAAC,QAAkB;IAC/C,OAAO,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC;SAClC,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC;SACvC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAA;AAClC,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { GeneratedFile } from '../schema/types';
|
|
2
|
+
import type { UiTypeUsage } from './scan-ui-types';
|
|
3
|
+
export type WidgetGenerator = () => GeneratedFile;
|
|
4
|
+
export interface WidgetRegistries {
|
|
5
|
+
editRegistry: Record<string, WidgetGenerator>;
|
|
6
|
+
displayRegistry: Record<string, WidgetGenerator>;
|
|
7
|
+
}
|
|
8
|
+
export interface ResolvedWidgets {
|
|
9
|
+
files: GeneratedFile[];
|
|
10
|
+
missing: string[];
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Resolves exactly which widget files this run needs, given the set of
|
|
14
|
+
* ui_types/display_ui_types actually in use (from scanUsedUiTypes).
|
|
15
|
+
* Produces exactly one file per unique type — the Set-based scan
|
|
16
|
+
* already guarantees no duplicates even if 50 fields across 10 pages
|
|
17
|
+
* use 'textfield'.
|
|
18
|
+
*/
|
|
19
|
+
export declare function resolveRequiredWidgets(usage: UiTypeUsage, registries: WidgetRegistries): ResolvedWidgets;
|
|
20
|
+
//# sourceMappingURL=resolve-widgets.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolve-widgets.d.ts","sourceRoot":"","sources":["../../src/scan/resolve-widgets.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AACpD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAQ,iBAAiB,CAAA;AAEpD,MAAM,MAAM,eAAe,GAAG,MAAM,aAAa,CAAA;AAEjD,MAAM,WAAW,gBAAgB;IAC/B,YAAY,EAAK,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAA;IAChD,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAA;CACjD;AAED,MAAM,WAAW,eAAe;IAM9B,KAAK,EAAI,aAAa,EAAE,CAAA;IAIxB,OAAO,EAAE,MAAM,EAAE,CAAA;CAClB;AAED;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CACpC,KAAK,EAAO,WAAW,EACvB,UAAU,EAAE,gBAAgB,GAC3B,eAAe,CAqBjB"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// File: underpeaks_codegen/packages/generator-core/src/scan/resolve-widgets.ts
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.resolveRequiredWidgets = resolveRequiredWidgets;
|
|
5
|
+
/**
|
|
6
|
+
* Resolves exactly which widget files this run needs, given the set of
|
|
7
|
+
* ui_types/display_ui_types actually in use (from scanUsedUiTypes).
|
|
8
|
+
* Produces exactly one file per unique type — the Set-based scan
|
|
9
|
+
* already guarantees no duplicates even if 50 fields across 10 pages
|
|
10
|
+
* use 'textfield'.
|
|
11
|
+
*/
|
|
12
|
+
function resolveRequiredWidgets(usage, registries) {
|
|
13
|
+
const files = [];
|
|
14
|
+
const missing = [];
|
|
15
|
+
const resolveOne = (key, generator) => {
|
|
16
|
+
if (!generator) {
|
|
17
|
+
missing.push(key);
|
|
18
|
+
return;
|
|
19
|
+
}
|
|
20
|
+
files.push(generator());
|
|
21
|
+
};
|
|
22
|
+
for (const uiType of usage.editTypes) {
|
|
23
|
+
resolveOne(uiType, registries.editRegistry[uiType]);
|
|
24
|
+
}
|
|
25
|
+
for (const displayUiType of usage.displayTypes) {
|
|
26
|
+
resolveOne(displayUiType, registries.displayRegistry[displayUiType]);
|
|
27
|
+
}
|
|
28
|
+
return { files, missing };
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=resolve-widgets.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolve-widgets.js","sourceRoot":"","sources":["../../src/scan/resolve-widgets.ts"],"names":[],"mappings":";AAAA,+EAA+E;;AAgC/E,wDAwBC;AA/BD;;;;;;GAMG;AACH,SAAgB,sBAAsB,CACpC,KAAuB,EACvB,UAA4B;IAE5B,MAAM,KAAK,GAAsB,EAAE,CAAA;IACnC,MAAM,OAAO,GAAoB,EAAE,CAAA;IAEnC,MAAM,UAAU,GAAG,CAAC,GAAW,EAAE,SAAsC,EAAE,EAAE;QACzE,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;YACjB,OAAM;QACR,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,CAAA;IACzB,CAAC,CAAA;IAED,KAAK,MAAM,MAAM,IAAI,KAAK,CAAC,SAAS,EAAE,CAAC;QACrC,UAAU,CAAC,MAAM,EAAE,UAAU,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAA;IACrD,CAAC;IAED,KAAK,MAAM,aAAa,IAAI,KAAK,CAAC,YAAY,EAAE,CAAC;QAC/C,UAAU,CAAC,aAAa,EAAE,UAAU,CAAC,eAAe,CAAC,aAAa,CAAC,CAAC,CAAA;IACtE,CAAC;IAED,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,CAAA;AAC3B,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { Model, PageDef } from '../schema/types';
|
|
2
|
+
export interface UiTypeUsage {
|
|
3
|
+
editTypes: Set<string>;
|
|
4
|
+
displayTypes: Set<string>;
|
|
5
|
+
}
|
|
6
|
+
/**
|
|
7
|
+
* Scans every model attached to at least one page in this generation run
|
|
8
|
+
* and collects the full set of unique ui_type/display_ui_type values
|
|
9
|
+
* actually in use — used to decide which widget files the pipeline needs
|
|
10
|
+
* to generate (or skip, if already generated in a prior run per the
|
|
11
|
+
* manifest). Hidden fields are excluded since they never render as a
|
|
12
|
+
* widget in the generated app. Models with no attached page are excluded
|
|
13
|
+
* entirely, per the anti-bloat rule: only generate for what's configured.
|
|
14
|
+
*/
|
|
15
|
+
export declare function scanUsedUiTypes(models: Model[], pages: PageDef[]): UiTypeUsage;
|
|
16
|
+
//# sourceMappingURL=scan-ui-types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scan-ui-types.d.ts","sourceRoot":"","sources":["../../src/scan/scan-ui-types.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAA;AAErD,MAAM,WAAW,WAAW;IAG1B,SAAS,EAAK,GAAG,CAAC,MAAM,CAAC,CAAA;IAMzB,YAAY,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;CAC1B;AAED;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,WAAW,CAyC9E"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// File: underpeaks_codegen/packages/generator-core/src/scan/scan-ui-types.ts
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.scanUsedUiTypes = scanUsedUiTypes;
|
|
5
|
+
/**
|
|
6
|
+
* Scans every model attached to at least one page in this generation run
|
|
7
|
+
* and collects the full set of unique ui_type/display_ui_type values
|
|
8
|
+
* actually in use — used to decide which widget files the pipeline needs
|
|
9
|
+
* to generate (or skip, if already generated in a prior run per the
|
|
10
|
+
* manifest). Hidden fields are excluded since they never render as a
|
|
11
|
+
* widget in the generated app. Models with no attached page are excluded
|
|
12
|
+
* entirely, per the anti-bloat rule: only generate for what's configured.
|
|
13
|
+
*/
|
|
14
|
+
function scanUsedUiTypes(models, pages) {
|
|
15
|
+
const editTypes = new Set();
|
|
16
|
+
const displayTypes = new Set();
|
|
17
|
+
const modelIdsInUse = new Set(pages
|
|
18
|
+
.map((p) => p.model_id)
|
|
19
|
+
.filter((id) => Boolean(id)));
|
|
20
|
+
for (const model of models) {
|
|
21
|
+
if (!modelIdsInUse.has(model.sm_id))
|
|
22
|
+
continue;
|
|
23
|
+
for (const col of model.schema.columns) {
|
|
24
|
+
if (col.hidden)
|
|
25
|
+
continue;
|
|
26
|
+
if (col.ui_type) {
|
|
27
|
+
editTypes.add(col.ui_type);
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
// Display types are scanned per-page (not per-model in isolation),
|
|
32
|
+
// since a field's display_ui_type only matters for pages that actually
|
|
33
|
+
// render that field read-only — a public-visibility page for a model.
|
|
34
|
+
for (const page of pages) {
|
|
35
|
+
if (page.visibility === 'admin')
|
|
36
|
+
continue; // admin pages never use display_ui_type
|
|
37
|
+
const model = models.find((m) => m.sm_id === page.model_id);
|
|
38
|
+
if (!model)
|
|
39
|
+
continue;
|
|
40
|
+
for (const col of model.schema.columns) {
|
|
41
|
+
if (col.hidden)
|
|
42
|
+
continue;
|
|
43
|
+
if (col.display_ui_type) {
|
|
44
|
+
displayTypes.add(col.display_ui_type);
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
return { editTypes, displayTypes };
|
|
49
|
+
}
|
|
50
|
+
//# sourceMappingURL=scan-ui-types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scan-ui-types.js","sourceRoot":"","sources":["../../src/scan/scan-ui-types.ts"],"names":[],"mappings":";AAAA,6EAA6E;;AAyB7E,0CAyCC;AAlDD;;;;;;;;GAQG;AACH,SAAgB,eAAe,CAAC,MAAe,EAAE,KAAgB;IAC/D,MAAM,SAAS,GAAM,IAAI,GAAG,EAAU,CAAA;IACtC,MAAM,YAAY,GAAG,IAAI,GAAG,EAAU,CAAA;IAEtC,MAAM,aAAa,GAAG,IAAI,GAAG,CAC3B,KAAK;SACF,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC;SACtB,MAAM,CAAC,CAAC,EAAE,EAAgB,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAC7C,CAAA;IAED,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC;YAAE,SAAQ;QAE7C,KAAK,MAAM,GAAG,IAAI,KAAK,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACvC,IAAI,GAAG,CAAC,MAAM;gBAAE,SAAQ;YAExB,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC;gBAChB,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;YAC5B,CAAC;QACH,CAAC;IACH,CAAC;IAED,mEAAmE;IACnE,uEAAuE;IACvE,sEAAsE;IACtE,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,IAAI,CAAC,UAAU,KAAK,OAAO;YAAE,SAAQ,CAAC,wCAAwC;QAElF,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC,QAAQ,CAAC,CAAA;QAC3D,IAAI,CAAC,KAAK;YAAE,SAAQ;QAEpB,KAAK,MAAM,GAAG,IAAI,KAAK,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACvC,IAAI,GAAG,CAAC,MAAM;gBAAE,SAAQ;YAExB,IAAI,GAAG,CAAC,eAAe,EAAE,CAAC;gBACxB,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,eAAe,CAAC,CAAA;YACvC,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,CAAA;AACpC,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export declare const AUTH_TEMPLATE_TYPES: readonly ["sign_in", "sign_up", "forgot_password", "reset_password"];
|
|
2
|
+
export declare const LANDING_TEMPLATE_TYPES: readonly ["landing-hero-cta", "landing-hero-features", "landing-hero-pricing", "landing-minimal"];
|
|
3
|
+
export declare const NAV_TEMPLATE_TYPES: readonly ["top-nav", "sidebar-nav", "bottom-nav", "drawer-nav"];
|
|
4
|
+
export declare const STANDARD_TEMPLATE_TYPES: readonly ["dashboard", "profile", "blog-post", "contact", "cart", "checkout", "wallet", "invoice", "chat", "messages", "feed", "map", "search", "settings", "gallery", "kanban", "calendar", "otp_request", "otp_entry", "custom"];
|
|
5
|
+
export type AuthTemplateType = typeof AUTH_TEMPLATE_TYPES[number];
|
|
6
|
+
export type LandingTemplateType = typeof LANDING_TEMPLATE_TYPES[number];
|
|
7
|
+
export type NavTemplateType = typeof NAV_TEMPLATE_TYPES[number];
|
|
8
|
+
export type StandardTemplateType = typeof STANDARD_TEMPLATE_TYPES[number];
|
|
9
|
+
//# sourceMappingURL=page-template-types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"page-template-types.d.ts","sourceRoot":"","sources":["../../src/schema/page-template-types.ts"],"names":[],"mappings":"AAOA,eAAO,MAAM,mBAAmB,sEAKtB,CAAA;AAEV,eAAO,MAAM,sBAAsB,mGAKzB,CAAA;AAEV,eAAO,MAAM,kBAAkB,iEAKrB,CAAA;AAOV,eAAO,MAAM,uBAAuB,oOAqB1B,CAAA;AAEV,MAAM,MAAM,gBAAgB,GAAO,OAAO,mBAAmB,CAAC,MAAM,CAAC,CAAA;AACrE,MAAM,MAAM,mBAAmB,GAAI,OAAO,sBAAsB,CAAC,MAAM,CAAC,CAAA;AACxE,MAAM,MAAM,eAAe,GAAQ,OAAO,kBAAkB,CAAC,MAAM,CAAC,CAAA;AACpE,MAAM,MAAM,oBAAoB,GAAG,OAAO,uBAAuB,CAAC,MAAM,CAAC,CAAA"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// File: underpeaks_codegen/packages/generator-core/src/schema/page-template-types.ts
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.STANDARD_TEMPLATE_TYPES = exports.NAV_TEMPLATE_TYPES = exports.LANDING_TEMPLATE_TYPES = exports.AUTH_TEMPLATE_TYPES = void 0;
|
|
5
|
+
// Single source of truth for how a page's template_type is classified
|
|
6
|
+
// during generation. Both generator-flutter and generator-nextjs import
|
|
7
|
+
// from here instead of maintaining their own copies — a new template
|
|
8
|
+
// type only needs to be added in this one file.
|
|
9
|
+
exports.AUTH_TEMPLATE_TYPES = [
|
|
10
|
+
'sign_in',
|
|
11
|
+
'sign_up',
|
|
12
|
+
'forgot_password',
|
|
13
|
+
'reset_password',
|
|
14
|
+
];
|
|
15
|
+
exports.LANDING_TEMPLATE_TYPES = [
|
|
16
|
+
'landing-hero-cta',
|
|
17
|
+
'landing-hero-features',
|
|
18
|
+
'landing-hero-pricing',
|
|
19
|
+
'landing-minimal',
|
|
20
|
+
];
|
|
21
|
+
exports.NAV_TEMPLATE_TYPES = [
|
|
22
|
+
'top-nav',
|
|
23
|
+
'sidebar-nav',
|
|
24
|
+
'bottom-nav',
|
|
25
|
+
'drawer-nav',
|
|
26
|
+
];
|
|
27
|
+
// Page types with a dedicated generator template in at least one
|
|
28
|
+
// platform (Flutter has a 1:1 function per type below; Next.js currently
|
|
29
|
+
// routes all of these through a single generic fallback template —
|
|
30
|
+
// see generateRemainingNextjsPage — pending dedicated Next.js templates
|
|
31
|
+
// for each, tracked separately).
|
|
32
|
+
exports.STANDARD_TEMPLATE_TYPES = [
|
|
33
|
+
'dashboard',
|
|
34
|
+
'profile',
|
|
35
|
+
'blog-post',
|
|
36
|
+
'contact',
|
|
37
|
+
'cart',
|
|
38
|
+
'checkout',
|
|
39
|
+
'wallet',
|
|
40
|
+
'invoice',
|
|
41
|
+
'chat',
|
|
42
|
+
'messages',
|
|
43
|
+
'feed',
|
|
44
|
+
'map',
|
|
45
|
+
'search',
|
|
46
|
+
'settings',
|
|
47
|
+
'gallery',
|
|
48
|
+
'kanban',
|
|
49
|
+
'calendar',
|
|
50
|
+
'otp_request',
|
|
51
|
+
'otp_entry',
|
|
52
|
+
'custom',
|
|
53
|
+
];
|
|
54
|
+
//# sourceMappingURL=page-template-types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"page-template-types.js","sourceRoot":"","sources":["../../src/schema/page-template-types.ts"],"names":[],"mappings":";AAAA,qFAAqF;;;AAErF,sEAAsE;AACtE,wEAAwE;AACxE,qEAAqE;AACrE,gDAAgD;AAEnC,QAAA,mBAAmB,GAAG;IACjC,SAAS;IACT,SAAS;IACT,iBAAiB;IACjB,gBAAgB;CACR,CAAA;AAEG,QAAA,sBAAsB,GAAG;IACpC,kBAAkB;IAClB,uBAAuB;IACvB,sBAAsB;IACtB,iBAAiB;CACT,CAAA;AAEG,QAAA,kBAAkB,GAAG;IAChC,SAAS;IACT,aAAa;IACb,YAAY;IACZ,YAAY;CACJ,CAAA;AAEV,iEAAiE;AACjE,yEAAyE;AACzE,mEAAmE;AACnE,wEAAwE;AACxE,iCAAiC;AACpB,QAAA,uBAAuB,GAAG;IACrC,WAAW;IACX,SAAS;IACT,WAAW;IACX,SAAS;IACT,MAAM;IACN,UAAU;IACV,QAAQ;IACR,SAAS;IACT,MAAM;IACN,UAAU;IACV,MAAM;IACN,KAAK;IACL,QAAQ;IACR,UAAU;IACV,SAAS;IACT,QAAQ;IACR,UAAU;IACV,aAAa;IACb,WAAW;IACX,QAAQ;CACA,CAAA"}
|
package/dist/schema/types.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/schema/types.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,SAAS;IACxB,IAAI,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/schema/types.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/dist/routes/parser.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
//# sourceMappingURL=parser.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../../src/routes/parser.ts"],"names":[],"mappings":""}
|
package/dist/routes/parser.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"parser.js","sourceRoot":"","sources":["../../src/routes/parser.ts"],"names":[],"mappings":""}
|
package/dist/theme/mapper.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
//# sourceMappingURL=mapper.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"mapper.d.ts","sourceRoot":"","sources":["../../src/theme/mapper.ts"],"names":[],"mappings":""}
|
package/dist/theme/mapper.js
DELETED
package/dist/theme/mapper.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"mapper.js","sourceRoot":"","sources":["../../src/theme/mapper.ts"],"names":[],"mappings":""}
|