@sanoma-ai/connector-cloudflare 0.3.2 → 0.5.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/README.md +32 -21
- package/dist/connector.d.ts +3 -1
- package/dist/connector.js +26 -4
- package/dist/connector.js.map +1 -1
- package/dist/driver.js +32 -3
- package/dist/driver.js.map +1 -1
- package/dist/errors.d.ts +3 -0
- package/dist/errors.js +4 -0
- package/dist/errors.js.map +1 -0
- package/dist/fake.d.ts +14 -2
- package/dist/fake.js +60 -4
- package/dist/fake.js.map +1 -1
- package/dist/ops.d.ts +34 -5
- package/dist/ops.js +149 -69
- package/dist/ops.js.map +1 -1
- package/dist/records.js +2 -1
- package/dist/records.js.map +1 -1
- package/dist/resources.d.ts +3 -1
- package/dist/sites.d.ts +58 -0
- package/dist/sites.js +153 -0
- package/dist/sites.js.map +1 -0
- package/dist/worker.d.ts +8 -1
- package/dist/worker.js +8 -0
- package/dist/worker.js.map +1 -1
- package/package.json +4 -3
- package/worker/index.js +7 -2
- package/worker/instance.d.ts +11 -1
- package/worker/instance.js +75 -14
- package/worker/sites.js +17 -0
package/dist/fake.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fake.js","sourceRoot":"","sources":["../src/fake.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"fake.js","sourceRoot":"","sources":["../src/fake.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,YAAY,EAAe,MAAM,WAAW,CAAC;AAEtD,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAClF,OAAO,EAAE,UAAU,EAAoB,MAAM,2BAA2B,CAAC;AACzE,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAC1D,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC3D,OAAO,EACL,QAAQ,EAGR,YAAY,EACZ,MAAM,EAGN,QAAQ,GAET,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACtE,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAoB,MAAM,EAAE,MAAM,aAAa,CAAC;AA6D/E,8FAA8F;AAC9F,MAAM,YAAY,GAAG,kCAAkC,CAAC;AAExD,yIAAyI;AACzI,MAAM,cAAc,GAAG,CAAC,MAAM,EAAE,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,YAAY,CAAC,CAAC;AAExF,sHAAsH;AACtH,MAAM,QAAQ,GAAG,GAAG,CAAC;AACrB,MAAM,OAAO,GAAG,CAAC,CAAC;AAClB,8DAA8D;AAC9D,MAAM,YAAY,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;AACjC,sFAAsF;AACtF,MAAM,GAAG,GAAG,CAAC,YAAY,EAAE,YAAY,EAAE,mBAAmB,EAAE,SAAS,EAAE,gBAAgB,EAAE,kBAAkB,CAAC,CAAC;AAE/G,MAAM,IAAI,GAAG,CAAC,MAAc,EAAE,IAAY,EAAE,OAAe,EAAE,EAAE,CAC7D,IAAI,WAAW,CAAC,eAAe,OAAO,EAAE,EAAE,EAAE,SAAS,EAAE,eAAe,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAEtH,8HAA8H;AAC9H,SAAS,WAAW,CAAC,IAAY,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAe;IAC5G,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC;QACxB,MAAM,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE,sBAAsB,IAAI,uBAAuB,IAAI,EAAE,CAAC,CAAC;IACjF,CAAC;IACD,OAAO;QACL,IAAI;QACJ,IAAI;QACJ,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,EAAE,CAAC;QAClD,GAAG;QACH,GAAG,CAAC,QAAQ,KAAK,SAAS,IAAI,EAAE,QAAQ,EAAE,CAAC;QAC3C,OAAO;QACP,OAAO;KACR,CAAC;AACJ,CAAC;AAED,gEAAgE;AAChE,MAAM,WAAW,GAAG,GAAG,EAAE,CACvB,IAAI,QAAQ,CAAC,yDAAyD,EAAE;IACtE,MAAM,EAAE,GAAG;IACX,OAAO,EAAE,EAAE,cAAc,EAAE,WAAW,EAAE;CACzC,CAAC,CAAC;AAEL,0HAA0H;AAC1H,MAAM,aAAa,GAAmB,KAAK,IAAI,EAAE;IAC/C,MAAM,KAAK,GAAe,EAAE,CAAC;IAC7B,MAAM,MAAM,GAAG,YAAY,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;QACvC,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,EAAE,kBAAkB,CAAC,CAAC;QACxD,IAAI,GAAG,CAAC,QAAQ,KAAK,UAAU;YAAE,OAAO,KAAK,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAC5E,IAAI,GAAG,CAAC,QAAQ,KAAK,OAAO;YAAE,OAAO,KAAK,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;QACnE,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,IAAI,IAAI,EAAE,EAAE,CAAC,CAAC;QAC/B,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;IAC3B,CAAC,CAAC,CAAC;IACH,MAAM,IAAI,OAAO,CAAO,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,WAAW,EAAE,IAAI,CAAC,CAAC,CAAC;IACvE,MAAM,CAAC,KAAK,EAAE,CAAC;IACf,OAAO;QACL,GAAG,EAAE,oBAAqB,MAAM,CAAC,OAAO,EAAkB,CAAC,IAAI,EAAE;QACjE,KAAK;QACL,IAAI,EAAE,GAAG,EAAE,CAAC,IAAI,OAAO,CAAO,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC;KACpE,CAAC;AACJ,CAAC,CAAC;AAEF;;;;;;GAMG;AACH,SAAS,UAAU,CACjB,KAAqB,EACrB,MAAoC,EACpC,MAA6C,EAC7C,OAAwB;IAExB,MAAM,OAAO,GAAG,IAAI,GAAG,EAAmB,CAAC;IAC3C,IAAI,OAES,CAAC;IACd,IAAI,KAAyD,CAAC;IAC9D,IAAI,OAAkC,CAAC;IACvC,IAAI,YAAgC,CAAC;IACrC,IAAI,KAAiC,CAAC;IACtC,IAAI,IAAI,GAAG,CAAC,CAAC;IACb,IAAI,QAA8B,CAAC;IAEnC,MAAM,OAAO,GAAG,KAAK,IAAI,EAAE;QACzB,YAAY,CAAC,KAAK,CAAC,CAAC;QACpB,MAAM,GAAG,GAAG,OAAO,CAAC;QACpB,OAAO,GAAG,SAAS,CAAC;QACpB,MAAM,GAAG,EAAE,OAAO,CAAC,IAAI,CACrB,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,EAC3B,GAAG,EAAE,CAAC,SAAS,CAChB,CAAC;IACJ,CAAC,CAAC;IACF,yGAAyG;IACzG,MAAM,MAAM,GAAG,KAAK,EAAK,IAAsB,EAAc,EAAE;QAC7D,IAAI,EAAE,CAAC;QACP,YAAY,CAAC,KAAK,CAAC,CAAC;QACpB,IAAI,CAAC;YACH,OAAO,MAAM,IAAI,EAAE,CAAC;QACtB,CAAC;gBAAS,CAAC;YACT,IAAI,EAAE,CAAC;YACP,IAAI,IAAI,KAAK,CAAC,IAAI,OAAO,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;gBACxD,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,KAAK,OAAO,EAAE,EAAE,YAAY,CAAC,CAAC,KAAK,EAAE,CAAC;YACjE,CAAC;QACH,CAAC;IACH,CAAC,CAAC;IACF,gGAAgG;IAChG,MAAM,IAAI,GAAG,KAAK,EAAE,KAAgC,EAAE,EAAE;QACtD,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,KAAK,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC;YAC7C,gFAAgF;YAChF,KAAK,GAAG,SAAS,CAAC;YAClB,IAAI,CAAC;gBACH,MAAM,MAAM,CAAC,GAAG,EAAE,CAAC,QAAS,CAAC,KAAK,EAAE,CAAC,CAAC;gBACtC,OAAO;YACT,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,OAAO,CAAC,IAAI,CAAC,oCAAoC,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gBACtE,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,IAAI,OAAO;oBAAE,OAAO;gBACpD,KAAK,GAAG,KAAK,CAAC;gBACd,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC;YAChE,CAAC;QACH,CAAC;IACH,CAAC,CAAC;IACF,MAAM,QAAQ,GAAG,CAAC,KAAgC,EAAE,EAAE;QACpD,YAAY,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAC1B,MAAM,GAAG,GAAG,KAAK,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAClC,KAAK,CAAC,KAAK,GAAG,UAAU,CACtB,GAAG,EAAE;YACH,IAAI,KAAK,KAAK,KAAK;gBAAE,OAAO;YAC5B,IAAI,KAAK,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE;gBAAE,OAAO,QAAQ,CAAC,KAAK,CAAC,CAAC;YAClD,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,OAAO,GAAG,SAAS,CAAC,CAAC,CAAC;QAC7D,CAAC,EACD,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,YAAY,CAAC,CACzC,CAAC,KAAK,EAAE,CAAC;IACZ,CAAC,CAAC;IACF,MAAM,MAAM,GAAG,GAAG,EAAE;QAClB,YAAY,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QAC3B,KAAK,GAAG,SAAS,CAAC;IACpB,CAAC,CAAC;IAEF,MAAM,GAAG,GAAgB;QACvB,SAAS,EAAE;YACT,IAAI,OAAO;gBACT,OAAO,OAAO,KAAK,SAAS,CAAC;YAC/B,CAAC;YACD,IAAI,MAAM;gBACR,OAAO,EAAE,GAAG,MAAM,EAAE,EAAE,CAAC;YACzB,CAAC;YACD,KAAK,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE;gBAC1C,IAAI,OAAO;oBAAE,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;gBACjE,IAAI,CAAC,KAAK,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;oBACvD,MAAM,IAAI,SAAS,CAAC,YAAY,KAAK,IAAI,QAAQ,wCAAwC,CAAC,CAAC;gBAC7F,CAAC;gBACD,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,IAAI,CAAC;oBAAE,MAAM,IAAI,SAAS,CAAC,oBAAoB,IAAI,EAAE,CAAC,CAAC;gBACpF,MAAM,EAAE,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;gBACzB,IAAI,EAAE,KAAK,SAAS;oBAAE,MAAM,IAAI,KAAK,CAAC,0DAA0D,CAAC,CAAC;gBAClG,MAAM,OAAO,GAAG,KAAK,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,IAAI,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE;oBACvF,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBACnB,OAAO,IAAI,CAAC;gBACd,CAAC,CAAC,CAAC;gBACH,MAAM,IAAI,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,GAAG,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC/E,OAAO,GAAG,IAAI,CAAC;gBACf,6EAA6E;gBAC7E,OAAO,CAAC,KAAK,CAAC,GAAG,EAAE;oBACjB,IAAI,OAAO,KAAK,IAAI;wBAAE,OAAO,GAAG,SAAS,CAAC;gBAC5C,CAAC,CAAC,CAAC;YACL,CAAC;YACD,OAAO,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;YAC/F,0FAA0F;YAC1F,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,OAAO,CAAO,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;YACtG,OAAO;YACP,UAAU,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;gBACrB,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI;oBACrB,IAAI,CAAC,OAAO;wBAAE,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;oBAC9D,IAAI,IAAI,KAAK,OAAO,CAAC,IAAI;wBAAE,MAAM,IAAI,KAAK,CAAC,2BAA2B,IAAI,mBAAmB,CAAC,CAAC;oBAC/F,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC;oBACtC,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;oBACzC,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;oBAClD,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;oBAC7C,KAAK,MAAM,IAAI,IAAI,GAAG;wBAAE,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;oBAC7C,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,IAAI,GAAG,CAAC,QAAQ,GAAG,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,EAAE;wBAClE,MAAM,EAAE,OAAO,CAAC,MAAM;wBACtB,OAAO;wBACP,IAAI,EAAE,OAAO,CAAC,IAAI;wBAClB,QAAQ,EAAE,QAAQ;wBAClB,MAAM,EAAE,OAAO,CAAC,MAAM;wBACtB,GAAG,CAAC,OAAO,CAAC,IAAI,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;qBACzB,CAAC,CAAC;oBAClB,MAAM,IAAI,GAAG,IAAI,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;oBACzC,KAAK,MAAM,IAAI,IAAI,GAAG;wBAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;oBAC1C,OAAO,IAAI,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,EAAE,MAAM,CAAC,UAAU,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;gBAC5G,CAAC;aACF,CAAC;YACF,KAAK,CAAC,oBAAoB,CAAC,EAAE;gBAC3B,YAAY,GAAG,EAAE,CAAC;YACpB,CAAC;SACF;QACD,OAAO,EAAE;YACP,GAAG,EAAE,KAAK,EAAK,GAAW,EAAE,EAAE,CAAC,eAAe,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAkB;YACjF,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,eAAe,CAAC,KAAK,CAAC,CAAC;YACxE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC;YAC1C,QAAQ,EAAE,KAAK,IAAI,EAAE,CAAC,KAAK,EAAE,EAAE,IAAI,IAAI;YACvC,KAAK,CAAC,QAAQ,CAAC,EAAE;gBACf,MAAM,EAAE,CAAC;gBACT,KAAK,GAAG,EAAE,EAAE,EAAE,CAAC;gBACf,QAAQ,CAAC,KAAK,CAAC,CAAC;YAClB,CAAC;YACD,WAAW,EAAE,KAAK,IAAI,EAAE,CAAC,MAAM,EAAE;SAClC;QACD,qBAAqB,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE;KACpC,CAAC;IAEF,OAAO;QACL,GAAG;QACH,6EAA6E;QAC7E,OAAO,CAAC,IAAc;YACpB,QAAQ,GAAG,IAAI,CAAC;QAClB,CAAC;QACD,KAAK,EAAE,CAAC,OAAgB,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,QAAS,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACnE,QAAQ,EAAE,GAAG,EAAE,CAAC,QAAS,CAAC,QAAQ,EAAE;QACpC,oGAAoG;QACpG,IAAI,EAAE,OAAO;QACb,qEAAqE;QACrE,KAAK,CAAC,IAAI;YACR,IAAI,KAAK,EAAE,CAAC;gBACV,YAAY,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;gBAC1B,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,OAAO,GAAG,SAAS,CAAC,CAAC,CAAC;YAC7D,CAAC;YACD,MAAM,OAAO,CAAC;QAChB,CAAC;QACD,wFAAwF;QACxF,KAAK,CAAC,MAAM;YACV,MAAM,EAAE,CAAC;YACT,OAAO,CAAC,KAAK,EAAE,CAAC;YAChB,MAAM,OAAO,EAAE,CAAC;QAClB,CAAC;KACF,CAAC;AACJ,CAAC;AAID;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,UAAU,cAAc,CAAC,OAAO,GAA0B,EAAE;IAChE,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,aAAa,CAAC;IAC7C,MAAM,OAAO,GAAG,IAAI,GAAG,EAA2C,CAAC;IACnE,MAAM,OAAO,GAAG,IAAI,GAAG,EAAsB,CAAC;IAC9C,kGAAkG;IAClG,MAAM,IAAI,GAAG,IAAI,GAAG,EAAmC,CAAC;IACxD,MAAM,OAAO,GAAoB,EAAE,CAAC;IACpC,+GAA+G;IAC/G,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAsF,CAAC;IAC/G,sGAAsG;IACtG,MAAM,SAAS,GAAG,IAAI,GAAG,EAAgE,CAAC;IAE1F,6EAA6E;IAC7E,MAAM,QAAQ,GAAG,KAAK,EAAE,KAA0B,EAAE,MAAc,EAAE,OAAgB,EAAqB,EAAE;QACzG,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAC7B,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,SAAS;YAAE,OAAO,WAAW,EAAE,CAAC;QACpE,OAAO,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;IACpC,CAAC,CAAC;IACF,MAAM,QAAQ,GAAG,CAAC,GAAW,EAAE,EAAE,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAEnG,+HAA+H;IAC/H,MAAM,KAAK,GAAG,KAAK,EAAE,KAA0B,EAAE,MAAc,EAAE,EAAE;QACjE,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAClC,IAAI,KAAK;YAAE,OAAO,KAAK,CAAC,GAAG,CAAC;QAC5B,MAAM,MAAM,GAAG,YAAY,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;YACvC,KAAK,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,WAAW,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,CAC9D,CAAC,MAAM,EAAE,EAAE,CAAC,gBAAgB,CAAC,GAAG,EAAE,MAAM,CAAC,EACzC,CAAC,GAAY,EAAE,EAAE;gBACf,IAAI,GAAG,CAAC,WAAW;oBAAE,OAAO,KAAK,GAAG,CAAC,OAAO,EAAE,CAAC;gBAC/C,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,cAAc,EAAE,YAAY,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YACrF,CAAC,CACF,CAAC;QACJ,CAAC,CAAC,CAAC;QACH,MAAM,IAAI,OAAO,CAAO,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,WAAW,EAAE,IAAI,CAAC,CAAC,CAAC;QACvE,iEAAiE;QACjE,MAAM,CAAC,KAAK,EAAE,CAAC;QACf,MAAM,GAAG,GAAG,oBAAqB,MAAM,CAAC,OAAO,EAAkB,CAAC,IAAI,EAAE,CAAC;QACzE,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;QACrC,OAAO,GAAG,CAAC;IACb,CAAC,CAAC;IAEF,MAAM,GAAG,GAAG,CAAC,KAA0B,EAAiB,EAAE;QACxD,MAAM,KAAK,GAAG,CAAC,MAAc,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC;QACnG,oEAAoE;QACpE,MAAM,MAAM,GAAG,GAAG,EAAE,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;QAC3D,+FAA+F;QAC/F,MAAM,MAAM,GAAG,CAAC,MAAc,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,KAAK,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QACpG,MAAM,SAAS,GAAG,CAAC,MAAc,EAAE,EAAE;YACnC,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;YAC5B,IAAI,CAAC,IAAI;gBACP,MAAM,IAAI,CACR,GAAG,EACH,IAAI,EACJ,SAAS,MAAM,+BAA+B,MAAM,8CAA8C,CACnG,CAAC;YACJ,OAAO,IAAI,CAAC;QACd,CAAC,CAAC;QACF,MAAM,SAAS,GAAG,CAAC,MAAc,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC;QACzE,OAAO;YACL,SAAS,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,CAAC;YAC3C,KAAK,CAAC,QAAQ,CAAC,MAAM;gBACnB,OAAO,eAAe,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,QAAQ,CAAC,CAAC;YAC1D,CAAC;YACD,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,EAAE;gBACrF,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,WAAW,CAAC;oBAAE,MAAM,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,mBAAmB,WAAW,EAAE,CAAC,CAAC;gBAC3G,MAAM,QAAQ,GAAG,MAAM,IAAI,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gBACrD,IAAI,MAAM,IAAI,QAAQ,EAAE,MAAM,KAAK,MAAM,EAAE,CAAC;oBAC1C,MAAM,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,yEAAyE,CAAC,CAAC;gBACpG,CAAC;gBACD,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,KAAK,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;oBAClE,MAAM,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,8DAA8D,CAAC,CAAC;gBACzF,CAAC;gBACD,MAAM,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,KAAK,YAAY,CAAC,CAAC;gBACnE,IAAI,CAAC,IAAI;oBAAE,MAAM,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,GAAG,YAAY,4DAA4D,CAAC,CAAC;gBAC/G,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,aAAa,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC,CAAC;gBACnG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,IAAI,QAAQ,CAAC,MAAM,EAAE,CAAC;oBACxD,MAAM,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,qDAAqD,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,MAAM,EAAE,CAAC,CAAC;gBAC/G,CAAC;gBACD,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,SAAS,CAAC;gBAClD,IAAI,CAAC,KAAK,IAAI,CAAC,UAAU,EAAE,kBAAkB,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC;oBACrE,MAAM,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,mCAAmC,YAAY,kCAAkC,CAAC,CAAC;gBAC5G,CAAC;gBACD,MAAM,GAAG,GAA4B,EAAE,CAAC;gBACxC,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;oBAC/B,IAAI,OAAO,CAAC,IAAI,KAAK,0BAA0B,EAAE,CAAC;wBAChD,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG;4BAClB,SAAS,EAAE,GAAG,EAAE,CAAC,CAAC;gCAChB,KAAK,EAAE,CAAC,OAAgB,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAE,CAAC,KAAK,CAAC,OAAO,CAAC;gCAChE,QAAQ,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAE,CAAC,QAAQ,EAAE;6BAChD,CAAC;yBACH,CAAC;oBACJ,CAAC;yBAAM,IAAI,OAAO,CAAC,IAAI,KAAK,QAAQ;wBAAE,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;gBACzE,CAAC;gBACD,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;gBACtB,mFAAmF;gBACnF,MAAM,YAAY,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,EAAE,YAAY,IAAI,MAAM,EAAE,CAAC;gBAC3G,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG;oBACtB,QAAQ,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,EAAE,EAAE,CACjD,IAAI,KAAK,aAAa;wBACpB,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE;wBAChB,CAAC,CAAC,IAAI,KAAK,0BAA0B;4BACnC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,YAAY,EAAE;4BAC9B,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,CAAC,MAAM,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,CACjE;oBACD,SAAS,EAAE,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,SAAS,IAAI,KAAK;oBACpD,MAAM,EAAE,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE;oBAC1B,WAAW;oBACX,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;oBACnC,GAAG,CAAC,QAAQ,IAAI,EAAE,MAAM,EAAE,EAAE,GAAG,QAAQ,CAAC,QAAQ,EAAE,EAAE,CAAC;iBACtD,CAAC;gBACF,IAAI,MAAM;oBAAE,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gBACzC,MAAM,MAAM,GACV,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC;oBACnB,UAAU,CACR,KAAK,EACL,GAAG,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,MAAM,IAAI,EAAE,EACzC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,EAC1D,OAAO,CACR,CAAC;gBACJ,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;gBAC5B,MAAM,CAAC,OAAO,CAAC,IAAI,QAAQ,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;YAChD,CAAC;YACD,KAAK,CAAC,eAAe,CAAC,MAAM;gBAC1B,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;gBACpC,IAAI,CAAC,KAAK;oBAAE,MAAM,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,mBAAmB,MAAM,+CAA+C,CAAC,CAAC;gBAC7G,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC;YACzB,CAAC;YACD,KAAK,CAAC,YAAY,CAAC,MAAM;gBACvB,OAAO,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;gBAC7B,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;gBACpB,MAAM,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;gBACpC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YACzB,CAAC;YACD,KAAK,CAAC,WAAW,CAAC,IAAI;gBACpB,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC;gBAC1B,OAAO,KAAK,IAAI,EAAE,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC;YACnC,CAAC;YACD,KAAK,CAAC,iBAAiB,CAAC,IAAI,EAAE,WAAW;gBACvC,MAAM,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,EAAE,YAAY,CAAC;gBAC1F,IAAI,CAAC,SAAS,IAAI,SAAS,KAAK,WAAW;oBACzC,MAAM,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE,+BAA+B,WAAW,EAAE,CAAC,CAAC;gBACtE,IAAI,KAAK,CAAC,IAAI,CAAC;oBAAE,MAAM,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE,wBAAwB,IAAI,SAAS,CAAC,CAAC;gBAC9E,MAAM,EAAE,GAAG,2BAA2B,MAAM,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,CAAC;gBAC9E,KAAK,CAAC,YAAY,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;gBACtC,OAAO,EAAE,EAAE,EAAE,CAAC;YAChB,CAAC;YACD,OAAO,EAAE,YAAY;YACrB,KAAK,CAAC,SAAS,CAAC,KAAK;gBACnB,MAAM,MAAM,GAAG,UAAU,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC5E,MAAM,MAAM,GAAG,QAAQ,CAAC,YAAY,CAAC,KAAK,EAAE,YAAY,CAAC,EAAE,MAAM,CAAC,CAAC;gBACnE,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC;gBAC7B,OAAO,MAAM,CAAC;YAChB,CAAC;YACD,KAAK,CAAC,YAAY,CAAC,KAAK;gBACtB,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,YAAY,CAAC,EAAE,CAAC;oBACxC,MAAM,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE,GAAG,KAAK,oDAAoD,CAAC,CAAC;gBACtF,CAAC;gBACD,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;YAC7B,CAAC;YACD,KAAK,CAAC,iBAAiB,CAAC,EAAE;gBACxB,MAAM,KAAK,GAAG,KAAK,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;gBACrC,OAAO,KAAK,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;gBAC9B,IAAI,KAAK;oBAAE,MAAM,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC;YACnD,CAAC;YACD,KAAK,CAAC,IAAI,CAAC,IAAI;gBACb,IAAI,OAAO,CAAC,KAAK,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC;oBAAE,OAAO,SAAS,CAAC;gBACrE,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,MAAM,EAAE,CAAC;gBAC/B,OAAO,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAC3B,CAAC;YACD,KAAK,CAAC,OAAO,CAAC,MAAM;gBAClB,OAAO,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC;qBACjC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC;qBACvC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC;YACrD,CAAC;YACD,KAAK,CAAC,YAAY,CAAC,MAAM,EAAE,QAAQ,EAAE,OAAO;gBAC1C,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;oBACxB,MAAM,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,8DAA8D,CAAC,CAAC;gBACzF,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;gBAC7B,IAAI,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,EAAE,CAAC;oBACrC,MAAM,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,oBAAoB,QAAQ,uBAAuB,OAAO,EAAE,CAAC,CAAC;gBACxF,CAAC;gBACD,MAAM,EAAE,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,MAAM,EAAE,CAAC;gBACnG,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;YAC7D,CAAC;YACD,KAAK,CAAC,YAAY,CAAC,EAAE;gBACnB,OAAO,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YAC3B,CAAC;YACD,KAAK,CAAC,UAAU,CAAC,MAAM,EAAE,OAAO;gBAC9B,sDAAsD;gBACtD,MAAM,KAAK,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;gBACpC,OAAO,eAAe,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,EAAE,WAAW,EAAE,KAAK,KAAK,CAAC,CAAC,CAAC;YAC9F,CAAC;YACD,KAAK,CAAC,YAAY,CAAC,MAAM,EAAE,IAAI;gBAC7B,OAAO,eAAe,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC;YAC3E,CAAC;YACD,KAAK,CAAC,QAAQ,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE;gBAChD,MAAM,IAAI,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC;gBAC/B,8EAA8E;gBAC9E,MAAM,IAAI,GAAG,eAAe,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;gBACpD,MAAM,EAAE,GAAG,CAAC,EAAU,EAAE,EAAE;oBACxB,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;oBACjD,IAAI,KAAK,GAAG,CAAC;wBAAE,MAAM,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,6BAA6B,EAAE,kBAAkB,CAAC,CAAC;oBACzF,OAAO,KAAK,CAAC;gBACf,CAAC,CAAC;gBACF,KAAK,MAAM,EAAE,EAAE,EAAE,IAAI,OAAO;oBAAE,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;gBACrD,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,GAAG,KAAK,EAAE,EAAE,EAAE;oBAC/C,MAAM,MAAM,GAAG,EAAE,EAAE,EAAE,GAAG,WAAW,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC;oBACnD,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,MAAM,CAAC;oBACtB,OAAO,MAAM,CAAC;gBAChB,CAAC,CAAC,CAAC;gBACH,MAAM,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;oBACjC,MAAM,MAAM,GAAG,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,GAAG,WAAW,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC;oBAC7D,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;oBAClB,OAAO,MAAM,CAAC;gBAChB,CAAC,CAAC,CAAC;gBACH,KAAK,MAAM,MAAM,IAAI,CAAC,GAAG,OAAO,EAAE,GAAG,MAAM,CAAC,EAAE,CAAC;oBAC7C,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,MAAM,CAAC,EAAE,IAAI,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC;oBAChF,IACE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,OAAO,IAAI,CAAC,CAAC,QAAQ,KAAK,MAAM,CAAC,QAAQ,CAAC,EAC5G,CAAC;wBACD,MAAM,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,wDAAwD,CAAC,CAAC;oBACnF,CAAC;oBACD,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,OAAO,IAAI,MAAM,CAAC,IAAI,KAAK,OAAO,CAAC,EAAE,CAAC;wBACtE,MAAM,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,+EAA+E,CAAC,CAAC;oBAC1G,CAAC;gBACH,CAAC;gBACD,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;gBACvB,OAAO,eAAe,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;YAC9D,CAAC;YACD,KAAK,CAAC,aAAa,CAAC,MAAM,EAAE,QAAQ;gBAClC,MAAM,GAAG,GAAG,WAAW,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC;gBACrC,sDAAsD;gBACtD,KAAK,CAAC,MAAM,KAAK,EAAE,CAAC;gBACpB,MAAM,MAAM,GAAG,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;gBACpG,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;gBACzF,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;oBAClB,SAAS,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC;oBACjD,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;gBAC9B,CAAC;gBACD,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC;gBACzD,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC;YAC1C,CAAC;YACD,KAAK,CAAC,YAAY,CAAC,GAAG,EAAE,KAAK;gBAC3B,MAAM,OAAO,GAAG,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBAClC,IAAI,CAAC,OAAO;oBAAE,MAAM,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,4DAA4D,CAAC,CAAC;gBACnG,KAAK,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,KAAK,EAAE,CAAC;oBAC1C,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC;wBAAE,MAAM,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,0BAA0B,IAAI,mBAAmB,CAAC,CAAC;oBAC7G,CAAC,KAAK,CAAC,MAAM,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,WAAW,CAAC;gBAC5C,CAAC;gBACD,IAAI,OAAO,CAAC,OAAO,CAAC,IAAI;oBAAE,OAAO,SAAS,CAAC;gBAC3C,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gBACrB,MAAM,UAAU,GAAG,cAAc,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC;gBAC/C,SAAS,CAAC,GAAG,CAAC,UAAU,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;gBAClF,OAAO,UAAU,CAAC;YACpB,CAAC;YACD,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI;gBAClB,MAAM,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;gBAC7B,IAAI,CAAC,MAAM;oBAAE,MAAM,IAAI,SAAS,CAAC,oCAAoC,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;gBAC5F,OAAO,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC;YACzD,CAAC;SACF,CAAC;IACJ,CAAC,CAAC;IAEF,MAAM,IAAI,GAAG,UAAU,CACrB,aAAa,EACb;QACE,OAAO,EAAE,GAAwB,EAAE,CAAC,CAAC;YACnC,GAAG,EAAE,CAAC;YACN,OAAO,EAAE,EAAE;YACX,MAAM,EAAE,EAAE;YACV,YAAY,EAAE,EAAE;YAChB,MAAM,EAAE,EAAE;YACV,KAAK,EAAE,EAAE;YACT,OAAO,EAAE,EAAE;YACX,GAAG,EAAE,EAAE;SACR,CAAC;QACF,GAAG,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YACf,SAAS,EAAE,YAAY,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;YACjF,KAAK,EAAE,QAAQ,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YACjC,OAAO,EAAE,UAAU,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;SACtC,CAAC;KACH,EACD,OAAO,CACR,CAAC;IACF,MAAM,KAAK,GAAG,CAAC,IAAa,EAAE,EAAE,CAC9B,CAAC,GAAG,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,IAAI,KAAK,SAAS,IAAI,MAAM,KAAK,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;IACvG,MAAM,KAAK,GAAG,KAAK,IAAI,EAAE;QACvB,KAAK,MAAM,MAAM,IAAI,OAAO,CAAC,MAAM,EAAE;YAAE,MAAM,MAAM,CAAC,MAAM,EAAE,CAAC;QAC7D,OAAO,CAAC,KAAK,EAAE,CAAC;QAChB,IAAI,CAAC,KAAK,EAAE,CAAC;QACb,QAAQ,CAAC,KAAK,EAAE,CAAC;QACjB,SAAS,CAAC,KAAK,EAAE,CAAC;QAClB,KAAK,MAAM,EAAE,MAAM,EAAE,IAAI,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;YAC1C,MAAM,CAAC,mBAAmB,EAAE,CAAC;YAC7B,MAAM,IAAI,OAAO,CAAO,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QAChE,CAAC;QACD,OAAO,CAAC,KAAK,EAAE,CAAC;IAClB,CAAC,CAAC;IACF,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC;IACvB,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE;QACzB,8HAA8H;QAC9H,KAAK,CAAC,IAAI,CAAC,IAAa;YACtB,KAAK,MAAM,MAAM,IAAI,KAAK,CAAC,IAAI,CAAC;gBAAE,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;QACxD,CAAC;QACD,+EAA+E;QAC/E,KAAK,CAAC,IAAI;YACR,MAAM,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QAC5D,CAAC;QACD,sEAAsE;QACtE,KAAK,EAAE,GAAe,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;QAC9D,kEAAkE;QAClE,KAAK;QACL,8CAA8C;QAC9C,KAAK,CAAC,KAAK;YACT,MAAM,KAAK,EAAE,CAAC;YACd,KAAK,EAAE,CAAC;QACV,CAAC;KACF,CAAC,CAAC;AACL,CAAC"}
|
package/dist/ops.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { type CallContext,
|
|
1
|
+
import { type CallContext, type PlanAction, type WakeupRegistration } from "@sanoma-ai/workflows";
|
|
2
2
|
import { type WorkerModule } from "./worker.ts";
|
|
3
3
|
/** The Workers runtime the Worker is written for. */
|
|
4
4
|
export declare const COMPATIBILITY_DATE = "2026-10-01";
|
|
@@ -16,6 +16,9 @@ export type Binding = {
|
|
|
16
16
|
type: "plain_text" | "secret_text";
|
|
17
17
|
name: string;
|
|
18
18
|
text: string;
|
|
19
|
+
} | {
|
|
20
|
+
type: "assets";
|
|
21
|
+
name: string;
|
|
19
22
|
};
|
|
20
23
|
/** A binding as a read shows it: a secret's name, never its text. */
|
|
21
24
|
export interface ReadBinding {
|
|
@@ -45,6 +48,11 @@ export interface Upload {
|
|
|
45
48
|
observability: {
|
|
46
49
|
enabled: boolean;
|
|
47
50
|
};
|
|
51
|
+
/** The assets an upload session put in (its completion `jwt`), and how the Worker serves them (`sites.ts`). */
|
|
52
|
+
assets?: {
|
|
53
|
+
jwt: string;
|
|
54
|
+
config: Record<string, unknown>;
|
|
55
|
+
};
|
|
48
56
|
modules: WorkerModule[];
|
|
49
57
|
}
|
|
50
58
|
/** A container application, as the fields read here. */
|
|
@@ -153,11 +161,29 @@ export interface CloudflareApi {
|
|
|
153
161
|
patches: ZoneRecord[];
|
|
154
162
|
posts: ZoneRecord[];
|
|
155
163
|
}>;
|
|
164
|
+
/**
|
|
165
|
+
* Opens an upload session for the assets of the Worker's next upload
|
|
166
|
+
* (`POST …/scripts/{name}/assets-upload-session`): the buckets of hashes Cloudflare lacks, each
|
|
167
|
+
* one request of `uploadAssets`, and the session's `jwt` (with no buckets, what the upload redeems).
|
|
168
|
+
*/
|
|
169
|
+
assetsSession(script: string, manifest: Record<string, {
|
|
170
|
+
hash: string;
|
|
171
|
+
size: number;
|
|
172
|
+
}>): Promise<{
|
|
173
|
+
jwt: string;
|
|
174
|
+
buckets: string[][];
|
|
175
|
+
}>;
|
|
176
|
+
/** Uploads one bucket with the session's `jwt` (`POST …/workers/assets/upload?base64=true`): the completion jwt once the last is in. */
|
|
177
|
+
uploadAssets(jwt: string, files: AssetFile[]): Promise<string | undefined>;
|
|
156
178
|
/** A request to a Worker: its answer, or a throw when there is none. */
|
|
157
179
|
send(url: string, init: RequestInit): Promise<Response>;
|
|
158
180
|
}
|
|
159
|
-
/**
|
|
160
|
-
export
|
|
181
|
+
/** One asset as a bucket uploads it: its hash, its content in base64, and the type it is served with. */
|
|
182
|
+
export interface AssetFile {
|
|
183
|
+
hash: string;
|
|
184
|
+
base64: string;
|
|
185
|
+
contentType: string;
|
|
186
|
+
}
|
|
161
187
|
/** The company's Worker, named after it. */
|
|
162
188
|
export declare const scriptOf: (name: string) => string;
|
|
163
189
|
/** The zone a hostname is looked up in: its last two labels (`www.acme.example` → `acme.example`). */
|
|
@@ -172,7 +198,9 @@ type ContainerState = {
|
|
|
172
198
|
configurationRevision?: string;
|
|
173
199
|
port: number;
|
|
174
200
|
domains?: Record<string, string>;
|
|
201
|
+
hostname?: string;
|
|
175
202
|
url: string;
|
|
203
|
+
worker_url: string;
|
|
176
204
|
healthy: boolean;
|
|
177
205
|
};
|
|
178
206
|
/** What a plan of a change finds, and the state it planned from. */
|
|
@@ -208,7 +236,8 @@ export interface ContainerOptions {
|
|
|
208
236
|
* uploaded with the declared bindings and that image (the migration on its first upload), its
|
|
209
237
|
* workers.dev URL turned on, the application made when there is none, and then a wait until the
|
|
210
238
|
* Worker answers at the new revision, which starts the container. A new image is a new upload:
|
|
211
|
-
* the object destroys a container started at another and starts it again.
|
|
239
|
+
* the object destroys a container started at another and starts it again. With domains and the
|
|
240
|
+
* instance token, the public sites the container built go on the Worker last (`serveSites`).
|
|
212
241
|
*/
|
|
213
242
|
export declare function containerOps(api: () => CloudflareApi, { startTimeoutMs, pollMs }: ContainerOptions): {
|
|
214
243
|
import: ({ id }: {
|
|
@@ -233,7 +262,7 @@ export declare function containerOps(api: () => CloudflareApi, { startTimeoutMs,
|
|
|
233
262
|
id: string;
|
|
234
263
|
gone: boolean;
|
|
235
264
|
}>;
|
|
236
|
-
plan: (
|
|
265
|
+
plan: (input: {
|
|
237
266
|
id?: string;
|
|
238
267
|
desired?: Record<string, unknown>;
|
|
239
268
|
}) => Promise<Planned>;
|
package/dist/ops.js
CHANGED
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
import { setTimeout as delay } from "node:timers/promises";
|
|
2
2
|
import { DriverError, errorMessage, HOST_URL, isSecret, resolveSecrets, retryableStatus, WAKE_PATH, } from "@sanoma-ai/workflows";
|
|
3
|
-
import { domainsOf, domainsText } from "@sanoma-ai/workflows/shared";
|
|
3
|
+
import { domainsOf, domainsText, hostnameUrl, siteAtHostname } from "@sanoma-ai/workflows/shared";
|
|
4
4
|
import { instanceUrl, mintInstanceToken, WAKEUP_TOKEN } from "@sanoma-ai/workflows/wakeup-service";
|
|
5
5
|
import { alarm, container } from "./connector.js";
|
|
6
|
+
import { refused } from "./errors.js";
|
|
6
7
|
import { accountPinned } from "./registry.js";
|
|
8
|
+
import { serveSites, SITES_PENDING } from "./sites.js";
|
|
7
9
|
import { HEALTH_PATH, IMAGE, MAIN_MODULE, NAMESPACE, OBJECT_CLASS, workerModules, } from "./worker.js";
|
|
8
10
|
// Cloudflare as the operations use it (`CloudflareApi`), and the container's and the alarm's
|
|
9
11
|
// operations over it: the driver's calls its API with the SDK and the Worker over HTTP, the
|
|
@@ -24,25 +26,47 @@ const TEXT = {
|
|
|
24
26
|
image: "SANOMA_IMAGE",
|
|
25
27
|
port: "PORT",
|
|
26
28
|
domains: "SANOMA_DOMAINS",
|
|
29
|
+
/** The app's own custom domain, when declared: the state's `url` is then `https://<hostname>`. */
|
|
30
|
+
hostname: "SANOMA_HOSTNAME",
|
|
27
31
|
url: HOST_URL,
|
|
32
|
+
/** Set while the public sites' upload is still to be made (`sites.ts`). */
|
|
33
|
+
sitesPending: SITES_PENDING,
|
|
28
34
|
};
|
|
29
35
|
/** Names a secret may not take: the Worker's own bindings. */
|
|
30
36
|
const RESERVED = new Set([NAMESPACE, ...Object.values(TEXT)]);
|
|
31
37
|
/** Whether a Worker's bindings are Sanoma's: its own object's namespace among them. */
|
|
32
38
|
const isOurs = (bindings) => bindings.some((b) => b.type === "durable_object_namespace" && b.name === NAMESPACE);
|
|
33
|
-
/** The driver's own refusal, before or instead of a call: never retried. */
|
|
34
|
-
export const refused = (message, vendorCode) => new DriverError(`cloudflare: ${message}`, { retryable: false, ...(vendorCode && { vendorCode }) });
|
|
35
39
|
/** The company's Worker, named after it. */
|
|
36
40
|
export const scriptOf = (name) => `sanoma-${name}`;
|
|
37
41
|
/** The zone a hostname is looked up in: its last two labels (`www.acme.example` → `acme.example`). */
|
|
38
42
|
export const apexOf = (hostname) => hostname.split(".").slice(-2).join(".");
|
|
43
|
+
/** The Worker's plain-text bindings, by name. */
|
|
44
|
+
const textOf = (bindings) => new Map((bindings ?? []).filter((b) => b.type === "plain_text").map((b) => [b.name, b.text ?? ""]));
|
|
39
45
|
/**
|
|
40
|
-
* The hostnames the Worker's bindings say it was declared to serve (`SANOMA_DOMAINS`
|
|
41
|
-
* domains that are Sanoma's to detach. One attached by hand and
|
|
46
|
+
* The hostnames the Worker's bindings say it was declared to serve (`SANOMA_DOMAINS` and
|
|
47
|
+
* `SANOMA_HOSTNAME`): the custom domains that are Sanoma's to detach. One attached by hand and
|
|
48
|
+
* never declared is left alone.
|
|
42
49
|
*/
|
|
43
50
|
const declaredBefore = (bindings) => {
|
|
44
|
-
const text = bindings
|
|
45
|
-
|
|
51
|
+
const text = textOf(bindings);
|
|
52
|
+
const domains = text.get(TEXT.domains);
|
|
53
|
+
const hostname = text.get(TEXT.hostname);
|
|
54
|
+
return new Set([...(domains ? Object.values(domainsOf(domains)) : []), ...(hostname ? [hostname] : [])]);
|
|
55
|
+
};
|
|
56
|
+
/** Where the app answers: its declared hostname, else the Worker's workers.dev URL. */
|
|
57
|
+
const servedAt = (hostname, workerUrl) => hostname ? hostnameUrl(hostname) : workerUrl;
|
|
58
|
+
/**
|
|
59
|
+
* Refuses a hostname that is also a site's domain, before any request: the app and the site would
|
|
60
|
+
* share it. `describeConfig` reports it at a data file's declaration; this guards a workflow's own
|
|
61
|
+
* call, which no data file declares.
|
|
62
|
+
*/
|
|
63
|
+
const checkHostname = (name, hostname, domains) => {
|
|
64
|
+
if (typeof hostname !== "string")
|
|
65
|
+
return;
|
|
66
|
+
const site = siteAtHostname(hostname, (domains ?? {}));
|
|
67
|
+
if (site) {
|
|
68
|
+
throw refused(`container ${String(name)}: hostname ${hostname} is also the domain of the site ${site}: the app and a site need a hostname each`, "invalid");
|
|
69
|
+
}
|
|
46
70
|
};
|
|
47
71
|
export const NONE = { unknown: [], replace: [] };
|
|
48
72
|
/**
|
|
@@ -59,12 +83,21 @@ export function replanned(what, fresh, expect) {
|
|
|
59
83
|
}
|
|
60
84
|
const sorted = (names) => [...names].toSorted().join(",");
|
|
61
85
|
/** The declared fields a change of which is an update: everything the Worker runs, and the image. */
|
|
62
|
-
const COMPARED = [
|
|
86
|
+
const COMPARED = [
|
|
87
|
+
"image",
|
|
88
|
+
"source",
|
|
89
|
+
"ref",
|
|
90
|
+
"revision",
|
|
91
|
+
"configurationRevision",
|
|
92
|
+
"port",
|
|
93
|
+
"domains",
|
|
94
|
+
"hostname",
|
|
95
|
+
];
|
|
96
|
+
/** The compared fields a declaration may leave out: leaving one out is a change when the Worker has it. */
|
|
97
|
+
const OPTIONAL = new Set(["configurationRevision", "domains", "hostname"]);
|
|
63
98
|
const same = (field, a, b) => field === "domains"
|
|
64
99
|
? domainsText((a ?? {})) === domainsText((b ?? {}))
|
|
65
|
-
:
|
|
66
|
-
? (a ?? "") === (b ?? "")
|
|
67
|
-
: a === b;
|
|
100
|
+
: (a ?? null) === (b ?? null);
|
|
68
101
|
/**
|
|
69
102
|
* `{ revision }` when the Worker answers, else why not; with `start`, once its container answers
|
|
70
103
|
* too, which starts it. A read asks without: a stopped host is healthy, and stays stopped. A
|
|
@@ -114,7 +147,8 @@ const zonesOf = async (cf, name, hostnames) => {
|
|
|
114
147
|
* uploaded with the declared bindings and that image (the migration on its first upload), its
|
|
115
148
|
* workers.dev URL turned on, the application made when there is none, and then a wait until the
|
|
116
149
|
* Worker answers at the new revision, which starts the container. A new image is a new upload:
|
|
117
|
-
* the object destroys a container started at another and starts it again.
|
|
150
|
+
* the object destroys a container started at another and starts it again. With domains and the
|
|
151
|
+
* instance token, the public sites the container built go on the Worker last (`serveSites`).
|
|
118
152
|
*/
|
|
119
153
|
export function containerOps(api, { startTimeoutMs, pollMs }) {
|
|
120
154
|
/** The Worker `name` runs, from its bindings and its application; `checkHealth` asks it too. None for a Worker that is not Sanoma's. */
|
|
@@ -126,15 +160,16 @@ export function containerOps(api, { startTimeoutMs, pollMs }) {
|
|
|
126
160
|
return undefined;
|
|
127
161
|
const app = await cf.application(script);
|
|
128
162
|
const url = await cf.workerUrl(script);
|
|
129
|
-
const text =
|
|
163
|
+
const text = textOf(bindings);
|
|
130
164
|
const served = text.get(TEXT.domains);
|
|
131
|
-
|
|
132
|
-
//
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
165
|
+
const declaredHostname = text.get(TEXT.hostname) || undefined;
|
|
166
|
+
// The domains and the hostname it serves that are attached: one whose attach failed, or
|
|
167
|
+
// detached by hand, is drift, so the next apply attaches it again.
|
|
168
|
+
const attached = new Set(served || declaredHostname ? (await cf.domains(script)).map((d) => d.hostname) : []);
|
|
169
|
+
const domains = served
|
|
170
|
+
? Object.fromEntries(Object.entries(domainsOf(served)).filter(([, hostname]) => attached.has(hostname)))
|
|
171
|
+
: undefined;
|
|
172
|
+
const hostname = declaredHostname && attached.has(declaredHostname) ? declaredHostname : undefined;
|
|
138
173
|
const state = {
|
|
139
174
|
id: app?.id ?? null,
|
|
140
175
|
name,
|
|
@@ -146,46 +181,64 @@ export function containerOps(api, { startTimeoutMs, pollMs }) {
|
|
|
146
181
|
...(text.has(TEXT.configurationRevision) && { configurationRevision: text.get(TEXT.configurationRevision) }),
|
|
147
182
|
port: Number(text.get(TEXT.port) ?? 0),
|
|
148
183
|
...(domains && Object.keys(domains).length > 0 && { domains }),
|
|
149
|
-
|
|
184
|
+
...(hostname && { hostname }),
|
|
185
|
+
// Where the app answers now: at its hostname once attached; its health is asked on workers.dev.
|
|
186
|
+
url: servedAt(hostname, url),
|
|
187
|
+
worker_url: url,
|
|
150
188
|
healthy: checkHealth && app !== undefined && "revision" in (await health(cf, url, false)),
|
|
151
189
|
};
|
|
152
190
|
const secrets = bindings.filter((b) => b.type === "secret_text").map((b) => b.name);
|
|
153
|
-
|
|
191
|
+
// The deploy uploaded the Worker, and its sites upload did not follow (`serveSites`).
|
|
192
|
+
const sitesPending = text.has(TEXT.sitesPending);
|
|
193
|
+
return { state, secrets, sitesPending };
|
|
154
194
|
};
|
|
155
195
|
const read = async ({ id }) => {
|
|
156
196
|
const found = await inspect(id, true);
|
|
157
197
|
return found ? { id, gone: false, state: found.state } : { id, gone: true };
|
|
158
198
|
};
|
|
159
|
-
|
|
199
|
+
/** The plan, and whether all it changes is the public sites' upload a deploy did not finish. */
|
|
200
|
+
const diff = async ({ id, desired, }) => {
|
|
201
|
+
if (desired)
|
|
202
|
+
checkHostname(desired.name, desired.hostname, desired.domains);
|
|
160
203
|
const found = id === undefined ? undefined : await inspect(id, false);
|
|
161
204
|
if (!desired)
|
|
162
|
-
return { action: found ? "delete" : "none", ...NONE };
|
|
205
|
+
return { planned: { action: found ? "delete" : "none", ...NONE }, sitesOnly: false };
|
|
163
206
|
const { secrets, ...declared } = desired;
|
|
164
207
|
const unknown = [...container.fields.vendorOwned];
|
|
165
208
|
// A create plans without the account: it needs no credentials yet.
|
|
166
209
|
if (!found)
|
|
167
|
-
return { action: "create", planned: declared, unknown, replace: [] };
|
|
210
|
+
return { planned: { action: "create", planned: declared, unknown, replace: [] }, sitesOnly: false };
|
|
168
211
|
const planned = declared;
|
|
169
212
|
const { state } = found;
|
|
170
|
-
if (planned.name !== state.name)
|
|
171
|
-
return { action: "replace", planned, unknown, replace: ["name"] };
|
|
213
|
+
if (planned.name !== state.name) {
|
|
214
|
+
return { planned: { action: "replace", planned, unknown, replace: ["name"] }, sitesOnly: false };
|
|
215
|
+
}
|
|
172
216
|
const changed =
|
|
173
|
-
// `domains` left out
|
|
174
|
-
COMPARED.some((field) => (field in planned || field
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
217
|
+
// `domains` and `hostname` left out are compared too: removing one is a change.
|
|
218
|
+
COMPARED.some((field) => (field in planned || OPTIONAL.has(field)) && !same(field, planned[field], state[field])) || sorted(Object.keys(secrets ?? {})) !== sorted(found.secrets);
|
|
219
|
+
if (!changed && !found.sitesPending)
|
|
220
|
+
return { planned: { action: "none", planned: state, ...NONE }, sitesOnly: false };
|
|
221
|
+
// What the Worker will serve: the declared domains and hostname, none of the found ones left
|
|
222
|
+
// out; the app at the declared hostname, or on workers.dev without one.
|
|
223
|
+
const { domains: _domains, hostname: _hostname, ...was } = state;
|
|
224
|
+
const url = servedAt(planned.hostname, state.worker_url);
|
|
178
225
|
return {
|
|
179
|
-
action: "update",
|
|
180
226
|
planned: {
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
planned
|
|
227
|
+
action: "update",
|
|
228
|
+
planned: {
|
|
229
|
+
...was,
|
|
230
|
+
...planned,
|
|
231
|
+
...(state.configurationRevision !== undefined &&
|
|
232
|
+
planned.configurationRevision == null && { configurationRevision: null }),
|
|
233
|
+
url,
|
|
234
|
+
},
|
|
235
|
+
...NONE,
|
|
185
236
|
},
|
|
186
|
-
|
|
237
|
+
// The Worker otherwise runs what is declared, its application made.
|
|
238
|
+
sitesOnly: !changed && state.id !== null,
|
|
187
239
|
};
|
|
188
240
|
};
|
|
241
|
+
const plan = async (input) => (await diff(input)).planned;
|
|
189
242
|
/** Waits until the Worker at `url` answers at `revision`, which starts its container. */
|
|
190
243
|
const started = async (cf, script, url, revision, configurationRevision) => {
|
|
191
244
|
const until = Date.now() + startTimeoutMs;
|
|
@@ -232,10 +285,16 @@ export function containerOps(api, { startTimeoutMs, pollMs }) {
|
|
|
232
285
|
await delay(pollMs);
|
|
233
286
|
}
|
|
234
287
|
};
|
|
235
|
-
/**
|
|
236
|
-
|
|
288
|
+
/**
|
|
289
|
+
* Makes the Worker and its application match `desired`, and waits for it: a create and an
|
|
290
|
+
* update alike. With `sitesOnly` (the Worker runs `desired` already, but its sites upload did
|
|
291
|
+
* not follow), the public sites' upload alone.
|
|
292
|
+
*/
|
|
293
|
+
const put = async (desired, { secrets: store }, sitesOnly = false) => {
|
|
237
294
|
const declared = container.schema.parse(await resolveSecrets(desired, store));
|
|
238
295
|
const { name, image, source, ref, revision, configurationRevision, port, domains } = declared;
|
|
296
|
+
const hostname = declared.hostname ?? undefined;
|
|
297
|
+
checkHostname(name, hostname, domains);
|
|
239
298
|
const secrets = declared.secrets ?? {};
|
|
240
299
|
if (!revision) {
|
|
241
300
|
throw refused(`container ${name}: no revision: apply sets it from ${ref} once its source exists (apply again after a repository it creates)`);
|
|
@@ -254,14 +313,17 @@ export function containerOps(api, { startTimeoutMs, pollMs }) {
|
|
|
254
313
|
// the Worker as it was. Each apply asks again, which costs a manifest's HEAD once the copy is
|
|
255
314
|
// there, and puts back one gone; the object starts only a pinned image of the account's.
|
|
256
315
|
// The custom domains are read first too: the ones an update's Worker has, and each declared
|
|
257
|
-
// one missing, with its zone, so a domain whose zone
|
|
316
|
+
// one missing (a site's domain or the app's hostname), with its zone, so a domain whose zone
|
|
317
|
+
// the account lacks is refused here.
|
|
318
|
+
const hostnames = new Set([...Object.values(domains ?? {}), ...(hostname ? [hostname] : [])]);
|
|
258
319
|
const before = declaredBefore(current);
|
|
259
|
-
const attached = current && (
|
|
320
|
+
const attached = current && (hostnames.size > 0 || before.size > 0) ? await cf.domains(script) : [];
|
|
260
321
|
const held = new Set(attached.map((d) => d.hostname));
|
|
261
|
-
const missing = await zonesOf(cf, name,
|
|
322
|
+
const missing = await zonesOf(cf, name, [...hostnames].filter((h) => !held.has(h)));
|
|
262
323
|
const runs = accountPinned(image, cf.account) ? image : await cf.copyImage(image);
|
|
263
324
|
await prepared(cf, runs);
|
|
264
325
|
const served = domains ? domainsText(domains) : undefined;
|
|
326
|
+
const token = secrets[WAKEUP_TOKEN];
|
|
265
327
|
const text = {
|
|
266
328
|
[TEXT.source]: source,
|
|
267
329
|
[TEXT.ref]: ref,
|
|
@@ -269,8 +331,12 @@ export function containerOps(api, { startTimeoutMs, pollMs }) {
|
|
|
269
331
|
...(configurationRevision && { [TEXT.configurationRevision]: configurationRevision }),
|
|
270
332
|
[TEXT.image]: image,
|
|
271
333
|
[TEXT.port]: String(port),
|
|
334
|
+
// Where the wakeup reaches the Worker: its workers.dev URL, whatever hostname it serves.
|
|
272
335
|
[TEXT.url]: url,
|
|
273
336
|
...(served && { [TEXT.domains]: served }),
|
|
337
|
+
...(hostname && { [TEXT.hostname]: hostname }),
|
|
338
|
+
// Until `serveSites` uploads the Worker again, without it.
|
|
339
|
+
...(domains && token && { [TEXT.sitesPending]: "1" }),
|
|
274
340
|
};
|
|
275
341
|
const bindings = [
|
|
276
342
|
{ type: "durable_object_namespace", name: NAMESPACE, class_name: OBJECT_CLASS },
|
|
@@ -289,31 +355,43 @@ export function containerOps(api, { startTimeoutMs, pollMs }) {
|
|
|
289
355
|
observability: { enabled: true },
|
|
290
356
|
modules: await workerModules(),
|
|
291
357
|
};
|
|
292
|
-
await cf.
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
// The application is made for the object's namespace, which the first upload made.
|
|
297
|
-
const namespace = (await cf.bindings(script))?.find((b) => b.name === NAMESPACE)?.namespace_id;
|
|
298
|
-
if (!namespace)
|
|
299
|
-
throw refused(`${script}: Cloudflare names no namespace for its ${NAMESPACE} binding`);
|
|
300
|
-
app = await cf.createApplication(script, namespace);
|
|
301
|
-
// The object learns which application backs its namespace from a deployment made after
|
|
302
|
-
// the application exists: without this second upload every start answers "There is no
|
|
303
|
-
// container application assigned to this Durable Object namespace", for good (found live
|
|
304
|
-
// 2026-10-29; a Worker deployed again after the application started at once).
|
|
305
|
-
await cf.upload(script, metadata);
|
|
358
|
+
let app = sitesOnly ? await cf.application(script) : undefined;
|
|
359
|
+
if (sitesOnly) {
|
|
360
|
+
if (!app)
|
|
361
|
+
throw refused(`${script}: its container application is gone`);
|
|
306
362
|
}
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
363
|
+
else {
|
|
364
|
+
// A domain declared before and no longer is detached while the bindings still record it, and
|
|
365
|
+
// a missing one attached once the upload records it: whatever fails in between, none is left
|
|
366
|
+
// attached and unrecorded, and the next apply attaches what is still missing. A site's domain
|
|
367
|
+
// so never reaches a Worker that would serve the app there (README, Custom domains).
|
|
368
|
+
for (const domain of attached) {
|
|
369
|
+
if (before.has(domain.hostname) && !hostnames.has(domain.hostname))
|
|
370
|
+
await cf.detachDomain(domain.id);
|
|
371
|
+
}
|
|
372
|
+
await cf.upload(script, { ...metadata, ...(current === undefined && { migrations: MIGRATION }) });
|
|
373
|
+
await cf.enableSubdomain(script);
|
|
374
|
+
app = await cf.application(script);
|
|
375
|
+
if (!app) {
|
|
376
|
+
// The application is made for the object's namespace, which the first upload made.
|
|
377
|
+
const namespace = (await cf.bindings(script))?.find((b) => b.name === NAMESPACE)?.namespace_id;
|
|
378
|
+
if (!namespace)
|
|
379
|
+
throw refused(`${script}: Cloudflare names no namespace for its ${NAMESPACE} binding`);
|
|
380
|
+
app = await cf.createApplication(script, namespace);
|
|
381
|
+
// The object learns which application backs its namespace from a deployment made after
|
|
382
|
+
// the application exists: without this second upload every start answers "There is no
|
|
383
|
+
// container application assigned to this Durable Object namespace", for good (found live
|
|
384
|
+
// 2026-10-29; a Worker deployed again after the application started at once).
|
|
385
|
+
await cf.upload(script, metadata);
|
|
386
|
+
}
|
|
387
|
+
for (const [domain, zone] of missing)
|
|
388
|
+
await cf.attachDomain(script, domain, zone);
|
|
389
|
+
await started(cf, script, url, revision, configurationRevision);
|
|
315
390
|
}
|
|
316
|
-
|
|
391
|
+
// The public sites on the Worker, once the container that builds them runs (`sites.ts`): the
|
|
392
|
+
// same bindings, so every domain attached is one they record.
|
|
393
|
+
if (domains && token)
|
|
394
|
+
await serveSites(cf, { script, url, token, metadata, startTimeoutMs, pollMs });
|
|
317
395
|
const state = {
|
|
318
396
|
id: app.id,
|
|
319
397
|
name,
|
|
@@ -324,7 +402,9 @@ export function containerOps(api, { startTimeoutMs, pollMs }) {
|
|
|
324
402
|
...(configurationRevision && { configurationRevision }),
|
|
325
403
|
port,
|
|
326
404
|
...(domains && { domains }),
|
|
327
|
-
|
|
405
|
+
...(hostname && { hostname }),
|
|
406
|
+
url: servedAt(hostname, url),
|
|
407
|
+
worker_url: url,
|
|
328
408
|
healthy: true,
|
|
329
409
|
};
|
|
330
410
|
return { id: name, state };
|
|
@@ -335,14 +415,14 @@ export function containerOps(api, { startTimeoutMs, pollMs }) {
|
|
|
335
415
|
plan,
|
|
336
416
|
create: ({ desired }, call) => put(desired, call),
|
|
337
417
|
update: async ({ id, desired, expect, }, call) => {
|
|
338
|
-
const fresh = await
|
|
418
|
+
const { planned: fresh, sitesOnly } = await diff({ id, desired });
|
|
339
419
|
replanned("container.update", fresh, expect);
|
|
340
420
|
if (fresh.action === "none") {
|
|
341
421
|
const found = await read({ id });
|
|
342
422
|
if (found.state)
|
|
343
423
|
return { id, state: found.state };
|
|
344
424
|
}
|
|
345
|
-
return put(desired, call);
|
|
425
|
+
return put(desired, call, sitesOnly);
|
|
346
426
|
},
|
|
347
427
|
delete: async ({ id }) => {
|
|
348
428
|
const cf = api();
|