@substrat-run/contract-tests 0.133.0 → 0.134.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/attachment-text-fixtures.d.ts +36 -0
- package/dist/attachment-text-fixtures.d.ts.map +1 -0
- package/dist/attachment-text-fixtures.js +956 -0
- package/dist/attachment-text-fixtures.js.map +1 -0
- package/dist/attachment-text-suite.d.ts +3 -0
- package/dist/attachment-text-suite.d.ts.map +1 -0
- package/dist/attachment-text-suite.js +359 -0
- package/dist/attachment-text-suite.js.map +1 -0
- package/dist/capability-attachment-suite.d.ts.map +1 -1
- package/dist/capability-attachment-suite.js +25 -0
- package/dist/capability-attachment-suite.js.map +1 -1
- package/dist/idempotency-suite.d.ts.map +1 -1
- package/dist/idempotency-suite.js +43 -2
- package/dist/idempotency-suite.js.map +1 -1
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/list-suite.d.ts.map +1 -1
- package/dist/list-suite.js +18 -2
- package/dist/list-suite.js.map +1 -1
- package/dist/modules.d.ts.map +1 -1
- package/dist/modules.js +10 -3
- package/dist/modules.js.map +1 -1
- package/dist/scope-host-suite.d.ts.map +1 -1
- package/dist/scope-host-suite.js +423 -12
- package/dist/scope-host-suite.js.map +1 -1
- package/package.json +3 -3
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"attachment-text-fixtures.js","sourceRoot":"","sources":["../src/attachment-text-fixtures.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,+DAA+D;AAC/D,MAAM,CAAC,MAAM,UAAU,GAAG;IACxB,mBAAmB;IACnB,EAAE;IACF,oFAAoF;IACpF,6CAA6C;CAC9C,CAAC;AAEF,MAAM,WAAW,GAAG;IAClB,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sFAAsF;CACvF,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAEX,MAAM,WAAW,GAAG;IAClB,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,UAAU;CACX,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAEX,MAAM,WAAW,GAAG;IAClB,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAA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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"attachment-text-suite.d.ts","sourceRoot":"","sources":["../src/attachment-text-suite.ts"],"names":[],"mappings":"AAoDA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAY9D,wBAAgB,2BAA2B,CACzC,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,MAAM,OAAO,CAAC,gBAAgB,CAAC,GAC3C,IAAI,CAsWN"}
|
|
@@ -0,0 +1,359 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Contract suite for attachment content search (#1575): an upload's text extracted by a
|
|
3
|
+
* job, indexed in the scope, and searchable through `ScopeAttachments.search`.
|
|
4
|
+
*
|
|
5
|
+
* What it pins, in one sentence: **an attachment is found by a phrase from its body
|
|
6
|
+
* exactly when the caller could `open` it, and a match the caller cannot open changes
|
|
7
|
+
* nothing about what the caller sees.**
|
|
8
|
+
*
|
|
9
|
+
* 1. **Every supported type, from its real producer.** Each fixture is uploaded, the
|
|
10
|
+
* extraction job runs through `runDueJobs`, and its recorded state is read through
|
|
11
|
+
* `readAttachmentText` on the adapter's own `ctx.sql`. An indexed file is found by a
|
|
12
|
+
* phrase from its body; an unsupported, empty or damaged one says so, and is never
|
|
13
|
+
* "indexed, no match". The upload of a damaged file still succeeds.
|
|
14
|
+
* 2. **The gate.** A match on an entity the caller cannot read is absent, takes no slot
|
|
15
|
+
* under a limit, and leaves the page identical to a scope where that file does not
|
|
16
|
+
* exist; every hit opens. Twin: the editor sees both.
|
|
17
|
+
* 3. **Idempotence.** Extracting again leaves one row and one match.
|
|
18
|
+
* 4. **Removal.** A removed attachment's text and index entries go with it, including
|
|
19
|
+
* when the removal lands before its extraction runs.
|
|
20
|
+
* 5. **Bounds.** Text past the per-attachment cap is cut and recorded `truncated`, and
|
|
21
|
+
* the capped row — near the size a Durable Object row is refused at — writes and is
|
|
22
|
+
* found.
|
|
23
|
+
* 6. **Dumps.** A dump carries no extracted text. An in-place restore keeps the text of
|
|
24
|
+
* the attachments it keeps and drops the rest; a fork, whose bytes stay under the
|
|
25
|
+
* source scope's key, records each attachment as failed rather than leaving it pending.
|
|
26
|
+
*/
|
|
27
|
+
import { describe, it, expect, beforeAll, afterAll } from 'vitest';
|
|
28
|
+
import { errorCodeOf, moduleId, permissionKey, platformActorId, principalId, scopeId as scopeIdSchema, tenantId, } from '@substrat-run/contracts';
|
|
29
|
+
import { ATTACHMENT_SEARCH_OWNER_MAX, ATTACHMENT_SEARCH_TOO_MANY_OWNERS, ATTACHMENT_TEXT_JOB, ATTACHMENT_TEXT_MODULE, DEFAULT_ATTACHMENT_TEXT_BOUNDS, SearchTermTooShort, isSearchIndexTable, ulid, } from '@substrat-run/kernel';
|
|
30
|
+
import { permMod } from './modules.js';
|
|
31
|
+
import { ATTACHMENT_TEXT_FIXTURES } from './attachment-text-fixtures.js';
|
|
32
|
+
const PERM_READ = permissionKey.parse('perm:read');
|
|
33
|
+
const PERM_USE = permissionKey.parse('perm:use');
|
|
34
|
+
const item = (id) => ({ entityType: 'item', entityId: id });
|
|
35
|
+
const bytes = (s) => new TextEncoder().encode(s);
|
|
36
|
+
/** For a test that uploads and extracts thousands of files: the setup, not the search, takes the time. */
|
|
37
|
+
const SETUP_HEAVY_MS = 120_000;
|
|
38
|
+
export function attachmentTextContractSuite(adapterName, makeFixture) {
|
|
39
|
+
describe(`attachment text search (#1575): ${adapterName}`, () => {
|
|
40
|
+
let fixture;
|
|
41
|
+
let host;
|
|
42
|
+
const t = tenantId.parse(ulid());
|
|
43
|
+
const staff = platformActorId.parse(ulid());
|
|
44
|
+
const editor = principalId.parse(ulid()); // perm:read + perm:use, tenant-wide
|
|
45
|
+
const bob = principalId.parse(ulid()); // no role: entity-narrowed grants only
|
|
46
|
+
beforeAll(async () => {
|
|
47
|
+
fixture = await makeFixture();
|
|
48
|
+
host = fixture.host;
|
|
49
|
+
host.registerModule(permMod);
|
|
50
|
+
await host.admin.createTenant(staff, { id: t, slug: `att-text-${t.toLowerCase()}`, name: 'Attachment text' });
|
|
51
|
+
await host.admin.grantEntitlement(staff, t, 'perm');
|
|
52
|
+
await host.provisionBlobStore(staff, { tenantId: t, vertical: 'docs', binding: 'ATTACHMENTS' });
|
|
53
|
+
await host.admin.defineRole(staff, t, { key: 'editor', permissions: [PERM_READ, PERM_USE], source: 'vertical' });
|
|
54
|
+
await host.admin.assignRole(staff, { principalId: editor, roleKey: 'editor', node: { tenantId: t, scopeId: null } });
|
|
55
|
+
// A role at the tenant that holds a DIFFERENT key on the target: never "wide" for reading.
|
|
56
|
+
await host.admin.defineRole(staff, t, { key: 'user', permissions: [PERM_USE], source: 'vertical' });
|
|
57
|
+
});
|
|
58
|
+
afterAll(async () => {
|
|
59
|
+
await fixture.cleanup();
|
|
60
|
+
});
|
|
61
|
+
/** A scope per test: `runDueJobs` drives a whole scope, so tests must not share one. */
|
|
62
|
+
const newScope = async () => {
|
|
63
|
+
const s = scopeIdSchema.parse(ulid());
|
|
64
|
+
await host.provisionScope(staff, { tenantId: t, scopeId: s, vertical: 'docs' });
|
|
65
|
+
await host.admin.activateScope(staff, t, s);
|
|
66
|
+
return s;
|
|
67
|
+
};
|
|
68
|
+
const upload = async (s, entity, filename, contentType, body) => (await host.attachments(editor, t, s)).upload({ entity, filename, contentType, visibility: 'internal', body });
|
|
69
|
+
/** Drive the scope's due runs until none are left. */
|
|
70
|
+
const extract = async (s) => {
|
|
71
|
+
for (let i = 0; i < 100; i += 1) {
|
|
72
|
+
if ((await host.runDueJobs(t, s, { limit: 500 })).attempted === 0)
|
|
73
|
+
return;
|
|
74
|
+
}
|
|
75
|
+
throw new Error('extraction runs did not settle');
|
|
76
|
+
};
|
|
77
|
+
const stateOf = async (s, id) => (await host.getScope(editor, t, s)).invoke('perm/attachment-text', { id });
|
|
78
|
+
const search = async (s, who, term, limit) => (await host.attachments(who, t, s)).search(term, limit === undefined ? undefined : { limit });
|
|
79
|
+
const grant = async (s, who, entity) => (await host.getScope(editor, t, s)).invoke('perm/share', { principal: who, permission: 'perm:read', entity });
|
|
80
|
+
/** Rows the console read sees — the index itself, not the search surface over it. */
|
|
81
|
+
const count = async (s, sql) => Number((await host.admin.queryScope(staff, t, s, { sql })).rows[0][0]);
|
|
82
|
+
const indexMatches = (s, word) => count(s, `SELECT count(*) FROM _substrat_search__attachments WHERE _substrat_search__attachments MATCH '"${word}"'`);
|
|
83
|
+
const textRows = (s, id) => count(s, `SELECT count(*) FROM _substrat_search__attachment_text WHERE attachment_id = '${id}'`);
|
|
84
|
+
describe('every supported type, from its real producer', () => {
|
|
85
|
+
let s;
|
|
86
|
+
const uploaded = new Map();
|
|
87
|
+
beforeAll(async () => {
|
|
88
|
+
s = await newScope();
|
|
89
|
+
for (const f of ATTACHMENT_TEXT_FIXTURES) {
|
|
90
|
+
// A damaged file's upload succeeds like any other: extraction is off the upload.
|
|
91
|
+
uploaded.set(f.name, await upload(s, item('fixtures'), f.filename, f.contentType, f.body));
|
|
92
|
+
}
|
|
93
|
+
});
|
|
94
|
+
it('records each upload as pending until its job runs', async () => {
|
|
95
|
+
for (const f of ATTACHMENT_TEXT_FIXTURES) {
|
|
96
|
+
expect((await stateOf(s, uploaded.get(f.name).id))?.status).toBe('pending');
|
|
97
|
+
}
|
|
98
|
+
});
|
|
99
|
+
it.each(ATTACHMENT_TEXT_FIXTURES.map((f) => [f.name, f]))('%s: recorded with the outcome its type earns', async (_name, f) => {
|
|
100
|
+
await extract(s);
|
|
101
|
+
const state = await stateOf(s, uploaded.get(f.name).id);
|
|
102
|
+
expect(state).toMatchObject({ status: f.status, extractor: f.extractor });
|
|
103
|
+
if (f.status === 'indexed') {
|
|
104
|
+
expect(state.bytes).toBeGreaterThan(0);
|
|
105
|
+
expect(state.detail).toBeNull();
|
|
106
|
+
}
|
|
107
|
+
else {
|
|
108
|
+
// Never "indexed, no match": no text, and when there is a reason, it is said.
|
|
109
|
+
expect(state.bytes).toBeNull();
|
|
110
|
+
if (f.status !== 'empty')
|
|
111
|
+
expect(state.detail).toEqual(expect.any(String));
|
|
112
|
+
}
|
|
113
|
+
});
|
|
114
|
+
it('finds every indexed file by a phrase from its body — the first phrase finds it alone', async () => {
|
|
115
|
+
await extract(s);
|
|
116
|
+
for (const f of ATTACHMENT_TEXT_FIXTURES.filter((x) => x.finds)) {
|
|
117
|
+
const id = uploaded.get(f.name).id;
|
|
118
|
+
const [unique, ...rest] = f.finds;
|
|
119
|
+
expect((await search(s, editor, unique)).map((r) => r.id), `${f.name}: ${unique}`).toEqual([id]);
|
|
120
|
+
for (const phrase of rest) {
|
|
121
|
+
expect((await search(s, editor, phrase)).map((r) => r.id), `${f.name}: ${phrase}`).toContain(id);
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
});
|
|
125
|
+
it('does not index what a file carries but nobody reads — a script body', async () => {
|
|
126
|
+
await extract(s);
|
|
127
|
+
for (const f of ATTACHMENT_TEXT_FIXTURES.filter((x) => x.hides)) {
|
|
128
|
+
expect(await search(s, editor, f.hides)).toEqual([]);
|
|
129
|
+
}
|
|
130
|
+
});
|
|
131
|
+
it('hands back the record `open` would, and refuses a term too short to match', async () => {
|
|
132
|
+
await extract(s);
|
|
133
|
+
const [hit] = await search(s, editor, 'zephyr');
|
|
134
|
+
expect(hit).toEqual(uploaded.get('plain text'));
|
|
135
|
+
await expect(search(s, editor, 'z')).rejects.toBeInstanceOf(SearchTermTooShort);
|
|
136
|
+
});
|
|
137
|
+
});
|
|
138
|
+
describe('the gate: a match the caller cannot open changes nothing they see', () => {
|
|
139
|
+
it('is absent, takes no slot under a limit, and every hit opens — the editor, the twin, sees both', async () => {
|
|
140
|
+
const s = await newScope();
|
|
141
|
+
await grant(s, bob, item('allowed'));
|
|
142
|
+
const allowed = await upload(s, item('allowed'), 'a.txt', 'text/plain', bytes('indexation memo for the allowed item'));
|
|
143
|
+
// NEWER than `allowed`, so in newest-first order it is the first candidate: if it took
|
|
144
|
+
// a slot before the gate, a limit of one would hand bob nothing.
|
|
145
|
+
const denied = await upload(s, item('denied'), 'd.txt', 'text/plain', bytes('indexation memo for the denied item'));
|
|
146
|
+
await extract(s);
|
|
147
|
+
expect((await search(s, bob, 'indexation')).map((r) => r.id)).toEqual([allowed.id]);
|
|
148
|
+
expect((await search(s, bob, 'indexation', 1)).map((r) => r.id)).toEqual([allowed.id]);
|
|
149
|
+
expect((await search(s, editor, 'indexation')).map((r) => r.id)).toEqual([denied.id, allowed.id]);
|
|
150
|
+
expect((await search(s, editor, 'indexation', 1)).map((r) => r.id)).toEqual([denied.id]);
|
|
151
|
+
// What search hands bob, bob can open; what it withholds, bob cannot.
|
|
152
|
+
const files = await host.attachments(bob, t, s);
|
|
153
|
+
expect((await files.open(allowed.id))?.record.id).toBe(allowed.id);
|
|
154
|
+
// By message: on the DO host a principal's refusal crosses RPC as its message alone.
|
|
155
|
+
await expect(files.open(denied.id)).rejects.toThrow(/permission denied/i);
|
|
156
|
+
});
|
|
157
|
+
it('gives bob the same page, at every limit, as a scope where the denied file does not exist', async () => {
|
|
158
|
+
const withDenied = await newScope();
|
|
159
|
+
const without = await newScope();
|
|
160
|
+
for (const s of [withDenied, without]) {
|
|
161
|
+
await grant(s, bob, item('allowed'));
|
|
162
|
+
await upload(s, item('allowed'), 'one.txt', 'text/plain', bytes('quarterly indexation review one'));
|
|
163
|
+
if (s === withDenied) {
|
|
164
|
+
await upload(s, item('denied'), 'secret.txt', 'text/plain', bytes('quarterly indexation review secret'));
|
|
165
|
+
}
|
|
166
|
+
await upload(s, item('allowed'), 'two.txt', 'text/plain', bytes('quarterly indexation review two'));
|
|
167
|
+
if (s === withDenied) {
|
|
168
|
+
await upload(s, item('denied'), 'secret2.txt', 'text/plain', bytes('quarterly indexation secret again'));
|
|
169
|
+
}
|
|
170
|
+
await extract(s);
|
|
171
|
+
}
|
|
172
|
+
const page = async (s, term, limit) => (await search(s, bob, term, limit)).map((r) => r.filename);
|
|
173
|
+
for (const term of ['indexation', 'quarterly review', 'indexation secret']) {
|
|
174
|
+
for (const limit of [1, 2, 3, undefined]) {
|
|
175
|
+
expect(await page(withDenied, term, limit), `${term} / ${limit}`).toEqual(await page(without, term, limit));
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
expect(await page(withDenied, 'secret')).toEqual([]);
|
|
179
|
+
});
|
|
180
|
+
it('leaves the one readable older match on page one past a thousand newer hidden ones — as in the control scope', async () => {
|
|
181
|
+
const s = await newScope();
|
|
182
|
+
const control = await newScope();
|
|
183
|
+
for (const scope of [s, control]) {
|
|
184
|
+
await grant(scope, bob, item('allowed'));
|
|
185
|
+
await upload(scope, item('allowed'), 'old.txt', 'text/plain', bytes('the margay ledger, readable'));
|
|
186
|
+
}
|
|
187
|
+
// Every one of these is NEWER than old.txt. A scan bound applied before the gate would
|
|
188
|
+
// have spent itself on them and handed bob nothing.
|
|
189
|
+
for (let i = 0; i < 1001; i += 1) {
|
|
190
|
+
await upload(s, item('denied'), `hidden-${i}.txt`, 'text/plain', bytes(`the margay ledger, hidden ${i}`));
|
|
191
|
+
}
|
|
192
|
+
await extract(s);
|
|
193
|
+
await extract(control);
|
|
194
|
+
for (const limit of [1, 20]) {
|
|
195
|
+
const page = (await search(s, bob, 'margay', limit)).map((r) => r.filename);
|
|
196
|
+
expect(page).toEqual(['old.txt']);
|
|
197
|
+
expect(page).toEqual((await search(control, bob, 'margay', limit)).map((r) => r.filename));
|
|
198
|
+
}
|
|
199
|
+
// The twin: the editor reads every owner, so the newest hidden ones fill its page.
|
|
200
|
+
const editors = await search(s, editor, 'margay', 20);
|
|
201
|
+
expect(editors).toHaveLength(20);
|
|
202
|
+
expect(editors.map((r) => r.filename)).not.toContain('old.txt');
|
|
203
|
+
}, SETUP_HEAVY_MS);
|
|
204
|
+
it('is not "wide" for a node-level grant on a different key, nor for an entity grant alone', async () => {
|
|
205
|
+
const s = await newScope();
|
|
206
|
+
const dave = principalId.parse(ulid()); // `user` at the tenant (perm:use only) + perm:read on one item
|
|
207
|
+
await host.admin.assignRole(staff, { principalId: dave, roleKey: 'user', node: { tenantId: t, scopeId: null } });
|
|
208
|
+
await grant(s, dave, item('mine'));
|
|
209
|
+
await grant(s, bob, item('mine'));
|
|
210
|
+
const mine = await upload(s, item('mine'), 'mine.txt', 'text/plain', bytes('the caracal file, mine'));
|
|
211
|
+
await upload(s, item('other'), 'other.txt', 'text/plain', bytes('the caracal file, other'));
|
|
212
|
+
await extract(s);
|
|
213
|
+
expect((await search(s, dave, 'caracal')).map((r) => r.id)).toEqual([mine.id]);
|
|
214
|
+
expect((await search(s, bob, 'caracal')).map((r) => r.id)).toEqual([mine.id]);
|
|
215
|
+
// The twin: a node-level grant on the READ key is wide.
|
|
216
|
+
expect(await search(s, editor, 'caracal')).toHaveLength(2);
|
|
217
|
+
});
|
|
218
|
+
it('refuses a narrowed caller past the owner cap — the same for a term with matches and one without', async () => {
|
|
219
|
+
const s = await newScope();
|
|
220
|
+
await grant(s, bob, item('o0'));
|
|
221
|
+
for (let i = 0; i <= ATTACHMENT_SEARCH_OWNER_MAX; i += 1) {
|
|
222
|
+
await upload(s, item(`o${i}`), `o${i}.txt`, 'text/plain', bytes(i === 0 ? 'the jerboa note' : 'filler only'));
|
|
223
|
+
}
|
|
224
|
+
await extract(s);
|
|
225
|
+
const refusalOf = async (term) => {
|
|
226
|
+
const err = await search(s, bob, term).then(() => undefined, (e) => e);
|
|
227
|
+
return { code: errorCodeOf(err), reason: err?.extensions?.reason };
|
|
228
|
+
};
|
|
229
|
+
const refused = { code: 'forbidden', reason: ATTACHMENT_SEARCH_TOO_MANY_OWNERS };
|
|
230
|
+
expect(await refusalOf('jerboa')).toEqual(refused); // one match, readable by bob
|
|
231
|
+
expect(await refusalOf('nothingmatchesthis')).toEqual(refused); // no match at all
|
|
232
|
+
// The twin: a caller who reads the type at the scope is never refused.
|
|
233
|
+
expect((await search(s, editor, 'jerboa')).map((r) => r.filename)).toEqual(['o0.txt']);
|
|
234
|
+
}, SETUP_HEAVY_MS);
|
|
235
|
+
it('records no denial for a hit it withheld — nobody asked for that row', async () => {
|
|
236
|
+
const s = await newScope();
|
|
237
|
+
await upload(s, item('denied'), 'd.txt', 'text/plain', bytes('a withheld wombat'));
|
|
238
|
+
await extract(s);
|
|
239
|
+
expect(await search(s, bob, 'wombat')).toEqual([]);
|
|
240
|
+
const denials = await (await host.getScope(editor, t, s)).invoke('perm/read-denials');
|
|
241
|
+
expect(denials.filter((d) => d.operation === 'attachments.search')).toEqual([]);
|
|
242
|
+
});
|
|
243
|
+
});
|
|
244
|
+
describe('the kernel job is the host’s own', () => {
|
|
245
|
+
it('refuses a registration under the kernel’s module id — any job name — and accepts the same name elsewhere', () => {
|
|
246
|
+
const handler = () => ({ done: true });
|
|
247
|
+
expect(() => host.registerJob(ATTACHMENT_TEXT_MODULE, ATTACHMENT_TEXT_JOB, handler)).toThrow(/reserved/);
|
|
248
|
+
expect(() => host.registerJob(ATTACHMENT_TEXT_MODULE, 'a-later-kernel-job', handler)).toThrow(/reserved/);
|
|
249
|
+
// The twin: a module of its own may name a job `attachment-text`; only the module id is reserved.
|
|
250
|
+
expect(() => host.registerJob(moduleId.parse('@test/att-text-twin'), ATTACHMENT_TEXT_JOB, handler)).not.toThrow();
|
|
251
|
+
});
|
|
252
|
+
});
|
|
253
|
+
describe('idempotence, removal and bounds', () => {
|
|
254
|
+
it('extracting again leaves one text row and one index match', async () => {
|
|
255
|
+
const s = await newScope();
|
|
256
|
+
const rec = await upload(s, item('i'), 'r.txt', 'text/plain', bytes('the platypus clause'));
|
|
257
|
+
await extract(s);
|
|
258
|
+
for (let i = 0; i < 2; i += 1) {
|
|
259
|
+
await host.startJobRun(t, s, {
|
|
260
|
+
moduleId: ATTACHMENT_TEXT_MODULE,
|
|
261
|
+
job: ATTACHMENT_TEXT_JOB,
|
|
262
|
+
instance: rec.id,
|
|
263
|
+
payload: { attachmentId: rec.id },
|
|
264
|
+
});
|
|
265
|
+
await extract(s);
|
|
266
|
+
}
|
|
267
|
+
expect(await textRows(s, rec.id)).toBe(1);
|
|
268
|
+
expect(await indexMatches(s, 'platypus')).toBe(1);
|
|
269
|
+
expect((await search(s, editor, 'platypus')).map((r) => r.id)).toEqual([rec.id]);
|
|
270
|
+
expect((await stateOf(s, rec.id))?.status).toBe('indexed');
|
|
271
|
+
});
|
|
272
|
+
it('a removed attachment takes its text and its index entries with it', async () => {
|
|
273
|
+
const s = await newScope();
|
|
274
|
+
const gone = await upload(s, item('i'), 'gone.txt', 'text/plain', bytes('the axolotl appendix'));
|
|
275
|
+
const kept = await upload(s, item('i'), 'kept.txt', 'text/plain', bytes('the axolotl summary'));
|
|
276
|
+
await extract(s);
|
|
277
|
+
expect(await indexMatches(s, 'axolotl')).toBe(2);
|
|
278
|
+
await (await host.attachments(editor, t, s)).remove(gone.id);
|
|
279
|
+
expect(await textRows(s, gone.id)).toBe(0);
|
|
280
|
+
expect(await indexMatches(s, 'axolotl')).toBe(1);
|
|
281
|
+
expect((await search(s, editor, 'axolotl')).map((r) => r.id)).toEqual([kept.id]);
|
|
282
|
+
expect(await stateOf(s, gone.id)).toBeNull();
|
|
283
|
+
});
|
|
284
|
+
it('a removal that lands before the extraction runs is not undone by it', async () => {
|
|
285
|
+
const s = await newScope();
|
|
286
|
+
const rec = await upload(s, item('i'), 'early.txt', 'text/plain', bytes('the tapir memo'));
|
|
287
|
+
await (await host.attachments(editor, t, s)).remove(rec.id);
|
|
288
|
+
await extract(s);
|
|
289
|
+
expect(await textRows(s, rec.id)).toBe(0);
|
|
290
|
+
expect(await indexMatches(s, 'tapir')).toBe(0);
|
|
291
|
+
const [run] = await host.jobRuns(t, s, { moduleId: ATTACHMENT_TEXT_MODULE, instance: rec.id });
|
|
292
|
+
expect(run).toMatchObject({ status: 'done', counters: { gone: 1 } });
|
|
293
|
+
});
|
|
294
|
+
it('cuts text at the per-attachment cap, says so, and still writes and finds the capped row', async () => {
|
|
295
|
+
const s = await newScope();
|
|
296
|
+
const cap = DEFAULT_ATTACHMENT_TEXT_BOUNDS.maxTextBytes;
|
|
297
|
+
// A head phrase, then three-byte characters well past the cap — so the cut lands on a
|
|
298
|
+
// multi-byte boundary — and a tail phrase that falls beyond it.
|
|
299
|
+
const body = `kinkajou opening ${'€'.repeat(Math.ceil(cap / 3) + 1000)} capybara ending`;
|
|
300
|
+
const rec = await upload(s, item('i'), 'big.txt', 'text/plain', bytes(body));
|
|
301
|
+
await extract(s);
|
|
302
|
+
const state = await stateOf(s, rec.id);
|
|
303
|
+
expect(state).toMatchObject({ status: 'indexed', truncated: true });
|
|
304
|
+
expect(state.bytes).toBeLessThanOrEqual(cap);
|
|
305
|
+
expect(state.bytes).toBeGreaterThan(cap - 3);
|
|
306
|
+
expect((await search(s, editor, 'kinkajou')).map((r) => r.id)).toEqual([rec.id]);
|
|
307
|
+
expect(await search(s, editor, 'capybara')).toEqual([]);
|
|
308
|
+
});
|
|
309
|
+
});
|
|
310
|
+
describe('dumps carry no text; a load re-derives it where the bytes are', () => {
|
|
311
|
+
it('an export carries the attachment row and not one word of its extracted text', async () => {
|
|
312
|
+
const s = await newScope();
|
|
313
|
+
await upload(s, item('i'), 'x.txt', 'text/plain', bytes('the dugong file'));
|
|
314
|
+
await extract(s);
|
|
315
|
+
expect(await search(s, editor, 'dugong')).toHaveLength(1);
|
|
316
|
+
const dump = await host.admin.exportScope(staff, t, s);
|
|
317
|
+
expect(dump.tables.some((tb) => tb.name === '_substrat_attachments')).toBe(true);
|
|
318
|
+
// Judged on the rows, not on table names: a renamed text table must still fail this.
|
|
319
|
+
expect(JSON.stringify(dump.tables.map((tb) => tb.rows))).not.toContain('dugong');
|
|
320
|
+
expect(dump.tables.some((tb) => isSearchIndexTable(tb.name))).toBe(false);
|
|
321
|
+
});
|
|
322
|
+
it('an in-place restore keeps the text of what it keeps and drops the rest', async () => {
|
|
323
|
+
const s = await newScope();
|
|
324
|
+
const before = await upload(s, item('i'), 'before.txt', 'text/plain', bytes('the okapi before'));
|
|
325
|
+
await extract(s);
|
|
326
|
+
const dump = await host.admin.exportScope(staff, t, s);
|
|
327
|
+
const after = await upload(s, item('i'), 'after.txt', 'text/plain', bytes('the okapi after'));
|
|
328
|
+
await extract(s);
|
|
329
|
+
expect(await indexMatches(s, 'okapi')).toBe(2);
|
|
330
|
+
await host.restoreScope(staff, t, s, dump);
|
|
331
|
+
// The rewound-away attachment's text is gone at once; the kept one's is still indexed,
|
|
332
|
+
// with no extraction needed.
|
|
333
|
+
expect(await textRows(s, after.id)).toBe(0);
|
|
334
|
+
expect(await indexMatches(s, 'okapi')).toBe(1);
|
|
335
|
+
expect((await stateOf(s, before.id))?.status).toBe('indexed');
|
|
336
|
+
expect((await search(s, editor, 'okapi')).map((r) => r.id)).toEqual([before.id]);
|
|
337
|
+
});
|
|
338
|
+
it('a fork re-queues every attachment, and says where the bytes are not', async () => {
|
|
339
|
+
const s = await newScope();
|
|
340
|
+
const rec = await upload(s, item('i'), 'src.txt', 'text/plain', bytes('the margay source'));
|
|
341
|
+
await extract(s);
|
|
342
|
+
const fork = scopeIdSchema.parse(ulid());
|
|
343
|
+
await host.importScope(staff, { tenantId: t, scopeId: fork, vertical: 'docs' }, await host.admin.exportScope(staff, t, s));
|
|
344
|
+
// Queued by the load, not left without a state.
|
|
345
|
+
expect((await stateOf(fork, rec.id))?.status).toBe('pending');
|
|
346
|
+
await extract(fork);
|
|
347
|
+
// The fork's objects would live under its own key; the bytes stayed under the source's.
|
|
348
|
+
expect(await stateOf(fork, rec.id)).toMatchObject({
|
|
349
|
+
status: 'failed',
|
|
350
|
+
detail: expect.stringContaining('missing'),
|
|
351
|
+
});
|
|
352
|
+
expect(await search(fork, editor, 'margay')).toEqual([]);
|
|
353
|
+
// The source is untouched.
|
|
354
|
+
expect((await search(s, editor, 'margay')).map((r) => r.id)).toEqual([rec.id]);
|
|
355
|
+
});
|
|
356
|
+
});
|
|
357
|
+
});
|
|
358
|
+
}
|
|
359
|
+
//# sourceMappingURL=attachment-text-suite.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"attachment-text-suite.js","sourceRoot":"","sources":["../src/attachment-text-suite.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"capability-attachment-suite.d.ts","sourceRoot":"","sources":["../src/capability-attachment-suite.ts"],"names":[],"mappings":"AA6CA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAwB9D,wBAAgB,iCAAiC,CAC/C,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,MAAM,OAAO,CAAC,gBAAgB,CAAC,GAC3C,IAAI,
|
|
1
|
+
{"version":3,"file":"capability-attachment-suite.d.ts","sourceRoot":"","sources":["../src/capability-attachment-suite.ts"],"names":[],"mappings":"AA6CA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAwB9D,wBAAgB,iCAAiC,CAC/C,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,MAAM,OAAO,CAAC,gBAAgB,CAAC,GAC3C,IAAI,CA2TN"}
|
|
@@ -152,6 +152,31 @@ export function capabilityAttachmentContractSuite(adapterName, makeFixture) {
|
|
|
152
152
|
expect((await recordOf(minted.id)).uses).toBe(before + 1);
|
|
153
153
|
});
|
|
154
154
|
});
|
|
155
|
+
// #1575: content search through a capability is the same gate as its `open`.
|
|
156
|
+
describe('search: exactly the subtree', () => {
|
|
157
|
+
let inF;
|
|
158
|
+
let inG;
|
|
159
|
+
beforeAll(async () => {
|
|
160
|
+
const stub = await as(alice);
|
|
161
|
+
await stub.invoke('cap/link', { child: doc('d5'), parent: folder('F') });
|
|
162
|
+
await stub.invoke('cap/link', { child: doc('d6'), parent: folder('G') });
|
|
163
|
+
const mine = await host.attachments(alice, t1, s1);
|
|
164
|
+
const put = (entity, name) => mine.upload({ entity, filename: `${name}.txt`, contentType: 'text/plain', visibility: 'internal', body: bytes(`capybara memo ${name}`) });
|
|
165
|
+
inF = await put(doc('d5'), 'd5');
|
|
166
|
+
inG = await put(doc('d6'), 'd6');
|
|
167
|
+
for (let i = 0; i < 10 && (await host.runDueJobs(t1, s1, { limit: 100 })).attempted > 0; i += 1)
|
|
168
|
+
;
|
|
169
|
+
});
|
|
170
|
+
it('finds the match under the shared folder and never the one beside it — the owner sees both', async () => {
|
|
171
|
+
const minted = await share(alice, { entity: folder('F'), permissions: [CAP_READ] });
|
|
172
|
+
const surface = await filesOf(await sessionOf(minted.secret));
|
|
173
|
+
expect((await surface.search('capybara')).map((r) => r.id)).toEqual([inF.id]);
|
|
174
|
+
expect((await surface.search('capybara', { limit: 1 })).map((r) => r.id)).toEqual([inF.id]);
|
|
175
|
+
expect(await denialsOf(minted.id)).not.toContainEqual(expect.objectContaining({ operation: 'attachments.search' }));
|
|
176
|
+
const owner = await host.attachments(alice, t1, s1);
|
|
177
|
+
expect((await owner.search('capybara')).map((r) => r.id)).toEqual([inG.id, inF.id]);
|
|
178
|
+
});
|
|
179
|
+
});
|
|
155
180
|
describe('never more than the minter can read, now', () => {
|
|
156
181
|
it('taking the minter’s role away refuses the next download; giving it back allows it again', async () => {
|
|
157
182
|
const dan = principalId.parse(ulid());
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"capability-attachment-suite.js","sourceRoot":"","sources":["../src/capability-attachment-suite.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"capability-attachment-suite.js","sourceRoot":"","sources":["../src/capability-attachment-suite.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"idempotency-suite.d.ts","sourceRoot":"","sources":["../src/idempotency-suite.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"idempotency-suite.d.ts","sourceRoot":"","sources":["../src/idempotency-suite.ts"],"names":[],"mappings":"AA6CA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAU9D,wBAAgB,wBAAwB,CACtC,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,MAAM,OAAO,CAAC,gBAAgB,CAAC,GAC3C,IAAI,CAgTN"}
|