@silverbulletmd/silverbullet 2.4.2 → 2.6.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 (97) hide show
  1. package/README.md +19 -4
  2. package/client/asset_bundle/bundle.ts +3 -9
  3. package/client/data/datastore.ts +4 -5
  4. package/client/markdown_parser/constants.ts +5 -4
  5. package/client/plugos/hooks/code_widget.ts +3 -8
  6. package/client/plugos/hooks/command.ts +8 -8
  7. package/client/plugos/hooks/document_editor.ts +10 -15
  8. package/client/plugos/hooks/event.ts +33 -36
  9. package/client/plugos/hooks/mq.ts +17 -17
  10. package/client/plugos/hooks/plug_namespace.ts +3 -8
  11. package/client/plugos/hooks/slash_command.ts +13 -28
  12. package/client/plugos/hooks/syscall.ts +3 -3
  13. package/client/plugos/manifest_cache.ts +22 -15
  14. package/client/plugos/plug.ts +2 -6
  15. package/client/plugos/plug_compile.ts +79 -78
  16. package/client/plugos/protocol.ts +28 -28
  17. package/client/plugos/proxy_fetch.ts +7 -6
  18. package/client/plugos/sandboxes/web_worker_sandbox.ts +1 -1
  19. package/client/plugos/sandboxes/worker_sandbox.ts +18 -18
  20. package/client/plugos/syscalls/asset.ts +1 -3
  21. package/client/plugos/syscalls/code_widget.ts +1 -3
  22. package/client/plugos/syscalls/config.ts +1 -5
  23. package/client/plugos/syscalls/datastore.ts +1 -1
  24. package/client/plugos/syscalls/editor.ts +72 -69
  25. package/client/plugos/syscalls/event.ts +9 -12
  26. package/client/plugos/syscalls/fetch.ts +31 -23
  27. package/client/plugos/syscalls/index.ts +10 -1
  28. package/client/plugos/syscalls/jsonschema.ts +72 -32
  29. package/client/plugos/syscalls/language.ts +9 -5
  30. package/client/plugos/syscalls/markdown.ts +29 -7
  31. package/client/plugos/syscalls/mq.ts +4 -12
  32. package/client/plugos/syscalls/service_registry.ts +1 -4
  33. package/client/plugos/syscalls/shell.ts +2 -5
  34. package/client/plugos/syscalls/space.ts +1 -1
  35. package/client/plugos/syscalls/sync.ts +69 -60
  36. package/client/plugos/syscalls/system.ts +2 -3
  37. package/client/plugos/system.ts +6 -12
  38. package/client/plugos/worker_runtime.ts +12 -33
  39. package/client/space_lua/aggregates.ts +782 -0
  40. package/client/space_lua/ast.ts +42 -8
  41. package/client/space_lua/ast_narrow.ts +4 -2
  42. package/client/space_lua/eval.ts +886 -575
  43. package/client/space_lua/labels.ts +7 -12
  44. package/client/space_lua/liq_null.ts +6 -0
  45. package/client/space_lua/numeric.ts +5 -8
  46. package/client/space_lua/parse.ts +346 -120
  47. package/client/space_lua/query_collection.ts +926 -82
  48. package/client/space_lua/query_env.ts +26 -0
  49. package/client/space_lua/render_lua_markdown.ts +369 -0
  50. package/client/space_lua/rp.ts +5 -4
  51. package/client/space_lua/runtime.ts +288 -155
  52. package/client/space_lua/stdlib/format.ts +53 -39
  53. package/client/space_lua/stdlib/js.ts +3 -7
  54. package/client/space_lua/stdlib/load.ts +1 -3
  55. package/client/space_lua/stdlib/math.ts +84 -58
  56. package/client/space_lua/stdlib/net.ts +27 -17
  57. package/client/space_lua/stdlib/os.ts +81 -85
  58. package/client/space_lua/stdlib/pattern.ts +695 -0
  59. package/client/space_lua/stdlib/prng.ts +148 -0
  60. package/client/space_lua/stdlib/space_lua.ts +17 -23
  61. package/client/space_lua/stdlib/string.ts +102 -190
  62. package/client/space_lua/stdlib/string_pack.ts +490 -0
  63. package/client/space_lua/stdlib/table.ts +76 -16
  64. package/client/space_lua/stdlib.ts +53 -39
  65. package/client/space_lua/tonumber.ts +82 -42
  66. package/client/space_lua/util.ts +53 -15
  67. package/dist/plug-compile.js +55 -98
  68. package/package.json +27 -20
  69. package/plug-api/constants.ts +0 -32
  70. package/plug-api/lib/async.ts +20 -7
  71. package/plug-api/lib/crypto.ts +16 -17
  72. package/plug-api/lib/dates.ts +15 -7
  73. package/plug-api/lib/json.ts +11 -5
  74. package/plug-api/lib/limited_map.ts +1 -1
  75. package/plug-api/lib/native_fetch.ts +2 -0
  76. package/plug-api/lib/ref.ts +23 -23
  77. package/plug-api/lib/resolve.ts +7 -11
  78. package/plug-api/lib/tags.ts +13 -4
  79. package/plug-api/lib/transclusion.ts +10 -21
  80. package/plug-api/lib/tree.ts +165 -45
  81. package/plug-api/lib/yaml.ts +35 -25
  82. package/plug-api/syscalls/asset.ts +1 -1
  83. package/plug-api/syscalls/config.ts +1 -4
  84. package/plug-api/syscalls/editor.ts +15 -15
  85. package/plug-api/syscalls/jsonschema.ts +1 -3
  86. package/plug-api/syscalls/lua.ts +3 -9
  87. package/plug-api/syscalls/mq.ts +1 -4
  88. package/plug-api/syscalls/shell.ts +4 -1
  89. package/plug-api/syscalls/space.ts +3 -10
  90. package/plug-api/syscalls/system.ts +1 -4
  91. package/plug-api/syscalls/yaml.ts +2 -6
  92. package/plug-api/system_mock.ts +0 -1
  93. package/plug-api/types/client.ts +16 -1
  94. package/plug-api/types/event.ts +6 -4
  95. package/plug-api/types/manifest.ts +8 -9
  96. package/plugs/builtin_plugs.ts +2 -2
  97. package/client/plugos/sandboxes/deno_worker_sandbox.ts +0 -6
@@ -27,7 +27,10 @@ type FunctionMeta = {
27
27
  };
28
28
 
29
29
  class LabelResolveError extends Error {
30
- constructor(msg: string, public astCtx: ASTCtx) {
30
+ constructor(
31
+ msg: string,
32
+ public astCtx: ASTCtx,
33
+ ) {
31
34
  super(msg);
32
35
  }
33
36
  }
@@ -70,14 +73,7 @@ type ValidationCtx = {
70
73
  closeLocals: Set<LocalID>;
71
74
  };
72
75
 
73
- type BlockRole =
74
- | "Root"
75
- | "Do"
76
- | "If"
77
- | "While"
78
- | "Repeat"
79
- | "For"
80
- | "ForIn";
76
+ type BlockRole = "Root" | "Do" | "If" | "While" | "Repeat" | "For" | "ForIn";
81
77
 
82
78
  function resolveFunction(root: LuaBlock): FunctionMeta {
83
79
  const existing = functionMetaByRoot.get(root);
@@ -122,7 +118,7 @@ function resolveFunction(root: LuaBlock): FunctionMeta {
122
118
 
123
119
  while (searchBlock) {
124
120
  const meta = blockMeta.get(searchBlock);
125
- if (meta && meta.labels.has(target)) {
121
+ if (meta?.labels.has(target)) {
126
122
  labelIndex = meta.labels.get(target);
127
123
  labelDefBlock = searchBlock;
128
124
  break;
@@ -282,8 +278,7 @@ function processBlock(
282
278
  curActive.add(id);
283
279
 
284
280
  const isClose =
285
- l.names[j].attributes?.includes(LuaAttribute.Close) ===
286
- true;
281
+ l.names[j].attributes?.includes(LuaAttribute.Close) === true;
287
282
  if (isClose) {
288
283
  vctx.closeLocals.add(id);
289
284
  }
@@ -0,0 +1,6 @@
1
+ // Sentinel value representing SQL NULL in query results.
2
+ export const LIQ_NULL = Symbol.for("silverbullet.sqlNull");
3
+
4
+ export function isSqlNull(v: any): boolean {
5
+ return v === LIQ_NULL;
6
+ }
@@ -31,10 +31,7 @@ function makeFloat(n: number): LuaTaggedFloat {
31
31
  }
32
32
 
33
33
  // Box a zero with a given kind tag.
34
- export function makeLuaZero(
35
- n: number,
36
- numericType: NumericType,
37
- ): any {
34
+ export function makeLuaZero(n: number, numericType: NumericType): any {
38
35
  if (n !== 0) {
39
36
  return n;
40
37
  }
@@ -107,9 +104,7 @@ export function combineNumericTypes(
107
104
  return "int";
108
105
  }
109
106
 
110
- export function getNumericKind(
111
- n: unknown,
112
- ): NumericType | undefined {
107
+ export function getNumericKind(n: unknown): NumericType | undefined {
113
108
  if (typeof n === "number") {
114
109
  return inferNumericType(n);
115
110
  }
@@ -174,7 +169,9 @@ export function coerceNumericPair(
174
169
  right: b,
175
170
  resultType: forceFloat
176
171
  ? "float"
177
- : ((lt === "float" || rt === "float") ? "float" : "int"),
172
+ : lt === "float" || rt === "float"
173
+ ? "float"
174
+ : "int",
178
175
  };
179
176
  }
180
177