mikro 0.18.0 → 0.18.1
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/README.md +1 -1
- package/dist/_exports/index.d.ts +9 -0
- package/dist/_exports/index.d.ts.map +1 -1
- package/dist/_exports/index.js.map +1 -1
- package/dist/_exports/ota/client.d.ts +2 -2
- package/dist/_exports/ota/client.d.ts.map +1 -1
- package/dist/_exports/schema.d.ts +5 -1
- package/dist/_exports/schema.d.ts.map +1 -1
- package/dist/_exports/schema.js +13 -1
- package/dist/_exports/schema.js.map +1 -1
- package/dist/cli/commands/deploy.d.ts.map +1 -1
- package/dist/cli/commands/deploy.js +7 -0
- package/dist/cli/commands/deploy.js.map +1 -1
- package/dist/cli/commands/ota/pack.d.ts.map +1 -1
- package/dist/cli/commands/ota/pack.js +11 -1
- package/dist/cli/commands/ota/pack.js.map +1 -1
- package/dist/cli/commands/ota/push.d.ts.map +1 -1
- package/dist/cli/commands/ota/push.js +4 -1
- package/dist/cli/commands/ota/push.js.map +1 -1
- package/dist/cli/commands/ota/release.d.ts.map +1 -1
- package/dist/cli/commands/ota/release.js +11 -2
- package/dist/cli/commands/ota/release.js.map +1 -1
- package/dist/cli/commands/sim/deploy.d.ts.map +1 -1
- package/dist/cli/commands/sim/deploy.js +4 -0
- package/dist/cli/commands/sim/deploy.js.map +1 -1
- package/dist/cli/lib/build.d.ts.map +1 -1
- package/dist/cli/lib/build.js +3 -2
- package/dist/cli/lib/build.js.map +1 -1
- package/dist/cli/lib/configSchema.d.ts +41 -0
- package/dist/cli/lib/configSchema.d.ts.map +1 -0
- package/dist/cli/lib/configSchema.js +127 -0
- package/dist/cli/lib/configSchema.js.map +1 -0
- package/dist/cli/lib/loadMikroConfig.d.ts +15 -0
- package/dist/cli/lib/loadMikroConfig.d.ts.map +1 -1
- package/dist/cli/lib/loadMikroConfig.js +70 -12
- package/dist/cli/lib/loadMikroConfig.js.map +1 -1
- package/dist/cli/lib/ota.d.ts +12 -0
- package/dist/cli/lib/ota.d.ts.map +1 -1
- package/dist/cli/lib/ota.js +20 -2
- package/dist/cli/lib/ota.js.map +1 -1
- package/dist/cli/lib/otaPublish.d.ts +6 -1
- package/dist/cli/lib/otaPublish.d.ts.map +1 -1
- package/dist/cli/lib/otaPublish.js +33 -5
- package/dist/cli/lib/otaPublish.js.map +1 -1
- package/dist/cli/lib/protocol.d.ts +6 -0
- package/dist/cli/lib/protocol.d.ts.map +1 -1
- package/dist/cli/lib/protocol.js +6 -0
- package/dist/cli/lib/protocol.js.map +1 -1
- package/dist/cli/lib/serial/devSession.d.ts.map +1 -1
- package/dist/cli/lib/serial/devSession.js +3 -0
- package/dist/cli/lib/serial/devSession.js.map +1 -1
- package/dist/simulator/builtins/index.js +3 -3
- package/dist/simulator/builtins/index.js.map +1 -1
- package/dist/simulator/builtins/ota-client.d.ts +3 -0
- package/dist/simulator/builtins/ota-client.d.ts.map +1 -0
- package/dist/simulator/builtins/ota-client.js +174 -0
- package/dist/simulator/builtins/ota-client.js.map +1 -0
- package/dist/simulator/builtins/types.d.ts +1 -1
- package/dist/simulator/builtins/types.d.ts.map +1 -1
- package/dist/simulator/simProcess.js +12 -1
- package/dist/simulator/simProcess.js.map +1 -1
- package/package.json +6 -6
- package/dist/simulator/builtins/ota.d.ts +0 -3
- package/dist/simulator/builtins/ota.d.ts.map +0 -1
- package/dist/simulator/builtins/ota.js +0 -86
- package/dist/simulator/builtins/ota.js.map +0 -1
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import type { MikroJSConfig } from '../../_exports/index.js';
|
|
2
|
+
/**
|
|
3
|
+
* Serialize and vet the config schema declared in `mikro.config.ts`, or
|
|
4
|
+
* undefined when the app declares none. Rejection here, not at the registry:
|
|
5
|
+
* the build is where the author can still rename a field or add a default.
|
|
6
|
+
*/
|
|
7
|
+
export declare function serializeConfigSchema(config: MikroJSConfig | null): unknown;
|
|
8
|
+
/** Config-pairing state a cable deploy resets: a staged or rollback document
|
|
9
|
+
* belongs to an OTA install cycle the cable deploy just replaced, and a
|
|
10
|
+
* trial or rollback report describes a document the deploy just replaced.
|
|
11
|
+
* (The delivered document itself, `ota.cfg`, is never touched by a deploy.)
|
|
12
|
+
*/
|
|
13
|
+
export declare const CONFIG_STALE_KVS: readonly ["ota.cfgNext", "ota.cfgPrev", "ota.cfgTrial", "ota.cfgErr"];
|
|
14
|
+
/**
|
|
15
|
+
* Build the `configDefaults` a manifest carries, or undefined when the app
|
|
16
|
+
* declares no schema. The single place both `mikro ota pack` and the dev
|
|
17
|
+
* manifest go through, so a device reads the same defaults either way. The
|
|
18
|
+
* result is partial: it holds every field a default covers and omits the rest
|
|
19
|
+
* (defaultless leaves, units without a whole-value default).
|
|
20
|
+
*/
|
|
21
|
+
export declare function buildConfigDefaults(schema: unknown): Record<string, unknown> | undefined;
|
|
22
|
+
/**
|
|
23
|
+
* The dev-session half of config: the incremental file sync does not go
|
|
24
|
+
* through `pack`, so the manifest `ota.config()` reads its defaults from has
|
|
25
|
+
* to be written into the build tree here (development-resolved config,
|
|
26
|
+
* matching the build). A no-op when the app declares no schema.
|
|
27
|
+
*/
|
|
28
|
+
export declare function writeDevManifest(options: {
|
|
29
|
+
projectRoot: string;
|
|
30
|
+
buildDir: string;
|
|
31
|
+
}): Promise<void>;
|
|
32
|
+
interface KvWriter {
|
|
33
|
+
delete(key: string, namespace: 'sys'): Promise<void>;
|
|
34
|
+
}
|
|
35
|
+
/** Drop the config-pairing state a cable deploy obsoletes (see
|
|
36
|
+
* `CONFIG_STALE_KVS`). The delivered document itself is left alone: its
|
|
37
|
+
* version stamp makes it inert under a version-bumped deploy, and a registry
|
|
38
|
+
* that manages this device re-serves it either way. */
|
|
39
|
+
export declare function clearStaleConfigState(kv: KvWriter): Promise<void>;
|
|
40
|
+
export {};
|
|
41
|
+
//# sourceMappingURL=configSchema.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"configSchema.d.ts","sourceRoot":"","sources":["../../../src/cli/lib/configSchema.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,yBAAyB,CAAA;AAa1D;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,aAAa,GAAG,IAAI,GAAG,OAAO,CAmC3E;AAED;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,uEAKnB,CAAA;AAEV;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAOxF;AAED;;;;;GAKG;AACH,wBAAsB,gBAAgB,CAAC,OAAO,EAAE;IAC9C,WAAW,EAAE,MAAM,CAAA;IACnB,QAAQ,EAAE,MAAM,CAAA;CACjB,GAAG,OAAO,CAAC,IAAI,CAAC,CAuBhB;AAeD,UAAU,QAAQ;IAChB,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;CACrD;AAED;;;wDAGwD;AACxD,wBAAsB,qBAAqB,CAAC,EAAE,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAIvE"}
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
import { readFileSync } from 'node:fs';
|
|
2
|
+
import { mkdir, writeFile } from 'node:fs/promises';
|
|
3
|
+
import * as pathlib from 'node:path';
|
|
4
|
+
import { materializeDefaults, parseConfigSchema } from '@mikrojs/native/runtime/schema/shared';
|
|
5
|
+
import { loadMikroConfig } from './loadMikroConfig.js';
|
|
6
|
+
/** Config schemas over this size are a mistake; matches the registry spec's
|
|
7
|
+
* publish cap. */
|
|
8
|
+
const CONFIG_SCHEMA_MAX_BYTES = 16 * 1024;
|
|
9
|
+
/** The registry spec's cap on a served config document (the device parses it
|
|
10
|
+
* out of a fixed check-in response buffer and stores it in NVS). Enforced at
|
|
11
|
+
* every authoring point so dev and fleet behavior stay in parity: a document
|
|
12
|
+
* that deploys over the cable must also be servable by a registry. */
|
|
13
|
+
const CONFIG_DOC_MAX_BYTES = 4 * 1024;
|
|
14
|
+
/**
|
|
15
|
+
* Serialize and vet the config schema declared in `mikro.config.ts`, or
|
|
16
|
+
* undefined when the app declares none. Rejection here, not at the registry:
|
|
17
|
+
* the build is where the author can still rename a field or add a default.
|
|
18
|
+
*/
|
|
19
|
+
export function serializeConfigSchema(config) {
|
|
20
|
+
if (config?.otaConfigSchema === undefined)
|
|
21
|
+
return undefined;
|
|
22
|
+
let serialized;
|
|
23
|
+
try {
|
|
24
|
+
serialized = JSON.parse(JSON.stringify(config.otaConfigSchema));
|
|
25
|
+
}
|
|
26
|
+
catch (cause) {
|
|
27
|
+
// A circular structure throws from stringify; keep the file named so the
|
|
28
|
+
// author knows where to look.
|
|
29
|
+
throw new Error(`mikro.config.ts: otaConfigSchema does not serialize to JSON`, { cause });
|
|
30
|
+
}
|
|
31
|
+
const checked = parseConfigSchema(serialized);
|
|
32
|
+
if (!checked.ok) {
|
|
33
|
+
const where = checked.error.path === '' ? '' : ` at ${checked.error.path}`;
|
|
34
|
+
throw new Error(`mikro.config.ts: otaConfigSchema is not a valid config schema${where}: ${checked.error.message}`);
|
|
35
|
+
}
|
|
36
|
+
const bytes = Buffer.byteLength(JSON.stringify(serialized));
|
|
37
|
+
if (bytes > CONFIG_SCHEMA_MAX_BYTES) {
|
|
38
|
+
throw new Error(`mikro.config.ts: otaConfigSchema serializes to ${bytes} bytes, over the ${CONFIG_SCHEMA_MAX_BYTES}-byte cap`);
|
|
39
|
+
}
|
|
40
|
+
// Defaults alone over the document cap means no document for this schema
|
|
41
|
+
// could ever be served: every authored config would be rejected and rule 5
|
|
42
|
+
// would pause every rollout. Catch it at build time, where the schema
|
|
43
|
+
// author can trim.
|
|
44
|
+
const docBytes = Buffer.byteLength(JSON.stringify(materializeDefaults(checked.value)));
|
|
45
|
+
if (docBytes > CONFIG_DOC_MAX_BYTES) {
|
|
46
|
+
throw new Error(`mikro.config.ts: otaConfigSchema's defaults alone encode to ${docBytes} bytes, ` +
|
|
47
|
+
`over the ${CONFIG_DOC_MAX_BYTES}-byte config document cap`);
|
|
48
|
+
}
|
|
49
|
+
return serialized;
|
|
50
|
+
}
|
|
51
|
+
/** Config-pairing state a cable deploy resets: a staged or rollback document
|
|
52
|
+
* belongs to an OTA install cycle the cable deploy just replaced, and a
|
|
53
|
+
* trial or rollback report describes a document the deploy just replaced.
|
|
54
|
+
* (The delivered document itself, `ota.cfg`, is never touched by a deploy.)
|
|
55
|
+
*/
|
|
56
|
+
export const CONFIG_STALE_KVS = [
|
|
57
|
+
'ota.cfgNext',
|
|
58
|
+
'ota.cfgPrev',
|
|
59
|
+
'ota.cfgTrial',
|
|
60
|
+
'ota.cfgErr',
|
|
61
|
+
];
|
|
62
|
+
/**
|
|
63
|
+
* Build the `configDefaults` a manifest carries, or undefined when the app
|
|
64
|
+
* declares no schema. The single place both `mikro ota pack` and the dev
|
|
65
|
+
* manifest go through, so a device reads the same defaults either way. The
|
|
66
|
+
* result is partial: it holds every field a default covers and omits the rest
|
|
67
|
+
* (defaultless leaves, units without a whole-value default).
|
|
68
|
+
*/
|
|
69
|
+
export function buildConfigDefaults(schema) {
|
|
70
|
+
if (schema === undefined)
|
|
71
|
+
return undefined;
|
|
72
|
+
const checked = parseConfigSchema(schema);
|
|
73
|
+
if (!checked.ok) {
|
|
74
|
+
throw new Error(`config schema is not valid: ${checked.error.message}`);
|
|
75
|
+
}
|
|
76
|
+
return materializeDefaults(checked.value);
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* The dev-session half of config: the incremental file sync does not go
|
|
80
|
+
* through `pack`, so the manifest `ota.config()` reads its defaults from has
|
|
81
|
+
* to be written into the build tree here (development-resolved config,
|
|
82
|
+
* matching the build). A no-op when the app declares no schema.
|
|
83
|
+
*/
|
|
84
|
+
export async function writeDevManifest(options) {
|
|
85
|
+
const config = await loadMikroConfig(options.projectRoot, 'development');
|
|
86
|
+
const schema = serializeConfigSchema(config);
|
|
87
|
+
const pkg = readProjectPackage(options.projectRoot);
|
|
88
|
+
if (schema !== undefined) {
|
|
89
|
+
// Inside the build tree's app/ directory: the deploy commit keeps only
|
|
90
|
+
// the staged app/ subtree (firmware and sim alike), and the device reads
|
|
91
|
+
// the manifest at /app/mikro.app.json — where a packed build's installer
|
|
92
|
+
// also puts it. Created unconditionally, matching writeManifest, so a
|
|
93
|
+
// build with no app/ directory neither crashes here nor installs without
|
|
94
|
+
// a manifest. Only the materialized defaults ship: the device never
|
|
95
|
+
// reads the schema, so the dev manifest stays small.
|
|
96
|
+
const appDir = pathlib.join(options.buildDir, 'app');
|
|
97
|
+
await mkdir(appDir, { recursive: true });
|
|
98
|
+
await writeFile(pathlib.join(appDir, 'mikro.app.json'), JSON.stringify({
|
|
99
|
+
app: pkg.name ?? 'app',
|
|
100
|
+
version: pkg.version,
|
|
101
|
+
configDefaults: buildConfigDefaults(schema),
|
|
102
|
+
}));
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
function readProjectPackage(projectRoot) {
|
|
106
|
+
try {
|
|
107
|
+
const raw = readFileSync(pathlib.join(projectRoot, 'package.json'), 'utf-8');
|
|
108
|
+
const parsed = JSON.parse(raw);
|
|
109
|
+
return {
|
|
110
|
+
name: typeof parsed.name === 'string' ? parsed.name : undefined,
|
|
111
|
+
version: typeof parsed.version === 'string' ? parsed.version : '0.0.0',
|
|
112
|
+
};
|
|
113
|
+
}
|
|
114
|
+
catch {
|
|
115
|
+
return { version: '0.0.0' };
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
/** Drop the config-pairing state a cable deploy obsoletes (see
|
|
119
|
+
* `CONFIG_STALE_KVS`). The delivered document itself is left alone: its
|
|
120
|
+
* version stamp makes it inert under a version-bumped deploy, and a registry
|
|
121
|
+
* that manages this device re-serves it either way. */
|
|
122
|
+
export async function clearStaleConfigState(kv) {
|
|
123
|
+
for (const key of CONFIG_STALE_KVS) {
|
|
124
|
+
await kv.delete(key, 'sys');
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
//# sourceMappingURL=configSchema.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"configSchema.js","sourceRoot":"","sources":["../../../src/cli/lib/configSchema.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,6 +7,21 @@ import type { MikroEnv, MikroJSConfig } from '../../_exports/index.js';
|
|
|
7
7
|
* only when no config file was found.
|
|
8
8
|
*/
|
|
9
9
|
export declare function resolveConfig(config: MikroJSConfig | null, env: MikroEnv): MikroJSConfig | null;
|
|
10
|
+
/**
|
|
11
|
+
* Prepare stripped config code for evaluation from a data: URL, which has no
|
|
12
|
+
* module-resolution context of its own:
|
|
13
|
+
*
|
|
14
|
+
* - The bare `mikro` import becomes a local `defineConfig` shim.
|
|
15
|
+
* - `mikro/schema` (the one importable device module: it has a host
|
|
16
|
+
* implementation, so a config can build its `configSchema`) is rewritten to
|
|
17
|
+
* `schemaUrl`, the CLI's resolved location of that implementation.
|
|
18
|
+
* - Relative imports (the app's own schema module, typically) are resolved
|
|
19
|
+
* against `dir`, with a `.js` specifier falling back to the `.ts` source
|
|
20
|
+
* when only that exists, matching how app imports are written.
|
|
21
|
+
* - Any other mikro/* import is rejected with a clear message: the backstop
|
|
22
|
+
* for the no-device-imports-in-config lint rule.
|
|
23
|
+
*/
|
|
24
|
+
export declare function rewriteConfigImports(code: string, dir: string, configPath: string, schemaUrl: string): string;
|
|
10
25
|
/**
|
|
11
26
|
* Walk up from `startDir` looking for `mikro.config.ts`. Returns the config
|
|
12
27
|
* resolved for `env` (TS types stripped, `defineConfig` shimmed) or `null` if
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loadMikroConfig.d.ts","sourceRoot":"","sources":["../../../src/cli/lib/loadMikroConfig.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"loadMikroConfig.d.ts","sourceRoot":"","sources":["../../../src/cli/lib/loadMikroConfig.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAC,QAAQ,EAAE,aAAa,EAAC,MAAM,yBAAyB,CAAA;AAEpE;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,aAAa,GAAG,IAAI,EAAE,GAAG,EAAE,QAAQ,GAAG,aAAa,GAAG,IAAI,CAK/F;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,MAAM,EACZ,GAAG,EAAE,MAAM,EACX,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,MAAM,GAChB,MAAM,CAgCR;AAuBD;;;;;GAKG;AACH,wBAAsB,eAAe,CACnC,QAAQ,EAAE,MAAM,EAChB,GAAG,GAAE,QAAuB,GAC3B,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,CAqB/B"}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
import { existsSync } from 'node:fs';
|
|
1
|
+
import { existsSync, readFileSync, statSync } from 'node:fs';
|
|
2
2
|
import { readFile } from 'node:fs/promises';
|
|
3
3
|
import { stripTypeScriptTypes } from 'node:module';
|
|
4
4
|
import * as pathlib from 'node:path';
|
|
5
|
+
import { pathToFileURL } from 'node:url';
|
|
5
6
|
/**
|
|
6
7
|
* Resolve the config for `env`: the base config (every field except `env`)
|
|
7
8
|
* shallow-merged with its `env[env]` overrides, with the `env` map stripped.
|
|
@@ -16,6 +17,72 @@ export function resolveConfig(config, env) {
|
|
|
16
17
|
const override = overrides?.[env];
|
|
17
18
|
return override ? { ...base, ...override } : base;
|
|
18
19
|
}
|
|
20
|
+
/**
|
|
21
|
+
* Prepare stripped config code for evaluation from a data: URL, which has no
|
|
22
|
+
* module-resolution context of its own:
|
|
23
|
+
*
|
|
24
|
+
* - The bare `mikro` import becomes a local `defineConfig` shim.
|
|
25
|
+
* - `mikro/schema` (the one importable device module: it has a host
|
|
26
|
+
* implementation, so a config can build its `configSchema`) is rewritten to
|
|
27
|
+
* `schemaUrl`, the CLI's resolved location of that implementation.
|
|
28
|
+
* - Relative imports (the app's own schema module, typically) are resolved
|
|
29
|
+
* against `dir`, with a `.js` specifier falling back to the `.ts` source
|
|
30
|
+
* when only that exists, matching how app imports are written.
|
|
31
|
+
* - Any other mikro/* import is rejected with a clear message: the backstop
|
|
32
|
+
* for the no-device-imports-in-config lint rule.
|
|
33
|
+
*/
|
|
34
|
+
export function rewriteConfigImports(code, dir, configPath, schemaUrl) {
|
|
35
|
+
const deviceImports = [...code.matchAll(/['"](mikro\/[^'"]+)['"]/g)]
|
|
36
|
+
.map((m) => m[1])
|
|
37
|
+
.filter((name) => name !== 'mikro/schema');
|
|
38
|
+
if (deviceImports.length > 0) {
|
|
39
|
+
const unique = [...new Set(deviceImports)];
|
|
40
|
+
throw new Error(`${configPath}: cannot import on-device modules (${unique.join(', ')}) in a build-time config file. ` +
|
|
41
|
+
`Only 'mikro' and 'mikro/schema' are importable here; other mikro/* subpaths are device-only.`);
|
|
42
|
+
}
|
|
43
|
+
code = code.replace(/import\s*\{[^}]*\}\s*from\s*['"]mikro['"]\s*;?/, 'const defineConfig = (c) => c;');
|
|
44
|
+
code = code.replaceAll("'mikro/schema'", `'${schemaUrl}'`);
|
|
45
|
+
code = code.replaceAll('"mikro/schema"', `'${schemaUrl}'`);
|
|
46
|
+
code = code.replace(/(from\s*)['"](\.\.?\/[^'"]+)['"]/g, (match, from, spec) => {
|
|
47
|
+
let target = pathlib.resolve(dir, spec);
|
|
48
|
+
if (!existsSync(target) && spec.endsWith('.js')) {
|
|
49
|
+
const ts = target.slice(0, -3) + '.ts';
|
|
50
|
+
if (existsSync(ts))
|
|
51
|
+
target = ts;
|
|
52
|
+
}
|
|
53
|
+
// ESM caches modules by URL for the process lifetime, and `mikro dev`
|
|
54
|
+
// re-loads the config on every sync: a bare file:// URL would pin the
|
|
55
|
+
// first version of the imported module (the app's schema, typically) for
|
|
56
|
+
// the whole session. The version query spans the target's transitive
|
|
57
|
+
// relative imports, or an edit two files down (a constants module the
|
|
58
|
+
// schema re-exports from) would stay stale until the session restarts.
|
|
59
|
+
return `${from}'${pathToFileURL(target).href}?v=${treeVersion(target)}'`;
|
|
60
|
+
});
|
|
61
|
+
return code;
|
|
62
|
+
}
|
|
63
|
+
/* Newest mtime across `target` and its transitive relative imports, with the
|
|
64
|
+
* same .js-to-.ts fallback the rewrite applies. Non-relative imports are
|
|
65
|
+
* package code the session does not edit; unreadable files count as 0 and
|
|
66
|
+
* fail later, at import, where the error names the module. */
|
|
67
|
+
function treeVersion(target, seen = new Set()) {
|
|
68
|
+
if (seen.has(target))
|
|
69
|
+
return 0;
|
|
70
|
+
seen.add(target);
|
|
71
|
+
if (!existsSync(target))
|
|
72
|
+
return 0;
|
|
73
|
+
let newest = statSync(target).mtimeMs;
|
|
74
|
+
const source = readFileSync(target, 'utf-8');
|
|
75
|
+
for (const match of source.matchAll(/from\s*['"](\.\.?\/[^'"]+)['"]/g)) {
|
|
76
|
+
let dep = pathlib.resolve(pathlib.dirname(target), match[1]);
|
|
77
|
+
if (!existsSync(dep) && dep.endsWith('.js')) {
|
|
78
|
+
const ts = dep.slice(0, -3) + '.ts';
|
|
79
|
+
if (existsSync(ts))
|
|
80
|
+
dep = ts;
|
|
81
|
+
}
|
|
82
|
+
newest = Math.max(newest, treeVersion(dep, seen));
|
|
83
|
+
}
|
|
84
|
+
return newest;
|
|
85
|
+
}
|
|
19
86
|
/**
|
|
20
87
|
* Walk up from `startDir` looking for `mikro.config.ts`. Returns the config
|
|
21
88
|
* resolved for `env` (TS types stripped, `defineConfig` shimmed) or `null` if
|
|
@@ -29,17 +96,8 @@ export async function loadMikroConfig(startDir, env = 'production') {
|
|
|
29
96
|
const configPath = pathlib.join(dir, 'mikro.config.ts');
|
|
30
97
|
if (existsSync(configPath)) {
|
|
31
98
|
const source = await readFile(configPath, 'utf-8');
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
// (mikro/*) can't resolve from a data: URL anyway, so fail with a
|
|
35
|
-
// clear message instead of an opaque module-not-found error.
|
|
36
|
-
const deviceImports = [...code.matchAll(/['"](mikro\/[^'"]+)['"]/g)].map((m) => m[1]);
|
|
37
|
-
if (deviceImports.length > 0) {
|
|
38
|
-
const unique = [...new Set(deviceImports)];
|
|
39
|
-
throw new Error(`${configPath}: cannot import on-device modules (${unique.join(', ')}) in a build-time config file. ` +
|
|
40
|
-
`Only the bare 'mikro' import is allowed here; mikro/* subpaths are device-only.`);
|
|
41
|
-
}
|
|
42
|
-
code = code.replace(/import\s*\{[^}]*\}\s*from\s*['"]mikro['"]\s*;?/, 'const defineConfig = (c) => c;');
|
|
99
|
+
const stripped = stripTypeScriptTypes(source, { mode: 'strip' });
|
|
100
|
+
const code = rewriteConfigImports(stripped, dir, configPath, import.meta.resolve('mikro/schema'));
|
|
43
101
|
const dataUrl = `data:text/javascript;base64,${Buffer.from(code).toString('base64')}`;
|
|
44
102
|
const mod = await import(dataUrl);
|
|
45
103
|
return resolveConfig(mod.default, env);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loadMikroConfig.js","sourceRoot":"","sources":["../../../src/cli/lib/loadMikroConfig.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAC,MAAM,SAAS,CAAA;
|
|
1
|
+
{"version":3,"file":"loadMikroConfig.js","sourceRoot":"","sources":["../../../src/cli/lib/loadMikroConfig.ts"],"names":[],"mappings":"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"}
|
package/dist/cli/lib/ota.d.ts
CHANGED
|
@@ -30,6 +30,18 @@ export interface OtaManifest {
|
|
|
30
30
|
* repository-wide, so an edit to a file outside this app also sets it.
|
|
31
31
|
* Omitted (reads as false) for a clean tree. */
|
|
32
32
|
dirty?: boolean;
|
|
33
|
+
/** Serialized `mikro/schema` AST of the app's OTA config schema
|
|
34
|
+
* (`otaConfigSchema` in `mikro.config.ts`). In the manifest so the artifact is
|
|
35
|
+
* self-describing: a `push --tarball` sends what the pack recorded, and the
|
|
36
|
+
* registry validates and serves config against it. The device never reads
|
|
37
|
+
* it. Absent when the app declares none. */
|
|
38
|
+
configSchema?: unknown;
|
|
39
|
+
/** The defaults the schema materializes. Partial: every field a default
|
|
40
|
+
* covers, omitting the rest (defaultless leaves, units without a whole-value
|
|
41
|
+
* default). What `ota.config()` reads on a device holding no
|
|
42
|
+
* served document; the device reads this, never the schema. Present whenever
|
|
43
|
+
* the app declares a schema, even when it is empty. */
|
|
44
|
+
configDefaults?: unknown;
|
|
33
45
|
}
|
|
34
46
|
export declare const MANIFEST_NAME = "mikro.app.json";
|
|
35
47
|
export declare function resolveFirmwareVersion(projectRoot: string): Promise<string>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ota.d.ts","sourceRoot":"","sources":["../../../src/cli/lib/ota.ts"],"names":[],"mappings":"AAYA;yEACyE;AACzE,MAAM,WAAW,WAAW;IAC1B;6EACyE;IACzE,GAAG,EAAE,MAAM,CAAA;IACX;8DAC0D;IAC1D,OAAO,EAAE,MAAM,CAAA;IACf;uCACmC;IACnC,eAAe,EAAE,MAAM,CAAA;IACvB,gFAAgF;IAChF,eAAe,EAAE,MAAM,CAAA;IACvB;;4EAEwE;IACxE,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB;;qDAEiD;IACjD,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB;;;kFAG8E;IAC9E,MAAM,CAAC,EAAE,MAAM,CAAA;IACf;;;oDAGgD;IAChD,KAAK,CAAC,EAAE,OAAO,CAAA;
|
|
1
|
+
{"version":3,"file":"ota.d.ts","sourceRoot":"","sources":["../../../src/cli/lib/ota.ts"],"names":[],"mappings":"AAYA;yEACyE;AACzE,MAAM,WAAW,WAAW;IAC1B;6EACyE;IACzE,GAAG,EAAE,MAAM,CAAA;IACX;8DAC0D;IAC1D,OAAO,EAAE,MAAM,CAAA;IACf;uCACmC;IACnC,eAAe,EAAE,MAAM,CAAA;IACvB,gFAAgF;IAChF,eAAe,EAAE,MAAM,CAAA;IACvB;;4EAEwE;IACxE,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB;;qDAEiD;IACjD,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB;;;kFAG8E;IAC9E,MAAM,CAAC,EAAE,MAAM,CAAA;IACf;;;oDAGgD;IAChD,KAAK,CAAC,EAAE,OAAO,CAAA;IACf;;;;gDAI4C;IAC5C,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB;;;;2DAIuD;IACvD,cAAc,CAAC,EAAE,OAAO,CAAA;CACzB;AAOD,eAAO,MAAM,aAAa,mBAAmB,CAAA;AAsB7C,wBAAsB,sBAAsB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAajF;AAmBD;;;;GAIG;AACH,wBAAsB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAU3E;AAED,6EAA6E;AAC7E,wBAAsB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAYjE;AAED,wBAAsB,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAW1F;AAiBD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,wBAAsB,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAiBpF;AAED,yEAAyE;AACzE,wBAAsB,uBAAuB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAkCvF;AAED,mFAAmF;AACnF,MAAM,WAAW,gBAAgB;IAC/B,4DAA4D;IAC5D,GAAG,EAAE,MAAM,GAAG,IAAI,CAAA;IAClB;;sDAEkD;IAClD,KAAK,EAAE,OAAO,CAAA;CACf;AAsBD;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,GAAG,MAAM,CAI/D;AAED;;;;;;GAMG;AACH,wBAAsB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAU5E;AAED;;;;;;;GAOG;AACH,wBAAgB,sBAAsB,CACpC,UAAU,EAAE,MAAM,GAAG;IAAC,GAAG,CAAC,EAAE,MAAM,CAAA;CAAC,GAAG,SAAS,GAC9C,MAAM,GAAG,SAAS,CAuCpB;AAED;;;;;;;GAOG;AACH,wBAAgB,4BAA4B,CAC1C,UAAU,EAAE,MAAM,GAAG;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAC,GAAG,SAAS,GACpD,MAAM,GAAG,SAAS,CAWpB;AAED,0CAA0C;AAC1C,wBAAgB,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAQ5D;AAED,MAAM,WAAW,YAAY;IAC3B,4DAA4D;IAC5D,OAAO,EAAE,MAAM,CAAA;IACf,4CAA4C;IAC5C,QAAQ,EAAE,MAAM,CAAA;IAChB,mCAAmC;IACnC,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,EAAE,WAAW,CAAA;CACtB;AAED;;;;GAIG;AACH,wBAAsB,aAAa,CACjC,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,WAAW,GACpB,OAAO,CAAC,YAAY,CAAC,CAKvB"}
|
package/dist/cli/lib/ota.js
CHANGED
|
@@ -4,9 +4,13 @@ import { createRequire } from 'node:module';
|
|
|
4
4
|
import * as pathlib from 'node:path';
|
|
5
5
|
import { promisify } from 'node:util';
|
|
6
6
|
import { createReadStream } from 'fs';
|
|
7
|
-
import { readdir, readFile, rm, stat, writeFile } from 'fs/promises';
|
|
7
|
+
import { mkdir, readdir, readFile, rm, stat, writeFile } from 'fs/promises';
|
|
8
8
|
import { create as tarCreate } from 'tar';
|
|
9
9
|
const execFileAsync = promisify(execFile);
|
|
10
|
+
/** A plain object, checked before it is copied out of an untrusted manifest. */
|
|
11
|
+
function isPlainObject(value) {
|
|
12
|
+
return typeof value === 'object' && value !== null && !Array.isArray(value);
|
|
13
|
+
}
|
|
10
14
|
export const MANIFEST_NAME = 'mikro.app.json';
|
|
11
15
|
/**
|
|
12
16
|
* Resolve the concrete installed version of the project's `@mikrojs/firmware`
|
|
@@ -89,7 +93,16 @@ export async function pruneMacSidecars(dir) {
|
|
|
89
93
|
}
|
|
90
94
|
}
|
|
91
95
|
export async function writeManifest(buildDir, manifest) {
|
|
92
|
-
|
|
96
|
+
const encoded = JSON.stringify(manifest);
|
|
97
|
+
await writeFile(pathlib.join(buildDir, MANIFEST_NAME), encoded);
|
|
98
|
+
// A second copy inside app/: the installer's commit keeps only the staged
|
|
99
|
+
// app/ tree, so the root copy (the registry's and `push --tarball`'s
|
|
100
|
+
// contract) never survives an install. The app/ copy is what the device
|
|
101
|
+
// reads at /app/mikro.app.json. Created unconditionally — a build with no
|
|
102
|
+
// app/ directory would otherwise install without a manifest, silently.
|
|
103
|
+
const appDir = pathlib.join(buildDir, 'app');
|
|
104
|
+
await mkdir(appDir, { recursive: true });
|
|
105
|
+
await writeFile(pathlib.join(appDir, MANIFEST_NAME), encoded);
|
|
93
106
|
}
|
|
94
107
|
/** Every path under `root`, `root`-relative, each directory immediately before
|
|
95
108
|
* its contents. Sorted by code unit rather than `localeCompare`, which varies
|
|
@@ -181,6 +194,11 @@ export async function readManifestFromTarball(tarballPath) {
|
|
|
181
194
|
manifest.commit = parsed.commit;
|
|
182
195
|
if (parsed.dirty === true)
|
|
183
196
|
manifest.dirty = true;
|
|
197
|
+
if (typeof parsed.configSchema === 'object' && parsed.configSchema !== null) {
|
|
198
|
+
manifest.configSchema = parsed.configSchema;
|
|
199
|
+
}
|
|
200
|
+
if (isPlainObject(parsed.configDefaults))
|
|
201
|
+
manifest.configDefaults = parsed.configDefaults;
|
|
184
202
|
return manifest;
|
|
185
203
|
}
|
|
186
204
|
/** `YYYYMMDDTHHmmssZ` in UTC. A valid semver prerelease identifier: the `T`/`Z`
|
package/dist/cli/lib/ota.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ota.js","sourceRoot":"","sources":["../../../src/cli/lib/ota.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,QAAQ,EAAC,MAAM,oBAAoB,CAAA;AAC3C,OAAO,EAAC,UAAU,EAAC,MAAM,aAAa,CAAA;AACtC,OAAO,EAAC,aAAa,EAAC,MAAM,aAAa,CAAA;AACzC,OAAO,KAAK,OAAO,MAAM,WAAW,CAAA;AACpC,OAAO,EAAC,SAAS,EAAC,MAAM,WAAW,CAAA;AAEnC,OAAO,EAAC,gBAAgB,EAAC,MAAM,IAAI,CAAA;AACnC,OAAO,EAAC,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAC,MAAM,aAAa,CAAA;AAClE,OAAO,EAAC,MAAM,IAAI,SAAS,EAAC,MAAM,KAAK,CAAA;AAEvC,MAAM,aAAa,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAA;AAoCzC,MAAM,CAAC,MAAM,aAAa,GAAG,gBAAgB,CAAA;AAE7C;;;;;;GAMG;AACH,SAAS,sBAAsB,CAAC,GAAmB;IACjD,IAAI,CAAC;QACH,OAAO,GAAG,CAAC,OAAO,CAAC,gCAAgC,CAAC,CAAA;IACtD,CAAC;IAAC,MAAM,CAAC;QACP,IAAI,CAAC;YACH,MAAM,SAAS,GAAG,aAAa,CAAC,GAAG,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC,CAAA;YAClE,OAAO,SAAS,CAAC,OAAO,CAAC,gCAAgC,CAAC,CAAA;QAC5D,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,IAAI,CAAA;QACb,CAAC;IACH,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAAC,WAAmB;IAC9D,MAAM,WAAW,GAAG,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC,CAAA;IACvE,MAAM,OAAO,GAAG,sBAAsB,CAAC,WAAW,CAAC,CAAA;IACnD,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;QACrB,MAAM,IAAI,KAAK,CACb,yFAAyF,CAC1F,CAAA;IACH,CAAC;IACD,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,CAAuB,CAAA;IAC9E,IAAI,OAAO,GAAG,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;QACpC,MAAM,IAAI,KAAK,CAAC,qCAAqC,OAAO,iBAAiB,CAAC,CAAA;IAChF,CAAC;IACD,OAAO,GAAG,CAAC,OAAO,CAAA;AACpB,CAAC;AAED,KAAK,UAAU,YAAY,CAAC,GAAW;IACrC,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,EAAE,EAAC,aAAa,EAAE,IAAI,EAAC,CAAC,CAAA;IACzD,yEAAyE;IACzE,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC5B,IAAI,KAAK,CAAC,MAAM,EAAE,IAAI,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;YAClD,OAAO,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,CAAA;QACtC,CAAC;IACH,CAAC;IACD,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC5B,IAAI,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;YACxB,MAAM,KAAK,GAAG,MAAM,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAA;YAC/D,IAAI,KAAK,KAAK,IAAI;gBAAE,OAAO,KAAK,CAAA;QAClC,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAA;AACb,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,QAAgB;IACxD,MAAM,GAAG,GAAG,MAAM,YAAY,CAAC,QAAQ,CAAC,CAAA;IACxC,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;QACjB,MAAM,IAAI,KAAK,CAAC,0BAA0B,QAAQ,kCAAkC,CAAC,CAAA;IACvF,CAAC;IACD,MAAM,EAAE,GAAG,MAAM,QAAQ,CAAC,GAAG,CAAC,CAAA;IAC9B,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACpB,MAAM,IAAI,KAAK,CAAC,oCAAoC,GAAG,EAAE,CAAC,CAAA;IAC5D,CAAC;IACD,OAAO,EAAE,CAAC,CAAC,CAAE,CAAA;AACf,CAAC;AAED,6EAA6E;AAC7E,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,GAAW;IAChD,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,EAAE,EAAC,aAAa,EAAE,IAAI,EAAC,CAAC,CAAA;IACzD,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC5B,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,CAAA;QAC1C,IAAI,KAAK,CAAC,IAAI,KAAK,WAAW,IAAI,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;YAC9D,MAAM,EAAE,CAAC,IAAI,EAAE,EAAC,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAC,CAAC,CAAA;YAC9C,SAAQ;QACV,CAAC;QACD,IAAI,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;YACxB,MAAM,gBAAgB,CAAC,IAAI,CAAC,CAAA;QAC9B,CAAC;IACH,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,QAAgB,EAAE,QAAqB;IACzE,MAAM,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,aAAa,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAA;AAClF,CAAC;AAED;;2DAE2D;AAC3D,KAAK,UAAU,UAAU,CAAC,IAAY,EAAE,GAAG,GAAG,EAAE;IAC9C,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,EAAC,aAAa,EAAE,IAAI,EAAC,CAAC,CAAA;IACjG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IACxE,MAAM,GAAG,GAAa,EAAE,CAAA;IACxB,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC5B,MAAM,IAAI,GAAG,GAAG,KAAK,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,GAAG,IAAI,KAAK,CAAC,IAAI,EAAE,CAAA;QAC7D,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QACd,IAAI,KAAK,CAAC,WAAW,EAAE;YAAE,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAA;IACtE,CAAC;IACD,OAAO,GAAG,CAAA;AACZ,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,QAAgB,EAAE,OAAe;IACnE,MAAM,gBAAgB,CAAC,QAAQ,CAAC,CAAA;IAChC,MAAM,OAAO,GAAG,MAAM,UAAU,CAAC,QAAQ,CAAC,CAAA;IAC1C,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,MAAM,IAAI,KAAK,CAAC,oBAAoB,QAAQ,WAAW,CAAC,CAAA;IAC1D,CAAC;IACD,MAAM,SAAS,CACb;QACE,IAAI,EAAE,OAAO;QACb,GAAG,EAAE,QAAQ;QACb,IAAI,EAAE,EAAC,KAAK,EAAE,CAAC,EAAC;QAChB,QAAQ,EAAE,IAAI;QACd,OAAO,EAAE,IAAI;QACb,YAAY,EAAE,IAAI;KACnB,EACD,OAAO,CACR,CAAA;AACH,CAAC;AAED,yEAAyE;AACzE,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAAC,WAAmB;IAC/D,MAAM,EAAC,MAAM,EAAC,GAAG,MAAM,aAAa,CAAC,KAAK,EAAE,CAAC,OAAO,EAAE,WAAW,EAAE,aAAa,CAAC,EAAE;QACjF,QAAQ,EAAE,OAAO;QACjB,SAAS,EAAE,IAAI,GAAG,IAAI;KACvB,CAAC,CAAA;IACF,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAyB,CAAA;IACzD,IACE,OAAO,MAAM,CAAC,GAAG,KAAK,QAAQ;QAC9B,MAAM,CAAC,GAAG,CAAC,MAAM,KAAK,CAAC;QACvB,OAAO,MAAM,CAAC,OAAO,KAAK,QAAQ;QAClC,MAAM,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC;QAC3B,OAAO,MAAM,CAAC,eAAe,KAAK,QAAQ;QAC1C,OAAO,MAAM,CAAC,eAAe,KAAK,QAAQ,EAC1C,CAAC;QACD,MAAM,IAAI,KAAK,CACb,GAAG,WAAW,6BAA6B,aAAa,sDAAsD,CAC/G,CAAA;IACH,CAAC;IACD,MAAM,QAAQ,GAAgB;QAC5B,GAAG,EAAE,MAAM,CAAC,GAAG;QACf,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,eAAe,EAAE,MAAM,CAAC,eAAe;QACvC,eAAe,EAAE,MAAM,CAAC,eAAe;KACxC,CAAA;IACD,+EAA+E;IAC/E,IAAI,OAAO,MAAM,CAAC,UAAU,KAAK,QAAQ;QAAE,QAAQ,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,CAAA;IAClF,IAAI,OAAO,MAAM,CAAC,SAAS,KAAK,QAAQ;QAAE,QAAQ,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,CAAA;IAC/E,IAAI,OAAO,MAAM,CAAC,MAAM,KAAK,QAAQ;QAAE,QAAQ,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAA;IACtE,IAAI,MAAM,CAAC,KAAK,KAAK,IAAI;QAAE,QAAQ,CAAC,KAAK,GAAG,IAAI,CAAA;IAChD,OAAO,QAAQ,CAAA;AACjB,CAAC;AAYD;;4BAE4B;AAC5B,SAAS,mBAAmB,CAAC,GAAS;IACpC,MAAM,CAAC,GAAG,CAAC,CAAS,EAAU,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA;IAC3D,OAAO,CACL,GAAG,GAAG,CAAC,cAAc,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC,EAAE;QAC1E,IAAI,CAAC,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC,GAAG,CAC9E,CAAA;AACH,CAAC;AAED;;;iCAGiC;AACjC,SAAS,kBAAkB,CAAC,OAAe;IACzC,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;IACjC,OAAO,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,CAAA;AACvD,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,UAAU,eAAe,CAAC,IAAY,EAAE,GAAS;IACrD,MAAM,IAAI,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAA;IACrC,MAAM,MAAM,GAAG,YAAY,mBAAmB,CAAC,GAAG,CAAC,EAAE,CAAA;IACrD,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,IAAI,MAAM,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,IAAI,MAAM,EAAE,CAAA;AACvE,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,GAAW;IAC/C,IAAI,CAAC;QACH,MAAM,CAAC,EAAC,MAAM,EAAE,GAAG,EAAC,EAAE,EAAC,MAAM,EAAE,MAAM,EAAC,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;YAC1D,aAAa,CAAC,KAAK,EAAE,CAAC,WAAW,EAAE,MAAM,CAAC,EAAE,EAAC,GAAG,EAAE,QAAQ,EAAE,OAAO,EAAC,CAAC;YACrE,aAAa,CAAC,KAAK,EAAE,CAAC,QAAQ,EAAE,aAAa,CAAC,EAAE,EAAC,GAAG,EAAE,QAAQ,EAAE,OAAO,EAAC,CAAC;SAC1E,CAAC,CAAA;QACF,OAAO,EAAC,GAAG,EAAE,GAAG,CAAC,IAAI,EAAE,IAAI,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,EAAC,CAAA;IACnE,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAC,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAC,CAAA;IAClC,CAAC;AACH,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,sBAAsB,CACpC,UAA+C;IAE/C,MAAM,GAAG,GAAG,OAAO,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU,EAAE,GAAG,CAAA;IACzE,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,SAAS,CAAA;IACxE,IAAI,CAAC,GAAG,GAAG,CAAC,IAAI,EAAE,CAAA;IAElB,0EAA0E;IAC1E,0DAA0D;IAC1D,MAAM,KAAK,GAA2B;QACpC,MAAM,EAAE,YAAY;QACpB,MAAM,EAAE,YAAY;QACpB,SAAS,EAAE,eAAe;KAC3B,CAAA;IACD,MAAM,SAAS,GAAG,kCAAkC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IAC5D,IAAI,SAAS;QAAE,CAAC,GAAG,WAAW,KAAK,CAAC,SAAS,CAAC,CAAC,CAAE,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC,EAAE,CAAA;SAC/D,IAAI,oBAAoB,CAAC,IAAI,CAAC,CAAC,CAAC;QAAE,CAAC,GAAG,sBAAsB,CAAC,EAAE,CAAA;IAEpE,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAA,CAAC,4BAA4B;IAExD,0EAA0E;IAC1E,MAAM,GAAG,GAAG,0BAA0B,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IAC9C,IAAI,GAAG;QAAE,CAAC,GAAG,WAAW,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE,CAAA;IAE1C,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC,OAAO,CAAC,wBAAwB,EAAE,UAAU,CAAC,CAAA;IACrF,6EAA6E;IAC7E,0EAA0E;IAC1E,8CAA8C;IAC9C,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAA;IACzB,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAA;IAE/C,6EAA6E;IAC7E,oEAAoE;IACpE,+EAA+E;IAC/E,4EAA4E;IAC5E,oCAAoC;IACpC,MAAM,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;IACxB,IAAI,GAAG,KAAK,IAAI,IAAI,CAAC,GAAG,CAAC,QAAQ,KAAK,QAAQ,IAAI,GAAG,CAAC,QAAQ,KAAK,OAAO,CAAC;QAAE,OAAO,SAAS,CAAA;IAC7F,GAAG,CAAC,QAAQ,GAAG,EAAE,CAAA;IACjB,GAAG,CAAC,QAAQ,GAAG,EAAE,CAAA;IACjB,OAAO,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAA;AACrC,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,4BAA4B,CAC1C,UAAqD;IAErD,MAAM,GAAG,GAAG,OAAO,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAA;IAC7E,IAAI,OAAO,GAAG,KAAK,QAAQ;QAAE,OAAO,SAAS,CAAA;IAC7C,MAAM,IAAI,GAAG,GAAG;SACb,IAAI,EAAE;SACN,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC;SACpB,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,CAAA;IAC5B,IAAI,IAAI,KAAK,EAAE;QAAE,OAAO,SAAS,CAAA;IACjC,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IAChC,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAAE,OAAO,SAAS,CAAA;IAC3F,OAAO,IAAI,CAAA;AACb,CAAC;AAED,0CAA0C;AAC1C,MAAM,UAAU,UAAU,CAAC,QAAgB;IACzC,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,MAAM,IAAI,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAA;QACjC,MAAM,MAAM,GAAG,gBAAgB,CAAC,QAAQ,CAAC,CAAA;QACzC,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAA;QAC1B,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAA;QAChD,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;IACrD,CAAC,CAAC,CAAA;AACJ,CAAC;AAYD;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,QAAgB,EAChB,OAAe,EACf,QAAqB;IAErB,MAAM,aAAa,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAA;IACvC,MAAM,aAAa,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAA;IACtC,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;IAChF,OAAO,EAAC,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAC,CAAA;AACvD,CAAC"}
|
|
1
|
+
{"version":3,"file":"ota.js","sourceRoot":"","sources":["../../../src/cli/lib/ota.ts"],"names":[],"mappings":"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"}
|
|
@@ -39,6 +39,8 @@ export interface UploadRequestPlan {
|
|
|
39
39
|
commit?: string;
|
|
40
40
|
/** Truthy flag: the repository was dirty at pack time; omitted when clean. */
|
|
41
41
|
dirty?: string;
|
|
42
|
+
/** Serialized config schema JSON (from the manifest); omitted when absent. */
|
|
43
|
+
configSchema?: string;
|
|
42
44
|
};
|
|
43
45
|
}
|
|
44
46
|
/** Join a base registry URL with a path, tolerating a trailing slash on the base. */
|
|
@@ -55,7 +57,9 @@ export type FetchLike = (url: string, init: RequestInit) => Promise<FetchRespons
|
|
|
55
57
|
* Upload the build to the registry. HTTP is confined to the injected
|
|
56
58
|
* `fetchImpl` (defaults to global fetch) so callers can mock it.
|
|
57
59
|
*/
|
|
58
|
-
export declare function publishBuild(input: PublishInput, buildPath: string, token: string, fetchImpl?: FetchLike): Promise<
|
|
60
|
+
export declare function publishBuild(input: PublishInput, buildPath: string, token: string, fetchImpl?: FetchLike): Promise<{
|
|
61
|
+
warnings: string[];
|
|
62
|
+
}>;
|
|
59
63
|
export interface ReleaseInput {
|
|
60
64
|
registry: string;
|
|
61
65
|
app: string;
|
|
@@ -76,5 +80,6 @@ export declare function buildReleaseRequest(input: ReleaseInput, token: string):
|
|
|
76
80
|
* a device count. */
|
|
77
81
|
export declare function releaseBuild(input: ReleaseInput, token: string, fetchImpl?: FetchLike): Promise<{
|
|
78
82
|
released: number;
|
|
83
|
+
warnings: string[];
|
|
79
84
|
}>;
|
|
80
85
|
//# sourceMappingURL=otaPublish.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"otaPublish.d.ts","sourceRoot":"","sources":["../../../src/cli/lib/otaPublish.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,UAAU,CAAA;AAEzC,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,MAAM,CAAA;IAChB,QAAQ,EAAE,MAAM,CAAA;IAChB,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,EAAE,WAAW,CAAA;IACrB,yEAAyE;IACzE,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,6EAA6E;IAC7E,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,2EAA2E;IAC3E,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAED;sCACsC;AACtC,MAAM,WAAW,iBAAiB;IAChC,GAAG,EAAE,MAAM,CAAA;IACX,MAAM,EAAE,MAAM,CAAA;IACd,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC/B,8EAA8E;IAC9E,MAAM,EAAE;QACN,GAAG,EAAE,MAAM,CAAA;QACX,OAAO,EAAE,MAAM,CAAA;QACf,QAAQ,EAAE,MAAM,CAAA;QAChB,IAAI,EAAE,MAAM,CAAA;QACZ,eAAe,EAAE,MAAM,CAAA;QACvB,eAAe,EAAE,MAAM,CAAA;QACvB,yCAAyC;QACzC,IAAI,CAAC,EAAE,MAAM,CAAA;QACb,4DAA4D;QAC5D,MAAM,CAAC,EAAE,MAAM,CAAA;QACf,2EAA2E;QAC3E,OAAO,CAAC,EAAE,MAAM,CAAA;QAChB,sEAAsE;QACtE,UAAU,CAAC,EAAE,MAAM,CAAA;QACnB,sFAAsF;QACtF,SAAS,CAAC,EAAE,MAAM,CAAA;QAClB,qFAAqF;QACrF,MAAM,CAAC,EAAE,MAAM,CAAA;QACf,8EAA8E;QAC9E,KAAK,CAAC,EAAE,MAAM,CAAA;
|
|
1
|
+
{"version":3,"file":"otaPublish.d.ts","sourceRoot":"","sources":["../../../src/cli/lib/otaPublish.ts"],"names":[],"mappings":"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"}
|
|
@@ -32,16 +32,38 @@ export function buildUploadRequest(input, token) {
|
|
|
32
32
|
directory: input.manifest.directory,
|
|
33
33
|
commit: input.manifest.commit,
|
|
34
34
|
dirty: input.manifest.dirty === true ? '1' : undefined,
|
|
35
|
+
configSchema: input.manifest.configSchema !== undefined
|
|
36
|
+
? JSON.stringify(input.manifest.configSchema)
|
|
37
|
+
: undefined,
|
|
35
38
|
},
|
|
36
39
|
};
|
|
37
40
|
}
|
|
41
|
+
/** POST and return the registry's advisory `warnings`, if the body carries
|
|
42
|
+
* any (schema-change notes, the release compat report). */
|
|
38
43
|
async function send(fetchImpl, url, init) {
|
|
39
44
|
const res = await fetchImpl(url, init);
|
|
45
|
+
const body = await res.text().catch(() => '');
|
|
40
46
|
if (!res.ok) {
|
|
41
|
-
const body = await res.text().catch(() => '');
|
|
42
47
|
const detail = body ? `: ${body}` : '';
|
|
43
48
|
throw new Error(`Registry request to ${url} failed with ${res.status}${detail}`);
|
|
44
49
|
}
|
|
50
|
+
return warningsFrom(parseBody(body));
|
|
51
|
+
}
|
|
52
|
+
function parseBody(body) {
|
|
53
|
+
try {
|
|
54
|
+
return JSON.parse(body);
|
|
55
|
+
}
|
|
56
|
+
catch {
|
|
57
|
+
return undefined;
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
function warningsFrom(parsed) {
|
|
61
|
+
if (typeof parsed !== 'object' || parsed === null)
|
|
62
|
+
return [];
|
|
63
|
+
const warnings = parsed.warnings;
|
|
64
|
+
if (!Array.isArray(warnings))
|
|
65
|
+
return [];
|
|
66
|
+
return warnings.filter((w) => typeof w === 'string');
|
|
45
67
|
}
|
|
46
68
|
/**
|
|
47
69
|
* Upload the build to the registry. HTTP is confined to the injected
|
|
@@ -70,13 +92,16 @@ export async function publishBuild(input, buildPath, token, fetchImpl = fetch) {
|
|
|
70
92
|
form.set('commit', upload.fields.commit);
|
|
71
93
|
if (upload.fields.dirty !== undefined)
|
|
72
94
|
form.set('dirty', upload.fields.dirty);
|
|
95
|
+
if (upload.fields.configSchema !== undefined)
|
|
96
|
+
form.set('configSchema', upload.fields.configSchema);
|
|
73
97
|
const bytes = await readFile(buildPath);
|
|
74
98
|
form.set('build', new Blob([bytes], { type: 'application/gzip' }), basename(buildPath));
|
|
75
|
-
await send(fetchImpl, upload.url, {
|
|
99
|
+
const warnings = await send(fetchImpl, upload.url, {
|
|
76
100
|
method: upload.method,
|
|
77
101
|
headers: upload.headers,
|
|
78
102
|
body: form,
|
|
79
103
|
});
|
|
104
|
+
return { warnings };
|
|
80
105
|
}
|
|
81
106
|
/** Build the release request (JSON: point a channel at a published build). */
|
|
82
107
|
export function buildReleaseRequest(input, token) {
|
|
@@ -97,12 +122,15 @@ export async function releaseBuild(input, token, fetchImpl = fetch) {
|
|
|
97
122
|
headers: plan.headers,
|
|
98
123
|
body: plan.body,
|
|
99
124
|
});
|
|
125
|
+
const body = await res.text().catch(() => '');
|
|
100
126
|
if (!res.ok) {
|
|
101
|
-
const body = await res.text().catch(() => '');
|
|
102
127
|
const detail = body ? `: ${body}` : '';
|
|
103
128
|
throw new Error(`Registry request to ${plan.url} failed with ${res.status}${detail}`);
|
|
104
129
|
}
|
|
105
|
-
|
|
106
|
-
|
|
130
|
+
// An unparseable body is tolerated: `released` stays 0 and the caller
|
|
131
|
+
// reports that.
|
|
132
|
+
const parsed = parseBody(body);
|
|
133
|
+
const count = parsed?.released;
|
|
134
|
+
return { released: typeof count === 'number' ? count : 0, warnings: warningsFrom(parsed) };
|
|
107
135
|
}
|
|
108
136
|
//# sourceMappingURL=otaPublish.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"otaPublish.js","sourceRoot":"","sources":["../../../src/cli/lib/otaPublish.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,QAAQ,EAAC,MAAM,WAAW,CAAA;AAElC,OAAO,EAAC,QAAQ,EAAC,MAAM,aAAa,CAAA;
|
|
1
|
+
{"version":3,"file":"otaPublish.js","sourceRoot":"","sources":["../../../src/cli/lib/otaPublish.ts"],"names":[],"mappings":"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"}
|
|
@@ -82,6 +82,12 @@ export declare const CMD_CONFIG_DELETE = 66;
|
|
|
82
82
|
* never synced or cleared by deploys). */
|
|
83
83
|
export declare const CMD_KV_SET = 67;
|
|
84
84
|
export declare const CMD_KV_DELETE = 68;
|
|
85
|
+
/** Largest value CMD_KV_SET carries, in UTF-8 bytes. Mirrors the firmware's
|
|
86
|
+
* buffer in mik_config.cpp (keep the two in sync): sized for a 4 KiB config
|
|
87
|
+
* document plus its {version, doc} envelope, the largest value this path
|
|
88
|
+
* sees. The simulator enforces the same limit so a seed that deploys there
|
|
89
|
+
* also deploys over a real cable. */
|
|
90
|
+
export declare const KV_VALUE_MAX_BYTES = 4608;
|
|
85
91
|
/** Namespace selector for CMD_KV_SET / CMD_KV_DELETE. */
|
|
86
92
|
export type KvNamespace = 'kv' | 'sys';
|
|
87
93
|
/** Env entry flags */
|