@atlasauth/cli 0.1.0 → 0.2.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.
@@ -0,0 +1,248 @@
1
+ "use strict";
2
+ /**
3
+ * The on-disk format for `atlas config` — the config-as-code layer. Two
4
+ * concerns live here, kept away from the command logic:
5
+ *
6
+ * 1. CANONICALIZATION. A value is normalised before it is written or compared
7
+ * so an export is byte-for-byte deterministic and a round-trip is a no-op
8
+ * diff. We sort object keys (the same rule Go's `json.Marshal` and the
9
+ * Terraform provider's `canonicalJSON` use) and PRESERVE array order — so a
10
+ * field whose order is meaningful (a claim mapping, an auth_config list) is
11
+ * never silently reordered.
12
+ *
13
+ * 2. THE CODEC. JSON is the robust default. YAML is offered for readable diffs
14
+ * in a repo; our YAML is a deliberately small, fully-specified subset where
15
+ * every map key and every scalar is JSON-encoded, so it is unambiguous to
16
+ * parse, round-trips exactly (newlines, URL-shaped keys, unicode and all),
17
+ * and is still valid YAML (JSON is a YAML subset).
18
+ */
19
+ Object.defineProperty(exports, "__esModule", { value: true });
20
+ exports.canonicalize = canonicalize;
21
+ exports.canonicalString = canonicalString;
22
+ exports.deepEqual = deepEqual;
23
+ exports.serialize = serialize;
24
+ exports.deserialize = deserialize;
25
+ /** A plain JSON value with all object keys recursively sorted; arrays untouched. */
26
+ function canonicalize(value) {
27
+ if (value === null || value === undefined)
28
+ return null;
29
+ if (Array.isArray(value))
30
+ return value.map((v) => canonicalize(v));
31
+ if (typeof value === 'object') {
32
+ const out = {};
33
+ for (const key of Object.keys(value).sort()) {
34
+ const v = value[key];
35
+ if (v === undefined)
36
+ continue; // omit undefined so it never reaches disk
37
+ out[key] = canonicalize(v);
38
+ }
39
+ return out;
40
+ }
41
+ if (typeof value === 'number' || typeof value === 'boolean' || typeof value === 'string') {
42
+ return value;
43
+ }
44
+ // Functions, symbols, bigint: not part of a config document.
45
+ return null;
46
+ }
47
+ /** Canonical JSON string — the equality oracle for the diff engine. */
48
+ function canonicalString(value) {
49
+ return JSON.stringify(canonicalize(value));
50
+ }
51
+ /** True when two config values are equal after canonicalization. */
52
+ function deepEqual(a, b) {
53
+ return canonicalString(a) === canonicalString(b);
54
+ }
55
+ /** Serialize a canonicalizable value to the chosen format, with a trailing newline. */
56
+ function serialize(value, format) {
57
+ const canon = canonicalize(value);
58
+ if (format === 'json')
59
+ return JSON.stringify(canon, null, 2) + '\n';
60
+ return emitYaml(canon, 0) + '\n';
61
+ }
62
+ /** Parse a document written by {@link serialize}. */
63
+ function deserialize(text, format) {
64
+ if (format === 'json')
65
+ return JSON.parse(text);
66
+ return parseYaml(text);
67
+ }
68
+ // ─────────────────────────────── YAML emit ───────────────────────────────
69
+ const INDENT = ' ';
70
+ function emitYaml(value, depth) {
71
+ const pad = INDENT.repeat(depth);
72
+ if (Array.isArray(value)) {
73
+ if (value.length === 0)
74
+ return `${pad}[]`;
75
+ return value.map((item) => emitSeqItem(item, depth)).join('\n');
76
+ }
77
+ if (value !== null && typeof value === 'object') {
78
+ const keys = Object.keys(value);
79
+ if (keys.length === 0)
80
+ return `${pad}{}`;
81
+ return keys.map((key) => emitMapEntry(key, value[key], depth)).join('\n');
82
+ }
83
+ // A bare scalar document.
84
+ return `${pad}${JSON.stringify(value)}`;
85
+ }
86
+ function emitMapEntry(key, value, depth) {
87
+ const pad = INDENT.repeat(depth);
88
+ const k = JSON.stringify(key);
89
+ if (isContainer(value) && !isEmptyContainer(value)) {
90
+ return `${pad}${k}:\n${emitYaml(value, depth + 1)}`;
91
+ }
92
+ return `${pad}${k}: ${scalarOrEmpty(value)}`;
93
+ }
94
+ function emitSeqItem(value, depth) {
95
+ const pad = INDENT.repeat(depth);
96
+ if (isContainer(value) && !isEmptyContainer(value)) {
97
+ return `${pad}-\n${emitYaml(value, depth + 1)}`;
98
+ }
99
+ return `${pad}- ${scalarOrEmpty(value)}`;
100
+ }
101
+ function scalarOrEmpty(value) {
102
+ if (Array.isArray(value))
103
+ return '[]';
104
+ if (value !== null && typeof value === 'object')
105
+ return '{}';
106
+ return JSON.stringify(value);
107
+ }
108
+ function isContainer(v) {
109
+ return Array.isArray(v) || (v !== null && typeof v === 'object');
110
+ }
111
+ function isEmptyContainer(v) {
112
+ if (Array.isArray(v))
113
+ return v.length === 0;
114
+ if (v !== null && typeof v === 'object')
115
+ return Object.keys(v).length === 0;
116
+ return false;
117
+ }
118
+ function parseYaml(text) {
119
+ const lines = [];
120
+ for (const raw of text.split('\n')) {
121
+ if (raw.trim() === '')
122
+ continue;
123
+ const indent = raw.length - raw.replace(/^ +/, '').length;
124
+ lines.push({ indent, content: raw.slice(indent) });
125
+ }
126
+ if (lines.length === 0)
127
+ return null;
128
+ const first = lines[0];
129
+ // A whole-document scalar or empty container (`42`, `"x"`, `true`, `[]`, `{}`)
130
+ // is a single line that is neither a sequence item nor a `"key":` entry.
131
+ if (lines.length === 1 && !isSeqLine(first.content) && !looksLikeMapEntry(first.content)) {
132
+ return parseScalar(first.content, 0);
133
+ }
134
+ const [value, next] = parseBlock(lines, 0, first.indent);
135
+ if (next !== lines.length) {
136
+ throw new Error(`atlas config: malformed YAML near line ${next + 1}.`);
137
+ }
138
+ return value;
139
+ }
140
+ function isSeqLine(content) {
141
+ return content === '-' || content.startsWith('- ');
142
+ }
143
+ /** True when a line is a `"<json-key>":` map entry (vs. a bare scalar document). */
144
+ function looksLikeMapEntry(content) {
145
+ if (!content.startsWith('"'))
146
+ return false;
147
+ try {
148
+ return content[jsonStringEnd(content) + 1] === ':';
149
+ }
150
+ catch {
151
+ return false;
152
+ }
153
+ }
154
+ function parseBlock(lines, pos, indent) {
155
+ const first = lines[pos];
156
+ if (first.content === '-' || first.content.startsWith('- ')) {
157
+ return parseSeq(lines, pos, indent);
158
+ }
159
+ return parseMap(lines, pos, indent);
160
+ }
161
+ function parseMap(lines, pos, indent) {
162
+ const out = {};
163
+ let i = pos;
164
+ while (i < lines.length && lines[i].indent === indent) {
165
+ const line = lines[i];
166
+ if (line.content.startsWith('- ') || line.content === '-')
167
+ break;
168
+ const { key, rest } = splitKey(line.content, i);
169
+ if (rest === '') {
170
+ // Nested block on the following, more-indented lines.
171
+ if (i + 1 >= lines.length || lines[i + 1].indent <= indent) {
172
+ throw new Error(`atlas config: expected a nested block after '${key}:' (line ${i + 1}).`);
173
+ }
174
+ const [value, next] = parseBlock(lines, i + 1, lines[i + 1].indent);
175
+ out[key] = value;
176
+ i = next;
177
+ }
178
+ else {
179
+ out[key] = parseScalar(rest, i);
180
+ i += 1;
181
+ }
182
+ }
183
+ return [out, i];
184
+ }
185
+ function parseSeq(lines, pos, indent) {
186
+ const out = [];
187
+ let i = pos;
188
+ while (i < lines.length && lines[i].indent === indent) {
189
+ const line = lines[i];
190
+ if (!(line.content === '-' || line.content.startsWith('- ')))
191
+ break;
192
+ const rest = line.content === '-' ? '' : line.content.slice(2);
193
+ if (rest === '') {
194
+ if (i + 1 >= lines.length || lines[i + 1].indent <= indent) {
195
+ throw new Error(`atlas config: expected a nested block after '-' (line ${i + 1}).`);
196
+ }
197
+ const [value, next] = parseBlock(lines, i + 1, lines[i + 1].indent);
198
+ out.push(value);
199
+ i = next;
200
+ }
201
+ else {
202
+ out.push(parseScalar(rest, i));
203
+ i += 1;
204
+ }
205
+ }
206
+ return [out, i];
207
+ }
208
+ /** Split `"<json-key>": <rest>` (or `"<json-key>":`) into the decoded key and the rest. */
209
+ function splitKey(content, lineNo) {
210
+ if (!content.startsWith('"')) {
211
+ throw new Error(`atlas config: expected a quoted key (line ${lineNo + 1}): ${content}`);
212
+ }
213
+ const end = jsonStringEnd(content);
214
+ const key = JSON.parse(content.slice(0, end + 1));
215
+ let after = content.slice(end + 1);
216
+ if (!after.startsWith(':')) {
217
+ throw new Error(`atlas config: expected ':' after key (line ${lineNo + 1}): ${content}`);
218
+ }
219
+ after = after.slice(1);
220
+ return { key, rest: after.startsWith(' ') ? after.slice(1) : after };
221
+ }
222
+ /** Find the index of the closing quote of the JSON string that starts at index 0. */
223
+ function jsonStringEnd(s) {
224
+ let i = 1;
225
+ while (i < s.length) {
226
+ if (s[i] === '\\') {
227
+ i += 2;
228
+ continue;
229
+ }
230
+ if (s[i] === '"')
231
+ return i;
232
+ i += 1;
233
+ }
234
+ throw new Error(`atlas config: unterminated quoted string: ${s}`);
235
+ }
236
+ function parseScalar(rest, lineNo) {
237
+ if (rest === '[]')
238
+ return [];
239
+ if (rest === '{}')
240
+ return {};
241
+ try {
242
+ return JSON.parse(rest);
243
+ }
244
+ catch {
245
+ throw new Error(`atlas config: invalid scalar (line ${lineNo + 1}): ${rest}`);
246
+ }
247
+ }
248
+ //# sourceMappingURL=serialize.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"serialize.js","sourceRoot":"","sources":["../src/serialize.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@atlasauth/cli",
3
- "version": "0.1.0",
3
+ "version": "0.2.0",
4
4
  "description": "atlas — manage an Atlas instance from the terminal via the Backend API.",
5
5
  "bin": {
6
6
  "atlas": "dist/cli.js"
@@ -15,7 +15,8 @@
15
15
  "./package.json": "./package.json"
16
16
  },
17
17
  "dependencies": {
18
- "@atlasauth/backend": "0.1.7"
18
+ "@atlasauth/backend": "0.3.0",
19
+ "@atlasauth/actions": "0.1.0"
19
20
  },
20
21
  "devDependencies": {
21
22
  "@types/node": "^22.9.0",