@baiyibai-antora/extensions 1.5.2 → 1.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (31) hide show
  1. package/CHANGELOG.adoc +12 -0
  2. package/README.adoc +60 -34
  3. package/dist/extensions/asciidoctorconfig/index.d.ts.map +1 -1
  4. package/dist/extensions/asciidoctorconfig/index.js +2 -1
  5. package/dist/extensions/asciidoctorconfig/index.js.map +1 -1
  6. package/dist/extensions/assembler-rename-pdf/index.d.ts.map +1 -1
  7. package/dist/extensions/assembler-rename-pdf/index.js +2 -1
  8. package/dist/extensions/assembler-rename-pdf/index.js.map +1 -1
  9. package/dist/extensions/assembler-ruby-preflight/index.d.ts.map +1 -1
  10. package/dist/extensions/assembler-ruby-preflight/index.js +2 -1
  11. package/dist/extensions/assembler-ruby-preflight/index.js.map +1 -1
  12. package/dist/extensions/collector-writer/index.d.ts.map +1 -1
  13. package/dist/extensions/collector-writer/index.js +2 -1
  14. package/dist/extensions/collector-writer/index.js.map +1 -1
  15. package/dist/extensions/external-asset-downloader/index.d.ts.map +1 -1
  16. package/dist/extensions/external-asset-downloader/index.js +2 -1
  17. package/dist/extensions/external-asset-downloader/index.js.map +1 -1
  18. package/dist/extensions/list-of-site/index.d.ts.map +1 -1
  19. package/dist/extensions/list-of-site/index.js +2 -1
  20. package/dist/extensions/list-of-site/index.js.map +1 -1
  21. package/dist/extensions/trademark-it/index.d.ts.map +1 -1
  22. package/dist/extensions/trademark-it/index.js +2 -1
  23. package/dist/extensions/trademark-it/index.js.map +1 -1
  24. package/dist/extensions/vale-integration/index.d.ts.map +1 -1
  25. package/dist/extensions/vale-integration/index.js +4 -7
  26. package/dist/extensions/vale-integration/index.js.map +1 -1
  27. package/dist/lib/log-time.d.ts +13 -0
  28. package/dist/lib/log-time.d.ts.map +1 -0
  29. package/dist/lib/log-time.js +133 -0
  30. package/dist/lib/log-time.js.map +1 -0
  31. package/package.json +1 -1
@@ -0,0 +1,133 @@
1
+ "use strict";
2
+ /**
3
+ * Shared local-time helpers for baiyibai-extensions log output.
4
+ *
5
+ * Node resolves its timezone through ICU, which reads the /etc/localtime
6
+ * symlink name and ignores the file content. A container run with
7
+ * -v /etc/localtime:/etc/localtime:ro therefore stays on UTC even though
8
+ * glibc tools see the host zone. Loading this module derives the zone from
9
+ * the file content instead and sets process.env.TZ, so every timestamp in
10
+ * the build process follows the host wall clock. An explicit TZ always wins.
11
+ */
12
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
13
+ if (k2 === undefined) k2 = k;
14
+ var desc = Object.getOwnPropertyDescriptor(m, k);
15
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
16
+ desc = { enumerable: true, get: function() { return m[k]; } };
17
+ }
18
+ Object.defineProperty(o, k2, desc);
19
+ }) : (function(o, m, k, k2) {
20
+ if (k2 === undefined) k2 = k;
21
+ o[k2] = m[k];
22
+ }));
23
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
24
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
25
+ }) : function(o, v) {
26
+ o["default"] = v;
27
+ });
28
+ var __importStar = (this && this.__importStar) || (function () {
29
+ var ownKeys = function(o) {
30
+ ownKeys = Object.getOwnPropertyNames || function (o) {
31
+ var ar = [];
32
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
33
+ return ar;
34
+ };
35
+ return ownKeys(o);
36
+ };
37
+ return function (mod) {
38
+ if (mod && mod.__esModule) return mod;
39
+ var result = {};
40
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
41
+ __setModuleDefault(result, mod);
42
+ return result;
43
+ };
44
+ })();
45
+ Object.defineProperty(exports, "__esModule", { value: true });
46
+ exports.nowLocal = nowLocal;
47
+ exports.localTimestampSlug = localTimestampSlug;
48
+ const fs = __importStar(require("node:fs"));
49
+ const path = __importStar(require("node:path"));
50
+ const ZONEINFO_ROOT = '/usr/share/zoneinfo';
51
+ const NON_ZONE_NAMES = new Set(['posix', 'right', 'posixrules', 'Factory', 'localtime']);
52
+ function matchZoneinfo(want, dir, rel = '') {
53
+ let entries;
54
+ try {
55
+ entries = fs.readdirSync(dir, { withFileTypes: true });
56
+ }
57
+ catch {
58
+ return null;
59
+ }
60
+ for (const entry of entries) {
61
+ if (rel === '' && NON_ZONE_NAMES.has(entry.name))
62
+ continue;
63
+ const p = path.join(dir, entry.name);
64
+ const name = rel ? `${rel}/${entry.name}` : entry.name;
65
+ if (entry.isDirectory()) {
66
+ const found = matchZoneinfo(want, p, name);
67
+ if (found)
68
+ return found;
69
+ }
70
+ else {
71
+ try {
72
+ const stat = fs.statSync(p);
73
+ if (stat.isFile() && stat.size === want.length && fs.readFileSync(p).equals(want)) {
74
+ return name;
75
+ }
76
+ }
77
+ catch {
78
+ continue;
79
+ }
80
+ }
81
+ }
82
+ return null;
83
+ }
84
+ function zoneOffsetAt(zone, at) {
85
+ const parts = new Intl.DateTimeFormat('en-US', { timeZone: zone, timeZoneName: 'longOffset' }).formatToParts(at);
86
+ return parts.find((p) => p.type === 'timeZoneName')?.value || '';
87
+ }
88
+ function zonesEquivalent(a, b) {
89
+ try {
90
+ const now = new Date();
91
+ const probes = [now, new Date(now.getTime() + 183 * 24 * 60 * 60 * 1000)];
92
+ return probes.every((at) => zoneOffsetAt(a, at) === zoneOffsetAt(b, at));
93
+ }
94
+ catch {
95
+ // a zone name ICU cannot resolve would also break TZ, so treat as equivalent and leave TZ unset
96
+ return true;
97
+ }
98
+ }
99
+ function deriveTimezone() {
100
+ if (process.env.TZ)
101
+ return;
102
+ if (process.platform === 'win32')
103
+ return;
104
+ let content;
105
+ try {
106
+ content = fs.readFileSync('/etc/localtime');
107
+ }
108
+ catch {
109
+ return;
110
+ }
111
+ const matched = matchZoneinfo(content, ZONEINFO_ROOT);
112
+ if (!matched)
113
+ return;
114
+ const icuZone = Intl.DateTimeFormat().resolvedOptions().timeZone;
115
+ if (matched === icuZone || zonesEquivalent(matched, icuZone))
116
+ return;
117
+ process.env.TZ = matched;
118
+ }
119
+ deriveTimezone();
120
+ function pad(n, w = 2) {
121
+ return String(n).padStart(w, '0');
122
+ }
123
+ function nowLocal() {
124
+ const d = new Date();
125
+ return `${pad(d.getHours())}:${pad(d.getMinutes())}:${pad(d.getSeconds())}.${pad(d.getMilliseconds(), 3)}`;
126
+ }
127
+ function localTimestampSlug() {
128
+ const d = new Date();
129
+ const date = `${d.getFullYear()}-${pad(d.getMonth() + 1)}-${pad(d.getDate())}`;
130
+ const time = `${pad(d.getHours())}-${pad(d.getMinutes())}-${pad(d.getSeconds())}-${pad(d.getMilliseconds(), 3)}`;
131
+ return `${date}T${time}`;
132
+ }
133
+ //# sourceMappingURL=log-time.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"log-time.js","sourceRoot":"","sources":["../../src/lib/log-time.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@baiyibai-antora/extensions",
3
- "version": "1.5.2",
3
+ "version": "1.6.0",
4
4
  "description": "Antora extensions and AsciiDoc macros for Baiyibai documentation",
5
5
  "keywords": [
6
6
  "antora",