@mikrojs/native 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.
Files changed (68) hide show
  1. package/CMakeLists.txt +62 -1
  2. package/dist/index.d.ts +17 -0
  3. package/dist/index.d.ts.map +1 -1
  4. package/dist/index.js +11 -0
  5. package/dist/index.js.map +1 -1
  6. package/dist/runtime/result/native-result.node-shim.d.ts +3 -0
  7. package/dist/runtime/result/native-result.node-shim.d.ts.map +1 -0
  8. package/dist/runtime/result/native-result.node-shim.js +41 -0
  9. package/dist/runtime/result/native-result.node-shim.js.map +1 -0
  10. package/dist/runtime/result/types.d.ts +55 -0
  11. package/dist/runtime/result/types.d.ts.map +1 -0
  12. package/dist/runtime/result/types.js +2 -0
  13. package/dist/runtime/result/types.js.map +1 -0
  14. package/dist/runtime/schema/core.d.ts +115 -0
  15. package/dist/runtime/schema/core.d.ts.map +1 -0
  16. package/dist/runtime/schema/core.js +259 -0
  17. package/dist/runtime/schema/core.js.map +1 -0
  18. package/dist/runtime/schema/shared.d.ts +54 -0
  19. package/dist/runtime/schema/shared.d.ts.map +1 -0
  20. package/dist/runtime/schema/shared.js +489 -0
  21. package/dist/runtime/schema/shared.js.map +1 -0
  22. package/dist/types.d.ts +7 -0
  23. package/dist/types.d.ts.map +1 -1
  24. package/include/mikrojs/cbor_helpers.h +20 -0
  25. package/include/mikrojs/mem.h +11 -0
  26. package/include/mikrojs/mikrojs.h +2 -1
  27. package/include/mikrojs/ota_client.h +342 -0
  28. package/include/mikrojs/ota_config.h +100 -0
  29. package/include/mikrojs/ota_env.h +192 -0
  30. package/include/mikrojs/ota_js_hooks.h +71 -0
  31. package/include/mikrojs/ota_policy.h +131 -0
  32. package/include/mikrojs/ota_slots.h +47 -0
  33. package/include/mikrojs/sys_codec.h +61 -0
  34. package/package.json +7 -5
  35. package/prebuilds/darwin-arm64/mikrojs.napi.node +0 -0
  36. package/prebuilds/linux-arm64/mikrojs.napi.node +0 -0
  37. package/prebuilds/linux-x64/mikrojs.napi.node +0 -0
  38. package/runtime/internal.d.ts +22 -16
  39. package/runtime/kv/shared.ts +11 -5
  40. package/runtime/kv/types.ts +4 -4
  41. package/runtime/ota/client.ts +12 -51
  42. package/runtime/ota/config.ts +18 -0
  43. package/runtime/ota/ota.ts +28 -70
  44. package/runtime/ota/types.ts +220 -2
  45. package/runtime/schema/core.ts +539 -0
  46. package/runtime/schema/schema.ts +36 -314
  47. package/runtime/schema/shared.ts +494 -0
  48. package/runtime/schema/types.ts +84 -12
  49. package/scripts/bundle-runtime.js +33 -0
  50. package/scripts/gen-checkin-fixtures.js +323 -0
  51. package/src/builtins.cpp +7 -8
  52. package/src/fs.cpp +3 -0
  53. package/src/mem.cpp +38 -0
  54. package/src/mik_abort.cpp +8 -1
  55. package/src/mik_cbor.cpp +43 -5
  56. package/src/mik_inspect.cpp +128 -22
  57. package/src/mik_ota_client.cpp +1230 -0
  58. package/src/mik_ota_config.cpp +296 -0
  59. package/src/mik_ota_js_hooks.cpp +190 -0
  60. package/src/mik_ota_policy.cpp +419 -0
  61. package/src/mik_ota_slots.cpp +249 -0
  62. package/src/mik_repl.cpp +9 -3
  63. package/src/mik_result.cpp +3 -1
  64. package/src/mik_sys_codec.cpp +167 -0
  65. package/src/mikrojs.cpp +15 -0
  66. package/src/modules.cpp +32 -13
  67. package/runtime/ota/client-impl.ts +0 -590
  68. package/runtime/ota/policy.ts +0 -299
package/CMakeLists.txt CHANGED
@@ -52,6 +52,12 @@ set(MIKROJS_CORE_SOURCES
52
52
  src/mik_app_store.cpp
53
53
  src/mik_udp.cpp
54
54
  src/mik_observable.cpp
55
+ src/mik_ota_policy.cpp
56
+ src/mik_ota_slots.cpp
57
+ src/mik_ota_config.cpp
58
+ src/mik_ota_js_hooks.cpp
59
+ src/mik_ota_client.cpp
60
+ src/mik_sys_codec.cpp
55
61
  )
56
62
 
57
63
  add_library(mikrojs STATIC
@@ -82,7 +88,7 @@ endif()
82
88
  include(cmake/mikrojs_bytecode.cmake)
83
89
  mikrojs_generate_bytecode(
84
90
  RUNTIME_DIR "${CMAKE_CURRENT_SOURCE_DIR}/runtime"
85
- MODULES abort cbor env result schema fs http/helpers http/request i2c kv/nvs kv/rtc kv/shared module neopixel observable observable/lazy observable/operators ota ota/client pin pwm reader sleep spi sntp stdio stream sys test uart udp wifi
91
+ MODULES abort cbor env result schema fs http/helpers http/request i2c kv/nvs kv/rtc kv/shared module neopixel observable observable/lazy observable/operators ota ota/client ota/config pin pwm reader sleep spi sntp stdio stream sys test uart udp wifi
86
92
  MODULE_PREFIX "mikro"
87
93
  SYMBOL_PREFIX "mikro"
88
94
  TARGET gen_bytecode
@@ -92,6 +98,12 @@ target_include_directories(mikrojs PRIVATE "${gen_bytecode_INCLUDE_DIR}")
92
98
 
93
99
  target_link_libraries(mikrojs PUBLIC quickjs)
94
100
 
101
+ # Allocation-fault hooks for the OOM injection tests (test/oom_inject_test.cpp).
102
+ # Host builds only: ESP-IDF compiles the same sources without this define, so
103
+ # the device allocator paths carry no test code. PUBLIC so test executables
104
+ # see the hook declarations in mem.h.
105
+ target_compile_definitions(mikrojs PUBLIC MIK_OOM_INJECT)
106
+
95
107
  # Note: self-registering native modules need force-include linker flags (-u symbol)
96
108
  # to prevent stripping from static libraries. These are added by consumers:
97
109
  # - ESP-IDF firmware: mikrojs_force_include_modules() in firmware CMakeLists
@@ -109,6 +121,18 @@ if(NOT MSVC)
109
121
  target_compile_options(mikrojs PRIVATE -ffunction-sections -fdata-sections)
110
122
  endif()
111
123
 
124
+ # ── Coverage instrumentation ─────────────────────────────────────────
125
+ # Instruments only the mikrojs sources (not QuickJS or test code) with
126
+ # gcov-format counters. Report via gcovr, see gcovr.cfg.
127
+ option(MIKROJS_COVERAGE "Instrument mikrojs sources for code coverage" OFF)
128
+ if(MIKROJS_COVERAGE)
129
+ if(MSVC)
130
+ message(FATAL_ERROR "MIKROJS_COVERAGE requires GCC or Clang")
131
+ endif()
132
+ target_compile_options(mikrojs PRIVATE --coverage)
133
+ target_link_options(mikrojs PUBLIC --coverage)
134
+ endif()
135
+
112
136
  # Version metadata for sys.version()
113
137
  execute_process(
114
138
  COMMAND node -e "import('../../../package.json',{with:{type:'json'}}).then(m=>process.stdout.write(m.default.version))"
@@ -160,21 +184,58 @@ if(BUILD_TESTING)
160
184
  test/virtual_modules_test.cpp
161
185
  test/ext_builtin_test.cpp
162
186
  test/text_encoding_test.cpp
187
+ test/inspect_test.cpp
188
+ test/platform_posix_test.cpp
163
189
  test/cbor_test.cpp
190
+ test/cbor_truncation_test.cpp
164
191
  test/abort_test.cpp
165
192
  test/repl_protocol_test.cpp
166
193
  test/app_config_test.cpp
167
194
  test/app_store_test.cpp
168
195
  test/oom_test.cpp
196
+ test/oom_inject_test.cpp
197
+ test/fs_test.cpp
198
+ test/console_stdio_test.cpp
199
+ test/cbor_js_test.cpp
200
+ test/eval_bytecode_test.cpp
201
+ test/result_utils_test.cpp
202
+ test/modules_fs_test.cpp
203
+ test/sys_test.cpp
204
+ test/runtime_entry_test.cpp
205
+ test/timers_test.cpp
169
206
  test/reader_test.cpp
170
207
  test/stream_test.cpp
171
208
  test/runtime_recycle_test.cpp
172
209
  test/udp_test.cpp
173
210
  test/observable_test.cpp
174
211
  test/unhandled_rejection_test.cpp
212
+ test/ota_policy_test.cpp
213
+ test/ota_client_test.cpp
214
+ test/ota_config_test.cpp
215
+ test/ota_js_hooks_test.cpp
216
+ test/ota_wire_fixtures_test.cpp
217
+ test/sys_codec_test.cpp
218
+ )
219
+
220
+ # ── Check-in wire fixtures ───────────────────────────────────────
221
+ # Response bodies captured from the reference registry (@mikrojs/registry)
222
+ # and replayed through the client in test/ota_wire_fixtures_test.cpp. Always
223
+ # regenerated (it takes well under a second) so the fixtures cannot lag the
224
+ # registry they came from. Needs the registry's built dist: run
225
+ # `pnpm build:ts` before `pnpm test:lib` on a fresh checkout.
226
+ set(_CHECKIN_FIXTURE_DIR "${CMAKE_CURRENT_BINARY_DIR}/gen/checkin-fixtures")
227
+ add_custom_target(gen_checkin_fixtures
228
+ COMMAND node "${CMAKE_CURRENT_SOURCE_DIR}/scripts/gen-checkin-fixtures.js"
229
+ "${_CHECKIN_FIXTURE_DIR}"
230
+ COMMENT "Generating check-in wire fixtures from @mikrojs/registry"
231
+ WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}"
232
+ VERBATIM
175
233
  )
234
+ add_dependencies(mikrojs_tests gen_checkin_fixtures)
176
235
 
177
236
  target_link_libraries(mikrojs_tests PRIVATE mikrojs)
237
+ target_compile_definitions(mikrojs_tests PRIVATE
238
+ "MIK_CHECKIN_FIXTURE_DIR=\"${_CHECKIN_FIXTURE_DIR}\"")
178
239
  target_include_directories(mikrojs_tests PRIVATE
179
240
  "${CMAKE_CURRENT_SOURCE_DIR}/test"
180
241
  "${CMAKE_CURRENT_SOURCE_DIR}/deps/nanocbor/include"
package/dist/index.d.ts CHANGED
@@ -64,6 +64,23 @@ export declare class MikroRuntime {
64
64
  }
65
65
  /** Serialize a JSON string to QuickJS binary JSON (bjson) format. */
66
66
  export declare function jsonToBjson(json: string): Buffer;
67
+ /** An update offer, as the device validates it. */
68
+ export interface ParsedOffer {
69
+ url: string;
70
+ checksum: string;
71
+ size: number;
72
+ }
73
+ /**
74
+ * Validate a check-in response body into an offer, using the device's own
75
+ * validator (src/mik_ota_client.cpp). Returns undefined when there is no usable
76
+ * offer — which includes the registry's "nothing newer" answer.
77
+ *
78
+ * Exposed so the check-in wire can be tested against the implementation that
79
+ * actually runs on a device, rather than a second one written for the test.
80
+ */
81
+ export declare function parseOffer(body: unknown, options?: {
82
+ allowInsecure?: boolean;
83
+ }): ParsedOffer | undefined;
67
84
  /** Compile a JS module to QuickJS bytecode. External imports must be declared to avoid resolution errors. */
68
85
  export declare function compileBytecode(source: string, moduleName: string, externals?: string[]): Buffer;
69
86
  /** Compile a JS module to bytecode and return as a C header string (equivalent to qjsc -o header.h). */
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../addon/index.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,WAAW,EACX,mBAAmB,EAGnB,YAAY,EACb,MAAM,YAAY,CAAA;AAuBnB,qBAAa,YAAY;IACvB,OAAO,CAAC,MAAM,CAAoB;gBAEtB,OAAO,CAAC,EAAE,mBAAmB;IAIzC,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,UAAO,GAAG,IAAI;IAIjD,kFAAkF;IAClF,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI;IAI1D,2HAA2H;IAC3H,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAI5C;;;uEAGmE;IACnE,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,SAAI,GAAG,MAAM,GAAG,SAAS;IAIxD,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAIrB,+EAA+E;IAC/E,QAAQ,IAAI,MAAM;IAIlB,IAAI,IAAI,IAAI;IAIZ,OAAO,IAAI,IAAI;IAIf;;oEAEgE;IAChE,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;IAIxD;mEAC+D;IAC/D,aAAa,IAAI,WAAW,EAAE;IAI9B;wFACoF;IACpF,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI;IAI7C;;+DAE2D;IAC3D,eAAe,CAAC,EAAE,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,GAAG,IAAI;IAInF;;uFAEmF;IACnF,aAAa,CAAC,OAAO,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,GAAG,IAAI;IAI5F;;sFAEkF;IAClF,eAAe,IAAI,IAAI;IAIvB;yDACqD;IACrD,UAAU,IAAI,YAAY,EAAE;IAI5B;;sCAEkC;IAClC,kBAAkB,IAAI,MAAM;IAI5B;;oDAEgD;IAChD,WAAW,IAAI;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAC;IAIpD;4DACwD;IACxD,EAAE,IAAI,IAAI;IAIV;;;wCAGoC;IACpC,iBAAiB,IAAI,IAAI;CAG1B;AAED,qEAAqE;AACrE,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEhD;AAED,6GAA6G;AAC7G,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,EAAE,GAAG,MAAM,CAEhG;AAED,wGAAwG;AACxG,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,MAAM,EAClB,SAAS,CAAC,EAAE,MAAM,EAAE,GACnB,MAAM,CA4BR;AAED,YAAY,EAAC,WAAW,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,YAAY,EAAC,MAAM,YAAY,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../addon/index.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,WAAW,EACX,mBAAmB,EAGnB,YAAY,EACb,MAAM,YAAY,CAAA;AAuBnB,qBAAa,YAAY;IACvB,OAAO,CAAC,MAAM,CAAoB;gBAEtB,OAAO,CAAC,EAAE,mBAAmB;IAIzC,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,UAAO,GAAG,IAAI;IAIjD,kFAAkF;IAClF,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI;IAI1D,2HAA2H;IAC3H,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAI5C;;;uEAGmE;IACnE,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,SAAI,GAAG,MAAM,GAAG,SAAS;IAIxD,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAIrB,+EAA+E;IAC/E,QAAQ,IAAI,MAAM;IAIlB,IAAI,IAAI,IAAI;IAIZ,OAAO,IAAI,IAAI;IAIf;;oEAEgE;IAChE,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;IAIxD;mEAC+D;IAC/D,aAAa,IAAI,WAAW,EAAE;IAI9B;wFACoF;IACpF,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI;IAI7C;;+DAE2D;IAC3D,eAAe,CAAC,EAAE,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,GAAG,IAAI;IAInF;;uFAEmF;IACnF,aAAa,CAAC,OAAO,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,GAAG,IAAI;IAI5F;;sFAEkF;IAClF,eAAe,IAAI,IAAI;IAIvB;yDACqD;IACrD,UAAU,IAAI,YAAY,EAAE;IAI5B;;sCAEkC;IAClC,kBAAkB,IAAI,MAAM;IAI5B;;oDAEgD;IAChD,WAAW,IAAI;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAC;IAIpD;4DACwD;IACxD,EAAE,IAAI,IAAI;IAIV;;;wCAGoC;IACpC,iBAAiB,IAAI,IAAI;CAG1B;AAED,qEAAqE;AACrE,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEhD;AAED,mDAAmD;AACnD,MAAM,WAAW,WAAW;IAC1B,GAAG,EAAE,MAAM,CAAA;IACX,QAAQ,EAAE,MAAM,CAAA;IAChB,IAAI,EAAE,MAAM,CAAA;CACb;AAED;;;;;;;GAOG;AACH,wBAAgB,UAAU,CACxB,IAAI,EAAE,OAAO,EACb,OAAO,CAAC,EAAE;IAAC,aAAa,CAAC,EAAE,OAAO,CAAA;CAAC,GAClC,WAAW,GAAG,SAAS,CAEzB;AAED,6GAA6G;AAC7G,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,EAAE,GAAG,MAAM,CAEhG;AAED,wGAAwG;AACxG,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,MAAM,EAClB,SAAS,CAAC,EAAE,MAAM,EAAE,GACnB,MAAM,CA4BR;AAED,YAAY,EAAC,WAAW,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,YAAY,EAAC,MAAM,YAAY,CAAA"}
package/dist/index.js CHANGED
@@ -124,6 +124,17 @@ export class MikroRuntime {
124
124
  export function jsonToBjson(json) {
125
125
  return bindings.jsonToBjson(json);
126
126
  }
127
+ /**
128
+ * Validate a check-in response body into an offer, using the device's own
129
+ * validator (src/mik_ota_client.cpp). Returns undefined when there is no usable
130
+ * offer — which includes the registry's "nothing newer" answer.
131
+ *
132
+ * Exposed so the check-in wire can be tested against the implementation that
133
+ * actually runs on a device, rather than a second one written for the test.
134
+ */
135
+ export function parseOffer(body, options) {
136
+ return bindings.parseOffer(body, options);
137
+ }
127
138
  /** Compile a JS module to QuickJS bytecode. External imports must be declared to avoid resolution errors. */
128
139
  export function compileBytecode(source, moduleName, externals) {
129
140
  return bindings.compileBytecode(source, moduleName, externals);
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../addon/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,aAAa,EAAC,MAAM,aAAa,CAAA;AACzC,OAAO,EAAC,IAAI,EAAC,MAAM,WAAW,CAAA;AAU9B,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;AAC9C,MAAM,YAAY,GAAG,OAAO,CAAC,gBAAgB,CAAiC,CAAA;AAE9E,SAAS,YAAY;IACnB,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,CAAA;IAC/C,IAAI,CAAC;QACH,OAAO,YAAY,CAAC,OAAO,CAAmB,CAAA;IAChD,CAAC;IAAC,OAAO,WAAW,EAAE,CAAC;QACrB,0EAA0E;QAC1E,8CAA8C;QAC9C,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,mBAAmB,CAAC,CAAA;QAC/E,IAAI,CAAC;YACH,OAAO,OAAO,CAAC,OAAO,CAAmB,CAAA;QAC3C,CAAC;QAAC,MAAM,CAAC;YACP,MAAM,WAAW,CAAA;QACnB,CAAC;IACH,CAAC;AACH,CAAC;AAED,MAAM,QAAQ,GAAG,YAAY,EAAE,CAAA;AAE/B,MAAM,OAAO,YAAY;IACf,MAAM,CAAoB;IAElC,YAAY,OAA6B;QACvC,IAAI,CAAC,MAAM,GAAG,IAAI,QAAQ,CAAC,YAAY,CAAC,OAAO,CAAC,CAAA;IAClD,CAAC;IAED,UAAU,CAAC,QAAgB,EAAE,MAAM,GAAG,IAAI;QACxC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAA;IAC1C,CAAC;IAED,kFAAkF;IAClF,iBAAiB,CAAC,QAAgB,EAAE,OAAe;QACjD,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAA;IAClD,CAAC;IAED,2HAA2H;IAC3H,UAAU,CAAC,IAAY;QACrB,OAAO,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAA;IACrC,CAAC;IAED;;;uEAGmE;IACnE,WAAW,CAAC,IAAY,EAAE,KAAK,GAAG,CAAC;QACjC,OAAO,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;IAC7C,CAAC;IAED,IAAI;QACF,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAA;IAC3B,CAAC;IAED,+EAA+E;IAC/E,QAAQ;QACN,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAA;IAC/B,CAAC;IAED,IAAI;QACF,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAA;IACpB,CAAC;IAED,OAAO;QACL,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAA;IACvB,CAAC;IAED;;oEAEgE;IAChE,oBAAoB,CAAC,IAAY,EAAE,MAAc;QAC/C,IAAI,CAAC,MAAM,CAAC,oBAAoB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;IAChD,CAAC;IAED;mEAC+D;IAC/D,aAAa;QACX,OAAO,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,CAAA;IACpC,CAAC;IAED;wFACoF;IACpF,WAAW,CAAC,IAAY,EAAE,IAAY;QACpC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;IACrC,CAAC;IAED;;+DAE2D;IAC3D,eAAe,CAAC,EAA4D;QAC1E,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,EAAE,CAAC,CAAA;IACjC,CAAC;IAED;;uFAEmF;IACnF,aAAa,CAAC,OAAuE;QACnF,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,OAAO,CAAC,CAAA;IACpC,CAAC;IAED;;sFAEkF;IAClF,eAAe;QACb,IAAI,CAAC,MAAM,CAAC,eAAe,EAAE,CAAA;IAC/B,CAAC;IAED;yDACqD;IACrD,UAAU;QACR,OAAO,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CAAA;IACjC,CAAC;IAED;;sCAEkC;IAClC,kBAAkB;QAChB,OAAO,IAAI,CAAC,MAAM,CAAC,kBAAkB,EAAE,CAAA;IACzC,CAAC;IAED;;oDAEgD;IAChD,WAAW;QACT,OAAO,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,CAAA;IAClC,CAAC;IAED;4DACwD;IACxD,EAAE;QACA,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAA;IAClB,CAAC;IAED;;;wCAGoC;IACpC,iBAAiB;QACf,IAAI,CAAC,MAAM,CAAC,iBAAiB,EAAE,CAAA;IACjC,CAAC;CACF;AAED,qEAAqE;AACrE,MAAM,UAAU,WAAW,CAAC,IAAY;IACtC,OAAO,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,CAAA;AACnC,CAAC;AAED,6GAA6G;AAC7G,MAAM,UAAU,eAAe,CAAC,MAAc,EAAE,UAAkB,EAAE,SAAoB;IACtF,OAAO,QAAQ,CAAC,eAAe,CAAC,MAAM,EAAE,UAAU,EAAE,SAAS,CAAC,CAAA;AAChE,CAAC;AAED,wGAAwG;AACxG,MAAM,UAAU,uBAAuB,CACrC,MAAc,EACd,UAAkB,EAClB,UAAkB,EAClB,SAAoB;IAEpB,MAAM,GAAG,GAAG,QAAQ,CAAC,eAAe,CAAC,MAAM,EAAE,UAAU,EAAE,SAAS,CAAC,CAAA;IAEnE,kEAAkE;IAClE,IAAI,GAAG,GAAG,EAAE,CAAA;IACZ,IAAI,GAAG,GAAG,CAAC,CAAA;IACX,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACpC,GAAG,IAAI,MAAM,GAAG,CAAC,CAAC,CAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,CAAA;QACrD,IAAI,EAAE,GAAG,KAAK,CAAC,EAAE,CAAC;YAChB,GAAG,IAAI,IAAI,CAAA;YACX,GAAG,GAAG,CAAC,CAAA;QACT,CAAC;IACH,CAAC;IACD,IAAI,GAAG,KAAK,CAAC,EAAE,CAAC;QACd,GAAG,IAAI,IAAI,CAAA;IACb,CAAC;IAED,OAAO,CACL,kEAAkE;QAClE,IAAI;QACJ,yBAAyB;QACzB,IAAI;QACJ,kBAAkB,UAAU,WAAW,GAAG,CAAC,MAAM,KAAK;QACtD,IAAI;QACJ,iBAAiB,UAAU,IAAI,GAAG,CAAC,MAAM,SAAS;QAClD,GAAG;QACH,MAAM,CACP,CAAA;AACH,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../addon/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export declare function ok(value?: unknown): unknown;
2
+ export declare function err(error: unknown): unknown;
3
+ //# sourceMappingURL=native-result.node-shim.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"native-result.node-shim.d.ts","sourceRoot":"","sources":["../../../runtime/result/native-result.node-shim.ts"],"names":[],"mappings":"AA+BA,wBAAgB,EAAE,CAAC,KAAK,CAAC,EAAE,OAAO,GAAG,OAAO,CAK3C;AAED,wBAAgB,GAAG,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAK3C"}
@@ -0,0 +1,41 @@
1
+ // Host-side shim for `native:mikro/result` used only in vitest (Node) where the
2
+ // mikrojs C runtime isn't available. Keep in sync with mik_result.cpp.
3
+ const proto = {
4
+ map(fn) {
5
+ return this.ok ? ok(fn(this.value)) : this;
6
+ },
7
+ mapErr(fn) {
8
+ return this.ok ? this : err(fn(this.error));
9
+ },
10
+ andThen(fn) {
11
+ return this.ok ? fn(this.value) : this;
12
+ },
13
+ match(handlers) {
14
+ return this.ok ? handlers.ok(this.value) : handlers.err(this.error);
15
+ },
16
+ orDefault(defaultValue) {
17
+ return this.ok ? this.value : defaultValue;
18
+ },
19
+ orPanic(message) {
20
+ if (this.ok)
21
+ return this.value;
22
+ const panic = new Error(message);
23
+ panic.name = 'PanicError';
24
+ panic.cause = this.error;
25
+ throw panic;
26
+ },
27
+ };
28
+ export function ok(value) {
29
+ const r = Object.create(proto);
30
+ r.ok = true;
31
+ if (arguments.length > 0)
32
+ r.value = value;
33
+ return r;
34
+ }
35
+ export function err(error) {
36
+ const r = Object.create(proto);
37
+ r.ok = false;
38
+ r.error = error;
39
+ return r;
40
+ }
41
+ //# sourceMappingURL=native-result.node-shim.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"native-result.node-shim.js","sourceRoot":"","sources":["../../../runtime/result/native-result.node-shim.ts"],"names":[],"mappings":"AAAA,gFAAgF;AAChF,uEAAuE;AAEvE,MAAM,KAAK,GAAG;IACZ,GAAG,CAAwD,EAA2B;QACpF,OAAO,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;IAC5C,CAAC;IACD,MAAM,CAAwD,EAA2B;QACvF,OAAO,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAA;IAC7C,CAAC;IACD,OAAO,CAAwD,EAA2B;QACxF,OAAO,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;IACxC,CAAC;IACD,KAAK,CAEH,QAAqE;QAErE,OAAO,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IACrE,CAAC;IACD,SAAS,CAAwD,YAAqB;QACpF,OAAO,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,YAAY,CAAA;IAC5C,CAAC;IACD,OAAO,CAAwD,OAAe;QAC5E,IAAI,IAAI,CAAC,EAAE;YAAE,OAAO,IAAI,CAAC,KAAK,CAAA;QAC9B,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,OAAO,CAAC,CAAA;QAChC,KAAK,CAAC,IAAI,GAAG,YAAY,CACxB;QAAC,KAAmC,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAA;QACxD,MAAM,KAAK,CAAA;IACb,CAAC;CACF,CAAA;AAED,MAAM,UAAU,EAAE,CAAC,KAAe;IAChC,MAAM,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;IAC9B,CAAC,CAAC,EAAE,GAAG,IAAI,CAAA;IACX,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC;QAAE,CAAC,CAAC,KAAK,GAAG,KAAK,CAAA;IACzC,OAAO,CAAC,CAAA;AACV,CAAC;AAED,MAAM,UAAU,GAAG,CAAC,KAAc;IAChC,MAAM,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;IAC9B,CAAC,CAAC,EAAE,GAAG,KAAK,CAAA;IACZ,CAAC,CAAC,KAAK,GAAG,KAAK,CAAA;IACf,OAAO,CAAC,CAAA;AACV,CAAC"}
@@ -0,0 +1,55 @@
1
+ export declare class PanicError extends Error {
2
+ constructor(message: string, options?: {
3
+ cause?: unknown;
4
+ });
5
+ }
6
+ export interface OkResult<T> {
7
+ readonly ok: true;
8
+ readonly value: T;
9
+ readonly error?: never;
10
+ map<U>(fn: (value: T) => U): OkResult<U>;
11
+ mapErr<F>(fn: (error: never) => F): OkResult<T>;
12
+ andThen<U, F>(fn: (value: T) => Result<U, F>): Result<U, F>;
13
+ match<A, B>(handlers: {
14
+ ok: (value: T) => A;
15
+ err: (error: never) => B;
16
+ }): A;
17
+ /** Get the value, or return the default if this is an Err. */
18
+ orDefault<D>(defaultValue: D): T | D;
19
+ /** Get the value, or panic with the given message if this is an Err. */
20
+ orPanic(message: string): T;
21
+ }
22
+ export interface ErrResult<E> {
23
+ readonly ok: false;
24
+ readonly value?: never;
25
+ readonly error: E;
26
+ map<U>(fn: (value: never) => U): ErrResult<E>;
27
+ mapErr<F>(fn: (error: E) => F): ErrResult<F>;
28
+ andThen<U, F>(fn: (value: never) => Result<U, F>): ErrResult<E>;
29
+ match<A, B>(handlers: {
30
+ ok: (value: never) => A;
31
+ err: (error: E) => B;
32
+ }): B;
33
+ /** Return the default value since this is an Err. */
34
+ orDefault<D>(defaultValue: D): D;
35
+ /** Always panics with the given message since this is an Err. The error is included as cause. */
36
+ orPanic(message: string): never;
37
+ }
38
+ export type Result<T, E> = OkResult<T> | ErrResult<E>;
39
+ export declare function ok(): OkResult<void>;
40
+ export declare function ok<T>(value: T): OkResult<T>;
41
+ export declare function err<E>(error: E): ErrResult<E>;
42
+ export declare function matchError<E extends {
43
+ name: string;
44
+ }, R>(error: E, handlers: {
45
+ [K in E['name']]: (error: Extract<E, {
46
+ name: K;
47
+ }>) => R;
48
+ }): R;
49
+ /** Raw error shape returned by native mik__result_err(). */
50
+ export interface NativeError {
51
+ readonly code: number;
52
+ readonly message: string;
53
+ readonly errno?: number;
54
+ }
55
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../runtime/result/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../runtime/result/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,115 @@
1
+ declare function err<E>(error: E): {
2
+ ok: false;
3
+ error: E;
4
+ };
5
+ export declare const SchemaError: {
6
+ ValidationFailed: (message: string, path: string) => {
7
+ readonly name: "ValidationFailed";
8
+ readonly message: string;
9
+ readonly path: string;
10
+ };
11
+ };
12
+ export type SchemaError = ReturnType<typeof SchemaError.ValidationFailed>;
13
+ type Primitive = string | number | boolean;
14
+ export interface StringSchema {
15
+ readonly kind: 'string';
16
+ readonly default?: string;
17
+ }
18
+ export interface NumberSchema {
19
+ readonly kind: 'number';
20
+ readonly default?: number;
21
+ }
22
+ export interface BooleanSchema {
23
+ readonly kind: 'boolean';
24
+ readonly default?: boolean;
25
+ }
26
+ export interface UnknownSchema {
27
+ readonly kind: 'unknown';
28
+ }
29
+ export interface LiteralSchema<T extends Primitive = Primitive> {
30
+ readonly kind: 'literal';
31
+ readonly value: T;
32
+ readonly default?: T;
33
+ }
34
+ export interface ArraySchema<S extends Schema = Schema> {
35
+ readonly kind: 'array';
36
+ readonly element: S;
37
+ readonly default?: unknown;
38
+ }
39
+ export interface ObjectSchema<Shape extends Record<string, Schema> = Record<string, Schema>> {
40
+ readonly kind: 'object';
41
+ readonly shape: Shape;
42
+ }
43
+ export interface OptionalSchema<S extends Schema = Schema> {
44
+ readonly kind: 'optional';
45
+ readonly inner: S;
46
+ }
47
+ export interface TupleSchema<Elements extends readonly Schema[] = readonly Schema[]> {
48
+ readonly kind: 'tuple';
49
+ readonly elements: Elements;
50
+ readonly default?: unknown;
51
+ }
52
+ export interface UnionSchema<Members extends readonly Schema[] = readonly Schema[]> {
53
+ readonly kind: 'union';
54
+ readonly members: Members;
55
+ readonly default?: unknown;
56
+ }
57
+ export interface TaggedUnionSchema<Key extends string = string, Branches extends Record<string, ObjectSchema> = Record<string, ObjectSchema>> {
58
+ readonly kind: 'taggedUnion';
59
+ readonly key: Key;
60
+ readonly branches: Branches;
61
+ readonly default?: unknown;
62
+ }
63
+ export type Schema = StringSchema | NumberSchema | BooleanSchema | UnknownSchema | LiteralSchema | ArraySchema | ObjectSchema | OptionalSchema | TupleSchema | UnionSchema | TaggedUnionSchema;
64
+ type Simplify<T> = {
65
+ [K in keyof T]: T[K];
66
+ } & {};
67
+ export type Infer<S> = S extends StringSchema ? string : S extends NumberSchema ? number : S extends BooleanSchema ? boolean : S extends UnknownSchema ? unknown : S extends LiteralSchema<infer T> ? T : S extends ArraySchema<infer E> ? ArraySchema extends S ? [] : Infer<E>[] : S extends ObjectSchema<infer Shape> ? ObjectSchema extends S ? object : Simplify<InferObject<Shape>> : S extends TupleSchema<infer Elements> ? InferTuple<Elements> : S extends OptionalSchema<infer Inner> ? OptionalSchema extends S ? OptionalSchema : Infer<Inner> | undefined : S extends UnionSchema<infer Members> ? InferUnion<Members> : S extends TaggedUnionSchema<infer Key, infer Branches> ? InferTaggedUnion<Key, Branches> : never;
68
+ type InferObject<Shape> = {
69
+ [K in keyof Shape as Shape[K] extends OptionalSchema ? never : K]: Infer<Shape[K]>;
70
+ } & {
71
+ [K in keyof Shape as Shape[K] extends OptionalSchema ? K : never]?: Infer<Shape[K]>;
72
+ };
73
+ type InferTuple<Elements> = Elements extends readonly [infer Head, ...infer Tail] ? [Infer<Head>, ...InferTuple<Tail>] : [];
74
+ type InferUnion<Members> = Members extends readonly [infer Head, ...infer Tail] ? Infer<Head> | InferUnion<Tail> : never;
75
+ type InferTaggedUnion<Key extends string, Branches> = {
76
+ [Tag in keyof Branches & string]: {
77
+ [K in Key]: Tag;
78
+ } & Infer<Branches[Tag]>;
79
+ }[keyof Branches & string];
80
+ export type InferRead<S> = S extends ObjectSchema<infer Shape> ? ObjectSchema extends S ? object : Simplify<InferReadObject<Shape>> : Infer<S>;
81
+ type Filled<S> = S extends {
82
+ default: unknown;
83
+ } ? true : S extends OptionalSchema ? false : S extends ObjectSchema<infer Shape> ? ObjectSchema extends S ? false : AllFilled<Shape> : false;
84
+ type AllFilled<Shape> = false extends {
85
+ [K in keyof Shape]: Shape[K] extends OptionalSchema ? true : Filled<Shape[K]>;
86
+ }[keyof Shape] ? false : true;
87
+ type InferReadObject<Shape> = {
88
+ [K in keyof Shape as Filled<Shape[K]> extends true ? K : never]: InferRead<Shape[K]>;
89
+ } & {
90
+ [K in keyof Shape as Filled<Shape[K]> extends true ? never : K]?: InferRead<Shape[K]>;
91
+ };
92
+ export interface ScalarOptions<T> {
93
+ readonly default?: T;
94
+ }
95
+ export interface DefaultOption<T> {
96
+ readonly default?: T;
97
+ }
98
+ type Defaulted<S, D> = [D] extends [undefined] ? S : S & {
99
+ readonly default: unknown;
100
+ };
101
+ export declare function string<D extends string | undefined = undefined>(options?: ScalarOptions<D>): Defaulted<StringSchema, D>;
102
+ export declare function number<D extends number | undefined = undefined>(options?: ScalarOptions<D>): Defaulted<NumberSchema, D>;
103
+ export declare function boolean<D extends boolean | undefined = undefined>(options?: ScalarOptions<D>): Defaulted<BooleanSchema, D>;
104
+ export declare function unknown(): UnknownSchema;
105
+ export declare function literal<T extends Primitive, D extends T | undefined = undefined>(value: T, options?: ScalarOptions<D>): Defaulted<LiteralSchema<T>, D>;
106
+ export declare function array<S extends Schema, D extends NoInfer<Infer<S>>[] | undefined = undefined>(element: S, options?: DefaultOption<D>): Defaulted<ArraySchema<S>, D>;
107
+ export declare function object<Shape extends Record<string, Schema>>(shape: Shape, options?: DefaultOption<never>): ObjectSchema<Shape>;
108
+ export declare function tuple<Elements extends readonly Schema[], D extends NoInfer<Infer<TupleSchema<Elements>>> | undefined = undefined>(elements: [...Elements], options?: DefaultOption<D>): Defaulted<TupleSchema<Elements>, D>;
109
+ export declare function optional<S extends Schema>(inner: S): OptionalSchema<S>;
110
+ export declare function union<Members extends readonly Schema[], D extends NoInfer<Infer<UnionSchema<Members>>> | undefined = undefined>(members: [...Members], options?: DefaultOption<D>): Defaulted<UnionSchema<Members>, D>;
111
+ export declare function taggedUnion<Key extends string, Branches extends Record<string, ObjectSchema>, D extends NoInfer<Infer<TaggedUnionSchema<Key, Branches>>> | undefined = undefined>(key: Key, branches: Branches, options?: DefaultOption<D>): Defaulted<TaggedUnionSchema<Key, Branches>, D>;
112
+ export declare function applyDefaults(schema: Schema, value: unknown): unknown;
113
+ export declare function validate(schema: Schema, value: unknown, path: string): ReturnType<typeof err<SchemaError>> | null;
114
+ export {};
115
+ //# sourceMappingURL=core.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../../../runtime/schema/core.ts"],"names":[],"mappings":"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"}