wao 0.8.3 → 0.8.5

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/esm/tao.js CHANGED
@@ -3,7 +3,7 @@ import { createDataItemSigner } from "@permaweb/aoconnect"
3
3
  import { srcs, buildTags } from "./utils.js"
4
4
  import AR from "./tar.js"
5
5
  import { connect } from "./aoconnect.js"
6
- import { acc } from "./test.js"
6
+ import { acc, mu } from "./test.js"
7
7
  import { mergeLeft, is, map } from "ramda"
8
8
 
9
9
  let log = `
@@ -69,7 +69,6 @@ class AO extends MAO {
69
69
  cache: opt.cache,
70
70
  reset: opt.reset,
71
71
  })
72
- this.module = mem.modules.aos2_0_1
73
72
  this.assign = assign
74
73
  this.result = async (...opt) => {
75
74
  const res = await result(...opt)
package/esm/utils.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import { graphql, parse, validate, buildSchema } from "graphql"
2
2
 
3
- import { clone, is, includes, fromPairs, map, isNil } from "ramda"
3
+ import { clone, is, includes, fromPairs, map, isNil, equals } from "ramda"
4
4
 
5
5
  const allows = [
6
6
  { key: "allowed", val: "Allowed" },
@@ -86,6 +86,8 @@ const isData = (data, res) => {
86
86
  try {
87
87
  if (data.test(v.Data)) return true
88
88
  } catch (e) {}
89
+ } else if (typeof data === "function") {
90
+ return data(v.Data)
89
91
  } else {
90
92
  if (data === true || v.Data === data) return true
91
93
  }
@@ -149,6 +151,7 @@ const modGet = get => {
149
151
  } else if (
150
152
  is(Object, get) &&
151
153
  isNil(get.data) &&
154
+ isNil(get.from) &&
152
155
  isNil(get.json) &&
153
156
  isNil(get.name) &&
154
157
  isNil(get.obj)
@@ -158,23 +161,32 @@ const modGet = get => {
158
161
  return _get
159
162
  }
160
163
 
161
- const _getTagVal = (get, res) => {
164
+ const _getTagVal = (get, res, from) => {
162
165
  let out = null
163
166
  const _get = modGet(get)
164
167
  if (typeof _get === "object" && _get.obj) {
165
168
  out = {}
166
- for (const k in _get.obj ?? {}) out[k] = _getTagVal(_get.obj[k], res)
169
+ for (const k in _get.obj ?? {}) out[k] = _getTagVal(_get.obj[k], res, from)
167
170
  } else {
168
171
  for (const v of res.Messages ?? []) {
172
+ if (typeof _get === "object" && isNil(_get.name) && isNil(_get.data)) {
173
+ _get.data = true
174
+ }
169
175
  if (
170
176
  (typeof _get === "object" && _get.data) ||
171
177
  typeof _get === "boolean"
172
178
  ) {
179
+ let _from = null
180
+ if (is(Object, _get) && _get.from) _from = _get.from
181
+ if (_from && _from !== from) break
173
182
  if (v.Data) out = v.Data
174
183
  try {
175
184
  if (_get.json || _get === true) out = JSON.parse(out)
176
185
  } catch (e) {}
177
186
  } else if (typeof _get === "object" && typeof _get.name === "string") {
187
+ let _from = null
188
+ if (is(Object, _get) && _get.from) _from = _get.from
189
+ if (_from && _from !== from) break
178
190
  out = getTag(v.Tags ?? [], _get.name)
179
191
  try {
180
192
  if (_get.json) out = JSON.parse(out)
@@ -186,9 +198,9 @@ const _getTagVal = (get, res) => {
186
198
  return out
187
199
  }
188
200
 
189
- const getTagVal = (get, res) => {
201
+ const getTagVal = (get, res, from) => {
190
202
  const _get = modGet(get)
191
- return _getTagVal(_get, res)
203
+ return _getTagVal(_get, res, from)
192
204
  }
193
205
 
194
206
  const srcs = {
@@ -197,6 +209,9 @@ const srcs = {
197
209
  module_aos2: "Do_Uc2Sju_ffp6Ev0AnLVdPtot15rvMjP-a9VVaA5fM",
198
210
  scheduler: "_GQ33BkPtZrqxA84vM8Zk-N2aO0toNNu_C-l-rawrBA",
199
211
  authority: "fcoN_xJeisVsPXA-trzVAuIiqO3ydLQxM-L4XbrQKzY",
212
+ module_wao: "Do_Uc2Sju_ffp6Ev0AnLVdPtot15rvMjP-a9VVaA5fM",
213
+ scheduler_wao: "_GQ33BkPtZrqxA84vM8Zk-N2aO0toNNu_C-l-rawrBA",
214
+ authority_wao: "eNaLJLsMiWCSWvQKNbk_YT-9ydeWl9lrWwXxLVp9kcg",
200
215
  }
201
216
 
202
217
  const buildTags = (act, tags) => {
@@ -215,7 +230,7 @@ const buildTags = (act, tags) => {
215
230
 
216
231
  const mergeOut = (out, out2, get) => {
217
232
  const _get = modGet(get)
218
- if (_get.obj) {
233
+ if (_get?.obj) {
219
234
  for (const k in out2 ?? {}) {
220
235
  if (isNil(out?.[k])) {
221
236
  if (!out) out = {}
@@ -240,27 +255,20 @@ const isOutComplete = (out, get) => {
240
255
  if (isNil(get)) return true
241
256
  if (isNil(out)) return false
242
257
  const _get = modGet(get)
243
- if (_get.obj) {
244
- for (const k in out ?? {}) {
245
- if (isNil(out[k])) return false
246
- }
247
- }
258
+ if (_get.obj) for (const k in out ?? {}) if (isNil(out[k])) return false
248
259
  return true
249
260
  }
250
261
 
251
262
  const isCheckComplete = (checks, check) => {
252
263
  let i = 0
253
- for (const v of checks) {
264
+ for (const v of checks || []) {
265
+ if (!v) return false
254
266
  if (
255
267
  isRegExp(check[i]) ||
256
268
  includes(typeof check[i])(["string", "boolean"])
257
269
  ) {
258
270
  if (!v) return false
259
- } else {
260
- for (const k in v) {
261
- if (!v[k]) return false
262
- }
263
- }
271
+ } else for (const k in v) if (!v[k]) return false
264
272
  i++
265
273
  }
266
274
  return true
@@ -531,7 +539,91 @@ const optServer = port => {
531
539
  return { ar: port, mu: port + 2, su: port + 3, cu: port + 4 }
532
540
  }
533
541
 
542
+ const allChecked = (check, res, from) => {
543
+ let checks = []
544
+ let i = 0
545
+ for (let v of check || []) {
546
+ let _checks = checks[i] ?? null
547
+ if (isRegExp(v) || includes(typeof v)(["string", "boolean", "function"])) {
548
+ _checks = isData(v, res)
549
+ } else {
550
+ const _checkVal = (val, data) => {
551
+ if (isRegExp(val)) {
552
+ try {
553
+ if (val.test(data)) return true
554
+ } catch (e) {}
555
+ } else if (typeof val === "function") {
556
+ return val(data)
557
+ } else if (typeof val === "object" && !isNil(val.json)) {
558
+ try {
559
+ data = JSON.parse(data)
560
+ if (typeof val.json === "function") {
561
+ return val.json(data)
562
+ } else if (typeof val.json === "object") {
563
+ if (val.eq) return equals(data, val.json)
564
+ let ok = true
565
+ for (let k in val.json) {
566
+ if (!_checkVal(val.json[k], data[k])) {
567
+ ok = false
568
+ break
569
+ }
570
+ }
571
+ return ok
572
+ } else if (val.json === true) {
573
+ return true
574
+ }
575
+ } catch (e) {
576
+ return false
577
+ }
578
+ } else {
579
+ if (val === true || data === val) return true
580
+ }
581
+ return false
582
+ }
583
+ const checkVal = (res, val, name) => {
584
+ for (let v of res.Messages || []) {
585
+ let data = v.Data
586
+ if (!isNil(name)) {
587
+ const t = tags(v.Tags || [])
588
+ data = t[name]
589
+ }
590
+ if (isNil(data)) return false
591
+ return _checkVal(val, data)
592
+ }
593
+ return false
594
+ }
595
+
596
+ if (typeof v === "object") {
597
+ if (!isNil(v.json)) {
598
+ const _from = v.from
599
+ v = { data: v, from: _from }
600
+ } else if (isNil(v.tags) && isNil(v.data) && isNil(v.from)) {
601
+ v = { tags: v }
602
+ }
603
+ const _from = v.from ?? null
604
+ let checks2 = {}
605
+ if (!isNil(v.from) && v.from !== from) {
606
+ _checks = false
607
+ } else {
608
+ let ok = true
609
+ if (!isNil(v.data)) {
610
+ if (!checkVal(res, v.data)) ok = false
611
+ }
612
+ for (const k in v.tags ?? {}) {
613
+ if (!checkVal(res, v.tags[k], k)) ok = false
614
+ }
615
+ _checks = ok
616
+ }
617
+ }
618
+ }
619
+ checks[i] = _checks
620
+ i++
621
+ }
622
+ return isCheckComplete(checks, check)
623
+ }
624
+
534
625
  export {
626
+ allChecked,
535
627
  optAO,
536
628
  optServer,
537
629
  toGraphObj,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "wao",
3
- "version": "0.8.3",
3
+ "version": "0.8.5",
4
4
  "bin": {
5
5
  "wao": "./cjs/cli.js",
6
6
  "wao-esm": "./esm/cli.js"