nodality 1.0.158 → 1.0.162
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/bin/nodality.js +309 -0
- package/layout/animator.js +1 -1
- package/layout/audio.js +1 -1
- package/layout/audionew.js +1 -1
- package/layout/base-2.js +1 -1
- package/layout/base.js +1 -1
- package/layout/beta-desktop-bar.js +1 -1
- package/layout/beta-mobile-bar.js +1 -1
- package/layout/box.js +1 -1
- package/layout/button.js +1 -1
- package/layout/cards.js +1 -1
- package/layout/center.js +1 -1
- package/layout/checkbox.js +1 -1
- package/layout/circle.js +1 -1
- package/layout/clean-row.js +1 -1
- package/layout/code.js +1 -1
- package/layout/container.js +1 -1
- package/layout/custom.js +1 -1
- package/layout/div-image.js +1 -1
- package/layout/dropdown-2025.js +1 -1
- package/layout/dropdown.js +1 -1
- package/layout/empty-element.js +1 -1
- package/layout/external-stylesheet.js +1 -1
- package/layout/flex-card.js +1 -1
- package/layout/flex-grid.js +1 -1
- package/layout/flex-row.js +1 -1
- package/layout/footer.js +1 -1
- package/layout/form-components/custom.js +1 -1
- package/layout/form-components/data-list.js +1 -1
- package/layout/form-components/floating-input.js +1 -1
- package/layout/form-components/form-all.js +1 -1
- package/layout/form-components/form.js +1 -1
- package/layout/form-components/image-picker.js +1 -1
- package/layout/form-components/picker.js +1 -1
- package/layout/form-components/radio.js +1 -1
- package/layout/form-components/radiogroup.js +1 -1
- package/layout/form-components/range.js +1 -1
- package/layout/free.js +1 -1
- package/layout/grid-new.js +1 -1
- package/layout/grid-switcher.js +1 -1
- package/layout/grid.js +1 -1
- package/layout/group.js +1 -1
- package/layout/header.js +1 -1
- package/layout/horizontal-scroller.js +1 -1
- package/layout/image-old.js +1 -1
- package/layout/image.js +1 -1
- package/layout/index.js +1 -1
- package/layout/label.js +1 -1
- package/layout/link.js +1 -1
- package/layout/list-OLD.js +1 -1
- package/layout/list.js +1 -1
- package/layout/meta-adder.js +1 -1
- package/layout/modal-2025.js +1 -1
- package/layout/modernwrap.js +1 -1
- package/layout/multiswitcher.js +1 -1
- package/layout/multiswitcherBeta.js +1 -1
- package/layout/nav-bar.js +1 -1
- package/layout/nav-factor/custom-div.js +1 -1
- package/layout/navBar-OLD.js +1 -1
- package/layout/new-flat-adder.js +1 -1
- package/layout/new-nav-bar.js +1 -1
- package/layout/offset-container.js +1 -1
- package/layout/polygon.js +1 -1
- package/layout/prerender-site.js +1 -1
- package/layout/prerender.js +1 -1
- package/layout/progress.js +1 -1
- package/layout/row.js +1 -1
- package/layout/saved-new-nav-bar.js +1 -1
- package/layout/scroll-video.js +1 -1
- package/layout/side-bar.js +1 -1
- package/layout/side-nav-bar.js +1 -1
- package/layout/simple-bar.js +1 -1
- package/layout/slider-2025.js +1 -1
- package/layout/spacer.js +1 -1
- package/layout/stack.js +1 -1
- package/layout/styler.js +1 -1
- package/layout/svg.js +1 -1
- package/layout/switcher.js +1 -1
- package/layout/table.js +1 -1
- package/layout/text-field.js +1 -1
- package/layout/text.js +1 -1
- package/layout/ulist.js +1 -1
- package/layout/video.js +1 -1
- package/layout/without-new.js +1 -1
- package/layout/wrap.js +1 -1
- package/layout/zoom-card.js +1 -1
- package/lib/card-getter.js +1 -1
- package/lib/designer.js +1 -1
- package/lib/element-mapper.js +1 -1
- package/lib/keyframe-animation.js +1 -1
- package/lib/link-getter.js +1 -1
- package/lib/scroll-video.js +1 -1
- package/lib/stacker.js +1 -1
- package/lib/theme.js +1 -1
- package/lib/transform-anim.js +1 -1
- package/package.json +11 -3
package/bin/nodality.js
ADDED
|
@@ -0,0 +1,309 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
// bin/nodality.js — `npx nodality <command>` CLI entry shipped with
|
|
3
|
+
// the nodality package. Today the only subcommand is `prerender`,
|
|
4
|
+
// which walks the consumer's `upload/` directory, pairs each
|
|
5
|
+
// `<name>.html` with `pages/<name>.js` (or `<name>.js` for flat
|
|
6
|
+
// layouts), and renders the resulting tree to static HTML in place.
|
|
7
|
+
//
|
|
8
|
+
// Why this lives in the nodality package rather than in a separate
|
|
9
|
+
// `nodality-cli`:
|
|
10
|
+
// • Single install (`npm i nodality`) gives you the engine AND the
|
|
11
|
+
// runner — same pattern as next, vite, astro, prisma.
|
|
12
|
+
// • The CLI and the engine ship together so version drift between
|
|
13
|
+
// them is impossible.
|
|
14
|
+
// • Consumer scripts wrap this in `npm run prerender`, but
|
|
15
|
+
// `npx nodality prerender` also works without any wiring.
|
|
16
|
+
//
|
|
17
|
+
// Configuration lives in the consumer's `nodality.config.json`:
|
|
18
|
+
//
|
|
19
|
+
// {
|
|
20
|
+
// "origin": "https://example.com",
|
|
21
|
+
// "uploadDir": "upload",
|
|
22
|
+
// "defaultLocale": "cs",
|
|
23
|
+
// "locales": ["cs", "en", ...],
|
|
24
|
+
// "pages": [{ "html": "index.html", "entry": "app.js" }, ...]
|
|
25
|
+
// "tolerateAsyncErrors": true
|
|
26
|
+
// }
|
|
27
|
+
//
|
|
28
|
+
// Anything omitted falls back to sensible defaults (single-locale,
|
|
29
|
+
// upload/, auto-discovered page list). CLI flags override the file.
|
|
30
|
+
|
|
31
|
+
import fs from "node:fs";
|
|
32
|
+
import path from "node:path";
|
|
33
|
+
import { prerenderSite } from "../layout/prerender-site.js";
|
|
34
|
+
|
|
35
|
+
// ─── Usage ──────────────────────────────────────────────────────
|
|
36
|
+
|
|
37
|
+
function showUsage() {
|
|
38
|
+
console.log(`Usage:
|
|
39
|
+
nodality prerender [flags] # SSG: render upload/*.html in place
|
|
40
|
+
nodality help
|
|
41
|
+
|
|
42
|
+
Prerender flags (all optional; fall through to nodality.config.json, then defaults):
|
|
43
|
+
--origin=<url> Public origin, e.g. https://example.com (required if no config)
|
|
44
|
+
--upload=<path> Upload directory (default: ./upload)
|
|
45
|
+
--default-locale=<code> Default locale code for multi-locale builds
|
|
46
|
+
--locales=<a,b,c> Comma-separated locale list
|
|
47
|
+
--tolerate-async Install uncaught/unhandledRejection handlers so a single page's
|
|
48
|
+
late throw (from a deferred animation/fetch timer) doesn't abort
|
|
49
|
+
the whole batch — useful for sites with span-animation entries.
|
|
50
|
+
--verbose Print every console.log() emitted by the library during render.
|
|
51
|
+
Default is quiet — only progress lines, page sizes, and the
|
|
52
|
+
final summary are shown. Use this when debugging.
|
|
53
|
+
|
|
54
|
+
Examples:
|
|
55
|
+
nodality prerender
|
|
56
|
+
nodality prerender --origin=https://example.com --tolerate-async
|
|
57
|
+
nodality prerender --verbose
|
|
58
|
+
`);
|
|
59
|
+
process.exit(1);
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
/**
|
|
63
|
+
* Install a stdout filter that hides the library's internal debug
|
|
64
|
+
* chatter (OGA, MBO, BRIS, APPENDED-, 0P, TAGS SET, date stamps, raw
|
|
65
|
+
* object dumps, "Appending brand:" lines, etc.) during prerender.
|
|
66
|
+
* Progress banners from `prerenderSite` (page-name lines, `→ … KB`,
|
|
67
|
+
* `✅ Prerender done`) and our own `[nodality] …` banner pass through
|
|
68
|
+
* unmodified.
|
|
69
|
+
*
|
|
70
|
+
* Bypassed with --verbose (or NODALITY_VERBOSE=1) when you need the
|
|
71
|
+
* full chatter to debug a render that silently goes wrong.
|
|
72
|
+
*
|
|
73
|
+
* We hook process.stdout.write (not console.log) because the library
|
|
74
|
+
* has 100+ scattered console.log calls across 30 files, AND because
|
|
75
|
+
* jsdom's virtual console forwards differently than expected, AND
|
|
76
|
+
* because some output uses process.stdout.write directly. Filtering
|
|
77
|
+
* at the byte stream catches every path uniformly.
|
|
78
|
+
*/
|
|
79
|
+
function installLogFilter() {
|
|
80
|
+
const origWrite = process.stdout.write.bind(process.stdout);
|
|
81
|
+
|
|
82
|
+
// Strict whitelist: only lines matching one of these patterns
|
|
83
|
+
// survive. Everything else (dev markers, object dumps, stack traces
|
|
84
|
+
// from page scripts, HTML fragments leaking out of jsdom, media-
|
|
85
|
+
// query strings, date stamps, …) is dropped.
|
|
86
|
+
const ALLOW = [
|
|
87
|
+
/^\[nodality\]/, // our CLI banner
|
|
88
|
+
/^🌍/, // prerenderSite progress banner
|
|
89
|
+
/^✅/, /^❌/, /^⚠/, // status emojis
|
|
90
|
+
/^── /, // locale separators
|
|
91
|
+
/^ [a-z0-9\-]+\.html\s/, // page progress: " index.html ..."
|
|
92
|
+
/^→ /, // result lines
|
|
93
|
+
/^$/, // blank lines (preserve spacing)
|
|
94
|
+
];
|
|
95
|
+
|
|
96
|
+
function shouldDropLine(line) {
|
|
97
|
+
for (const rx of ALLOW) if (rx.test(line)) return false;
|
|
98
|
+
return true;
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
// Buffer partial lines so we can decide on line boundaries.
|
|
102
|
+
let buf = "";
|
|
103
|
+
|
|
104
|
+
process.stdout.write = function (chunk, encoding, cb) {
|
|
105
|
+
const s = typeof chunk === "string" ? chunk : chunk?.toString?.(encoding || "utf8") ?? "";
|
|
106
|
+
buf += s;
|
|
107
|
+
|
|
108
|
+
let out = "";
|
|
109
|
+
let nl;
|
|
110
|
+
while ((nl = buf.indexOf("\n")) !== -1) {
|
|
111
|
+
const line = buf.slice(0, nl);
|
|
112
|
+
buf = buf.slice(nl + 1);
|
|
113
|
+
if (!shouldDropLine(line)) out += line + "\n";
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
// A trailing buffer with no newline is a progress write like
|
|
117
|
+
// ` index.html ` from prerender-site.js. Pass it
|
|
118
|
+
// through so the user sees progress before the line completes.
|
|
119
|
+
// We only do this when the buffered fragment passes the page-
|
|
120
|
+
// progress check; otherwise hold until newline.
|
|
121
|
+
if (buf && /^ [a-z0-9\-]+\.html\s/.test(buf)) {
|
|
122
|
+
out += buf;
|
|
123
|
+
buf = "";
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
if (out) origWrite(out, encoding, cb);
|
|
127
|
+
else if (cb) cb();
|
|
128
|
+
return true;
|
|
129
|
+
};
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
// ─── Flag parsing — minimal, no deps ────────────────────────────
|
|
133
|
+
|
|
134
|
+
function parseFlags(argv) {
|
|
135
|
+
const flags = {};
|
|
136
|
+
for (const arg of argv) {
|
|
137
|
+
if (!arg.startsWith("--")) continue;
|
|
138
|
+
const eq = arg.indexOf("=");
|
|
139
|
+
if (eq === -1) flags[arg.slice(2)] = true;
|
|
140
|
+
else flags[arg.slice(2, eq)] = arg.slice(eq + 1);
|
|
141
|
+
}
|
|
142
|
+
return flags;
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
// ─── Config file loader ─────────────────────────────────────────
|
|
146
|
+
|
|
147
|
+
function loadConfigFile(cwd) {
|
|
148
|
+
const p = path.join(cwd, "nodality.config.json");
|
|
149
|
+
if (!fs.existsSync(p)) return {};
|
|
150
|
+
try {
|
|
151
|
+
return JSON.parse(fs.readFileSync(p, "utf8"));
|
|
152
|
+
} catch (e) {
|
|
153
|
+
console.error(`[nodality] Failed to parse ${p}: ${e.message}`);
|
|
154
|
+
process.exit(1);
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
// ─── Page auto-discovery ────────────────────────────────────────
|
|
159
|
+
|
|
160
|
+
/**
|
|
161
|
+
* Pair each upload/<name>.html with its entry script. Supports both
|
|
162
|
+
* common layouts:
|
|
163
|
+
* • Flat: `upload/app.js`, `upload/o-konceptu.js` at uploadDir root
|
|
164
|
+
* • Nested: `upload/pages/index.js`, `upload/pages/products.js`
|
|
165
|
+
*
|
|
166
|
+
* HTMLs with no matching entry are skipped with a warning. Irregular
|
|
167
|
+
* pairs (e.g. `index.html → app.js`) can be declared explicitly via
|
|
168
|
+
* the `pages` key in nodality.config.json, which bypasses discovery.
|
|
169
|
+
*/
|
|
170
|
+
function discoverPages(uploadDir) {
|
|
171
|
+
if (!fs.existsSync(uploadDir)) {
|
|
172
|
+
console.error(`[nodality] uploadDir not found: ${uploadDir}`);
|
|
173
|
+
process.exit(1);
|
|
174
|
+
}
|
|
175
|
+
const htmls = fs
|
|
176
|
+
.readdirSync(uploadDir)
|
|
177
|
+
.filter((f) => f.endsWith(".html"))
|
|
178
|
+
.sort();
|
|
179
|
+
|
|
180
|
+
const pages = [];
|
|
181
|
+
for (const html of htmls) {
|
|
182
|
+
const base = path.basename(html, ".html");
|
|
183
|
+
const candidates = [path.join("pages", `${base}.js`), `${base}.js`];
|
|
184
|
+
let entry = null;
|
|
185
|
+
for (const c of candidates) {
|
|
186
|
+
if (fs.existsSync(path.join(uploadDir, c))) {
|
|
187
|
+
entry = c;
|
|
188
|
+
break;
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
if (entry) pages.push({ html, entry });
|
|
192
|
+
else console.warn(`[nodality] ⚠ ${html} skipped — no pages/${base}.js or ${base}.js`);
|
|
193
|
+
}
|
|
194
|
+
|
|
195
|
+
if (pages.length === 0) {
|
|
196
|
+
console.error(`[nodality] No HTML/entry pairs found under ${uploadDir}.`);
|
|
197
|
+
process.exit(1);
|
|
198
|
+
}
|
|
199
|
+
return pages;
|
|
200
|
+
}
|
|
201
|
+
|
|
202
|
+
// ─── prerender subcommand ──────────────────────────────────────
|
|
203
|
+
|
|
204
|
+
async function runPrerender(rawArgs) {
|
|
205
|
+
const cwd = process.cwd();
|
|
206
|
+
const flags = parseFlags(rawArgs);
|
|
207
|
+
const fileConfig = loadConfigFile(cwd);
|
|
208
|
+
|
|
209
|
+
// Flag > config file > default.
|
|
210
|
+
const origin = flags.origin || fileConfig.origin || null;
|
|
211
|
+
const uploadDir = path.resolve(cwd, flags.upload || fileConfig.uploadDir || "upload");
|
|
212
|
+
const defaultLocale = flags["default-locale"] || fileConfig.defaultLocale || null;
|
|
213
|
+
const locales =
|
|
214
|
+
(flags.locales && flags.locales.split(",").map((s) => s.trim())) ||
|
|
215
|
+
fileConfig.locales ||
|
|
216
|
+
null;
|
|
217
|
+
const tolerateAsync =
|
|
218
|
+
flags["tolerate-async"] === true ||
|
|
219
|
+
flags["tolerate-async"] === "true" ||
|
|
220
|
+
fileConfig.tolerateAsyncErrors === true;
|
|
221
|
+
|
|
222
|
+
// Quiet by default; --verbose or NODALITY_VERBOSE=1 turns the
|
|
223
|
+
// library's internal chatter back on. Only install the filter once
|
|
224
|
+
// (the multi-locale fanout re-enters this function in the parent
|
|
225
|
+
// process for the no-locales path, but on the child path
|
|
226
|
+
// NODALITY_SSG_LOCALE is set and we still want the filter on).
|
|
227
|
+
const verbose =
|
|
228
|
+
flags.verbose === true ||
|
|
229
|
+
flags.verbose === "true" ||
|
|
230
|
+
process.env.NODALITY_VERBOSE === "1" ||
|
|
231
|
+
fileConfig.verbose === true;
|
|
232
|
+
if (!verbose) installLogFilter();
|
|
233
|
+
|
|
234
|
+
if (!origin) {
|
|
235
|
+
console.error(`[nodality] --origin not given and no "origin" in nodality.config.json.`);
|
|
236
|
+
process.exit(1);
|
|
237
|
+
}
|
|
238
|
+
|
|
239
|
+
if (tolerateAsync) {
|
|
240
|
+
// Some Nodality animation ops schedule setTimeout callbacks that
|
|
241
|
+
// fire AFTER prerender has serialized the page. When those throw
|
|
242
|
+
// (jsdom realm closed, etc.) a Node default-handler would kill
|
|
243
|
+
// the whole process mid-batch. Demote to warnings so the loop
|
|
244
|
+
// keeps going — same pattern the hand-written prerender.mjs
|
|
245
|
+
// files used in sls3-2025/2026.
|
|
246
|
+
process.on("uncaughtException", (e) =>
|
|
247
|
+
console.warn(`⚠ uncaughtException: ${e.message}`),
|
|
248
|
+
);
|
|
249
|
+
process.on("unhandledRejection", (e) =>
|
|
250
|
+
console.warn(`⚠ unhandledRejection: ${e?.message ?? e}`),
|
|
251
|
+
);
|
|
252
|
+
}
|
|
253
|
+
|
|
254
|
+
// Explicit `pages` from config wins over auto-discovery. The
|
|
255
|
+
// discovery rules (pages/<base>.js, <base>.js) can't infer
|
|
256
|
+
// irregular pairs like h7-nodality's `index.html → app.js`; for
|
|
257
|
+
// those projects the user lists pairs in nodality.config.json.
|
|
258
|
+
const pages =
|
|
259
|
+
Array.isArray(fileConfig.pages) && fileConfig.pages.length
|
|
260
|
+
? fileConfig.pages
|
|
261
|
+
: discoverPages(uploadDir);
|
|
262
|
+
|
|
263
|
+
// Only the PARENT process prints the banner. In multi-locale fanout
|
|
264
|
+
// each locale runs in a child subprocess that re-enters this same
|
|
265
|
+
// script with NODALITY_SSG_LOCALE set; suppressing the banner there
|
|
266
|
+
// keeps output clean (the parent already prints `── cs ──` separators).
|
|
267
|
+
if (!process.env.NODALITY_SSG_LOCALE) {
|
|
268
|
+
console.log(
|
|
269
|
+
`[nodality] Prerender ${pages.length} page(s) @ ${origin}` +
|
|
270
|
+
(defaultLocale ? ` (default: ${defaultLocale})` : " (single-locale, untagged)"),
|
|
271
|
+
);
|
|
272
|
+
}
|
|
273
|
+
|
|
274
|
+
const config = { origin, uploadDir, pages };
|
|
275
|
+
if (defaultLocale) config.defaultLocale = defaultLocale;
|
|
276
|
+
if (locales) config.locales = locales;
|
|
277
|
+
|
|
278
|
+
await prerenderSite(config);
|
|
279
|
+
}
|
|
280
|
+
|
|
281
|
+
// ─── Dispatch ──────────────────────────────────────────────────
|
|
282
|
+
|
|
283
|
+
async function main() {
|
|
284
|
+
// Subprocess-mode shortcut. `prerenderSite` parallelises locales
|
|
285
|
+
// by spawning `process.argv[1]` (this script) as a child with the
|
|
286
|
+
// NODALITY_SSG_LOCALE env var set but NO CLI args. Without this
|
|
287
|
+
// branch the child would hit showUsage() and exit, killing every
|
|
288
|
+
// locale's render. Re-enter the prerender directly when the env
|
|
289
|
+
// var is present.
|
|
290
|
+
if (process.env.NODALITY_SSG_LOCALE !== undefined) {
|
|
291
|
+
await runPrerender([]);
|
|
292
|
+
return;
|
|
293
|
+
}
|
|
294
|
+
|
|
295
|
+
const [command, ...rest] = process.argv.slice(2);
|
|
296
|
+
if (!command || command === "help" || command === "--help" || command === "-h") {
|
|
297
|
+
showUsage();
|
|
298
|
+
} else if (command === "prerender") {
|
|
299
|
+
await runPrerender(rest);
|
|
300
|
+
} else {
|
|
301
|
+
console.error(`[nodality] Unknown command: ${command}`);
|
|
302
|
+
showUsage();
|
|
303
|
+
}
|
|
304
|
+
}
|
|
305
|
+
|
|
306
|
+
main().catch((err) => {
|
|
307
|
+
console.error(`[nodality] ${err?.message ?? err}`);
|
|
308
|
+
process.exit(1);
|
|
309
|
+
});
|
package/layout/animator.js
CHANGED
package/layout/audio.js
CHANGED
package/layout/audionew.js
CHANGED
package/layout/base-2.js
CHANGED
package/layout/base.js
CHANGED
package/layout/box.js
CHANGED
package/layout/button.js
CHANGED
package/layout/cards.js
CHANGED
package/layout/center.js
CHANGED
package/layout/checkbox.js
CHANGED
package/layout/circle.js
CHANGED
package/layout/clean-row.js
CHANGED
package/layout/code.js
CHANGED
package/layout/container.js
CHANGED
package/layout/custom.js
CHANGED
package/layout/div-image.js
CHANGED
package/layout/dropdown-2025.js
CHANGED
package/layout/dropdown.js
CHANGED
package/layout/empty-element.js
CHANGED
package/layout/flex-card.js
CHANGED
package/layout/flex-grid.js
CHANGED
package/layout/flex-row.js
CHANGED
package/layout/footer.js
CHANGED
package/layout/free.js
CHANGED
package/layout/grid-new.js
CHANGED
package/layout/grid-switcher.js
CHANGED
package/layout/grid.js
CHANGED
package/layout/group.js
CHANGED
package/layout/header.js
CHANGED
package/layout/image-old.js
CHANGED
package/layout/image.js
CHANGED
package/layout/index.js
CHANGED
package/layout/label.js
CHANGED
package/layout/link.js
CHANGED
package/layout/list-OLD.js
CHANGED
package/layout/list.js
CHANGED
package/layout/meta-adder.js
CHANGED
package/layout/modal-2025.js
CHANGED
package/layout/modernwrap.js
CHANGED
package/layout/multiswitcher.js
CHANGED
package/layout/nav-bar.js
CHANGED
package/layout/navBar-OLD.js
CHANGED
package/layout/new-flat-adder.js
CHANGED
package/layout/new-nav-bar.js
CHANGED
package/layout/polygon.js
CHANGED
package/layout/prerender-site.js
CHANGED
package/layout/prerender.js
CHANGED
package/layout/progress.js
CHANGED
package/layout/row.js
CHANGED
package/layout/scroll-video.js
CHANGED
package/layout/side-bar.js
CHANGED
package/layout/side-nav-bar.js
CHANGED
package/layout/simple-bar.js
CHANGED
package/layout/slider-2025.js
CHANGED
package/layout/spacer.js
CHANGED
package/layout/stack.js
CHANGED
package/layout/styler.js
CHANGED
package/layout/svg.js
CHANGED
package/layout/switcher.js
CHANGED
package/layout/table.js
CHANGED
package/layout/text-field.js
CHANGED
package/layout/text.js
CHANGED
package/layout/ulist.js
CHANGED
package/layout/video.js
CHANGED
package/layout/without-new.js
CHANGED
package/layout/wrap.js
CHANGED
package/layout/zoom-card.js
CHANGED
package/lib/card-getter.js
CHANGED
package/lib/designer.js
CHANGED
package/lib/element-mapper.js
CHANGED
package/lib/link-getter.js
CHANGED
package/lib/scroll-video.js
CHANGED
package/lib/stacker.js
CHANGED
package/lib/theme.js
CHANGED
package/lib/transform-anim.js
CHANGED
package/package.json
CHANGED
|
@@ -1,13 +1,17 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "nodality",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.162",
|
|
4
4
|
"description": "A lightweight library for declarative UI elements.",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"module": "dist/index.esm.js",
|
|
7
|
+
"bin": {
|
|
8
|
+
"nodality": "bin/nodality.js"
|
|
9
|
+
},
|
|
7
10
|
"files": [
|
|
8
11
|
"lib/",
|
|
9
12
|
"layout/",
|
|
10
|
-
"dist/"
|
|
13
|
+
"dist/",
|
|
14
|
+
"bin/"
|
|
11
15
|
],
|
|
12
16
|
"exports": {
|
|
13
17
|
".": {
|
|
@@ -17,6 +21,10 @@
|
|
|
17
21
|
"./ssg": "./layout/prerender.js",
|
|
18
22
|
"./ssg-site": "./layout/prerender-site.js"
|
|
19
23
|
},
|
|
24
|
+
"publishConfig": {
|
|
25
|
+
"access": "public",
|
|
26
|
+
"provenance": true
|
|
27
|
+
},
|
|
20
28
|
"scripts": {
|
|
21
29
|
"build": "webpack --config webpack.config.js",
|
|
22
30
|
"test:jest": "jest",
|
|
@@ -33,7 +41,7 @@
|
|
|
33
41
|
"license": "MIT",
|
|
34
42
|
"repository": {
|
|
35
43
|
"type": "git",
|
|
36
|
-
"url": "https://github.com/nodalityjs/nodality"
|
|
44
|
+
"url": "git+https://github.com/nodalityjs/nodality.git"
|
|
37
45
|
},
|
|
38
46
|
"author": {
|
|
39
47
|
"name": "Filip Vabrousek",
|