@curless/hotel-storefront 0.56.0 → 0.57.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/account/index.d.ts +7 -2
- package/dist/account/index.d.ts.map +1 -1
- package/dist/account/index.js +32 -6
- package/dist/account/index.js.map +1 -1
- package/dist/card.generated.d.ts +1 -1
- package/dist/card.generated.js +2 -2
- package/dist/card.generated.js.map +1 -1
- package/dist/dates.d.ts +24 -0
- package/dist/dates.d.ts.map +1 -1
- package/dist/dates.js +44 -0
- package/dist/dates.js.map +1 -1
- package/dist/server.d.ts +2 -2
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +56 -11
- package/dist/server.js.map +1 -1
- package/dist/surface.d.ts.map +1 -1
- package/dist/surface.js +20 -5
- package/dist/surface.js.map +1 -1
- package/dist/tools.d.ts +8 -1
- package/dist/tools.d.ts.map +1 -1
- package/dist/tools.js +299 -19
- package/dist/tools.js.map +1 -1
- package/package.json +1 -1
package/dist/surface.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"surface.js","sourceRoot":"","sources":["../src/surface.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4B,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAC3E,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AACvE,OAAO,EAAsB,OAAO,EAAE,MAAM,YAAY,CAAC;AAEzD,+EAA+E;AAC/E,yEAAyE;AACzE,EAAE;AACF,8EAA8E;AAC9E,gFAAgF;AAChF,8EAA8E;AAC9E,gFAAgF;AAChF,gFAAgF;AAChF,4CAA4C;AAE5C,6CAA6C;AAC7C,MAAM,GAAG,GAAG,CAAC,EAAY,EAAU,EAAE,CACnC,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC;AAE3F;;;;;;;;;GASG;AACH,8FAA8F;AAC9F,MAAM,OAAO,GACX,uZAAuZ,CAAC;AAE1Z,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAC/B,KAAoB,EACpB,OAA4B,iBAAiB;AAC7C;;;;;;;;;;;;;GAaG;AACH,OAA+C,EAAE,EACzC,EAAE;IACV,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,KAAK,CAAC;IACrC,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,KAAK,IAAI,CAAC;IACvC,gFAAgF;IAChF,yEAAyE;IACzE,MAAM,EAAE,GAAG,IAAI,CAAC,QAAQ,KAAK,IAAI,CAAC;IAClC,MAAM,GAAG,GAAG,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,CAAC,IAAI,aAAa,CAAC;IAC1E,MAAM,YAAY,GAAG,KAAK,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,KAAK,QAAQ,CAAC;IAC7D,oEAAoE;IACpE,MAAM,SAAS,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACtE,MAAM,MAAM,GAAG,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IACjD,oFAAoF;IACpF,oFAAoF;IACpF,mFAAmF;IACnF,6EAA6E;IAC7E,uCAAuC;IACvC,MAAM,OAAO,GAAG,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;IAC/C,MAAM,OAAO,GAAG,SAAS,CAAC,MAAM,CAC9B,CAAC,CAAC,EAAE,EAAE,CACJ,CAAC,CAAC,IAAI,CAAC,MAAM,KAAK,MAAM;QACxB,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,OAAO,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CACzE,CAAC;IACF,4EAA4E;IAC5E,6EAA6E;IAC7E,kCAAkC;IAClC,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM;QACzB,CAAC,CAAC,GAAG,CAAC,CAAC,UAAU,KAAK,CAAC,CAAC,QAAQ,QAAQ,CAAC,CAAC,UAAU,oFAAoF,CAAC,CAAC,IAAI,iBAAiB;QAC/J,CAAC,CAAC,GAAG,CAAC,CAAC,UAAU,QAAQ,CAAC,CAAC,QAAQ,sFAAsF,CAAC,CAAC,IAAI,EAAE,CAAC;IACpI,kEAAkE;IAClE,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM;QACzB,CAAC,CAAC,GAAG,CAAC,CAAC,UAAU,KAAK,CAAC,CAAC,QAAQ,QAAQ,CAAC,CAAC,UAAU,4FAA4F,CAAC,CAAC,IAAI,kEAAkE;QACxN,CAAC,CAAC,GAAG,CAAC,CAAC,UAAU,QAAQ,CAAC,CAAC,QAAQ,8FAA8F,CAAC,CAAC,IAAI,mDAAmD,CAAC;IAC7L,OAAO;QACL,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC,IAAI,eAAe,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,UAAU,EAAE,KAChH,QAAQ;YACN,CAAC,CAAC,iEAAiE;gBACjE,gEAAgE;gBAChE,gCAAgC;gBAChC,uHAAuH,CAAC,CAAC,UAAU,qMAAqM;YAC1U,CAAC,CAAC,EAAE;gBACF,CAAC,CAAC,sBAAsB,CAAC,CAAC,UAAU,6EAA6E;gBACjH,CAAC,CAAC,iDAAiD,CAAC,CAAC,UAAU,+GACrE,EAAE;QACF,oEAAoE;QACpE,mCAAmC;QACnC,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,KAAK,SAAS;YAChD,CAAC,CAAC,oEAAoE;gBACpE,gDAAgD;gBAChD,wBAAwB,CAAC,CAAC,UAAU,eAAe,CAAC,CAAC,IAAI,mBAAmB,CAAC,CAAC,KAAK,wHAAwH,CAAC,CAAC,KAAK,0DAA0D;YAC9Q,CAAC,CAAC,CAAC,CAAC,MAAM;gBACR,CAAC,CAAC,uEAAuE;oBACvE,oEAAoE;oBACpE,wCAAwC;oBACxC,wBAAwB,CAAC,CAAC,UAAU,OAAO,MAAM,YAAY,CAAC,CAAC,KAAK,wGAAwG,CAAC,CAAC,KAAK,+DAA+D,CAAC,CAAC,IAAI,wEAAwE,CAAC,CAAC,KAAK,yCAAyC;gBAClX,CAAC,CAAC,uEAAuE;oBACvE,kEAAkE;oBAClE,0EAA0E;oBAC1E,8EAA8E;oBAC9E,6EAA6E;oBAC7E,2DAA2D;oBAC3D,oBAAoB,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,IAAI,2GAA2G;QACxJ,uFAAuF;QACvF,iEAAiE;QACjE,mFAAmF;QACnF,wFAAwF;QACxF,qDAAqD;QACrD,GAAG,CAAC,OAAO,CAAC,MAAM;YAChB,CAAC,CAAC;gBACE,kFAAkF;gBAClF,6CAA6C;gBAC7C,+BAA+B,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,4JAA4J,WAAW,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,IAAI,IAAI,YAAY,CAAC,CAAC,EAAE;aACtV;YACH,CAAC,CAAC,EAAE,CAAC;QACP,GAAG,CAAC,OAAO,IAAI,CAAC,EAAE;YAChB,CAAC,CAAC;gBACE,yCAAyC,CAAC,CAAC,KAAK,qCAAqC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,mBAAmB,0EAA0E,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE;aAChP;YACH,CAAC,CAAC,EAAE,CAAC;QACP,GAAG,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,EAAE;YACf,CAAC,CAAC;gBACE,uDAAuD,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,mBAAmB,yIAAyI;aAC3P;YACH,CAAC,CAAC,EAAE,CAAC;QACP,4EAA4E;QAC5E,uEAAuE;QACvE,kEAAkE;QAClE,yEAAyE;QACzE,yEAAyE;QACzE,qDAAqD;QACrD,EAAE;QACF,4EAA4E;QAC5E,8EAA8E;QAC9E,oEAAoE;QACpE,wEAAwE;QACxE,uEAAuE;QACvE,4EAA4E;QAC5E,yEAAyE;QACzE,6EAA6E;QAC7E,oEAAoE;QACpE,EAAE;QACF,0EAA0E;QAC1E,uEAAuE;QACvE,qEAAqE;QACrE,0EAA0E;QAC1E,wEAAwE;QACxE,4EAA4E;QAC5E,4EAA4E;QAC5E,4EAA4E;QAC5E,0EAA0E;QAC1E,2DAA2D;QAC3D,4MAA4M,CAAC,CAAC,KAAK,iDAAiD,CAAC,CAAC,UAAU,yNAAyN,CAAC,CAAC,MAAM,wBAAwB,CAAC,CAAC,SAAS,SAAS,CAAC,CAAC,UAAU,kCAAkC,CAAC,CAAC,KAAK,iCAChlB,QAAQ;YACN,CAAC,CAAC,6FAA6F,CAAC,CAAC,UAAU,oBAAoB;YAC/H,CAAC,CAAC,4FAA4F,CAAC,CAAC,UAAU,gEAC9G,IAAI;QACF,uEAAuE;QACvE,qEAAqE;QACrE,4DAA4D;QAC5D,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM;YAC5B,CAAC,CAAC,2BAA2B,CAAC,CAAC,IAAI,mDAAmD,CAAC,CAAC,IAAI,sBAAsB,CAAC,CAAC,UAAU,qEAAqE,CAAC,CAAC,IAAI,kRAAkR;YAC3d,CAAC,CAAC,0DAA0D;gBAC1D,8DAA8D;gBAC9D,GAAG,IAAI,CAAC,CAAC,CAAC,MAAM;oBAChB,CAAC,CAAC,uBAAuB,IAAI,CAAC,MAAM,IAAI,CAAC,CAAC,UAAU,kEAAkE,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,cAAc,WAAW,CAAC,CAAC,UAAU,qEAAqE,CAAC,CAAC,IAAI,2CAA2C,CAAC,CAAC,UAAU,oQAAoQ;oBACjjB,CAAC,CAAC,QAAQ;wBACR,CAAC,CAAC,sOAAsO,CAAC,CAAC,UAAU,mDAAmD;wBACvS,CAAC,CAAC,4TAA4T,CAAC,CAAC,UAAU,mDAClV,8BAA8B,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,mCAAmC,CAAC,CAAC,OAAO,OAAO,CAAC,CAAC,SAAS,wLAAwL,CAAC,CAAC,SAAS,uBAAuB,CAAC,CAAC,IAAI,iBAAiB,CAAC,CAAC,IAAI,qEAAqE,CAAC,CAAC,OAAO,kDAAkD,CAAC,CAAC,UAAU,qFAAqF,CAAC,CAAC,UAAU,4CAA4C,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,MAAM,KACzrB,QAAQ;YACN,CAAC,CAAC,4DAA4D,OAAO,GAAG;YACxE,CAAC,CAAC,yCAAyC,OAAO,uFACtD,EAAE;QACF,+EAA+E;QAC/E,+DAA+D;QAC/D,oEAAoE;QACpE,4EAA4E;QAC5E,4EAA4E;QAC5E,8BAA8B;QAC9B,0IAA0I,CAAC,CAAC,IAAI,mEAAmE,CAAC,CAAC,MAAM,YAAY,CAAC,CAAC,UAAU,2CAA2C,CAAC,CAAC,SAAS,kDAAkD,CAAC,CAAC,UAAU,8CAA8C,CAAC,CAAC,UAAU,GAAG;QACpa,0EAA0E;QAC1E,uEAAuE;QACvE,2EAA2E;QAC3E,mBAAmB;QACnB,4EAA4E;QAC5E,6EAA6E;QAC7E,8DAA8D;QAC9D,8BAA8B,CAAC,CAAC,UAAU,8LAA8L,CAAC,CAAC,UAAU,uKAAuK;QAC3Z,mCAAmC;QACnC,0LACE,QAAQ;YACN,CAAC,CAAC,GAAG,CAAC,CAAC,QAAQ,8BAA8B,CAAC,CAAC,IAAI,4CAA4C;YAC/F,CAAC,CAAC,GAAG,CAAC,CAAC,QAAQ,8BAA8B,CAAC,CAAC,IAAI,6OACvD,EAAE;QACF,GAAG,CAAC,CAAC,UAAU,uPAAuP,CAAC,CAAC,IAAI,qBAAqB,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,iEAAiE,EAAE;QACpX,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,KAAK,SAAS;YACpC,CAAC,CAAC,uEAAuE;gBACvE,sCAAsC;gBACtC,GAAG,CAAC,CAAC,QAAQ,iTAAiT;YAChU,CAAC,CAAC,GAAG,CAAC,CAAC,QAAQ,8RAA8R;QAC/S,yEAAyE;QACzE,0EAA0E;QAC1E,0EAA0E;QAC1E,oBAAoB;QACpB,oFAAoF,CAAC,CAAC,IAAI,qDAAqD,CAAC,CAAC,UAAU,kFAAkF,CAAC,CAAC,SAAS,gDAAgD,CAAC,CAAC,SAAS,mBAAmB,CAAC,CAAC,IAAI,kEAAkE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,kFAAkF,CAAC,CAAC,UAAU,iBAAiB,CAAC,CAAC,IAAI,0BAA0B,CAAC,CAAC,CAAC,EAAE,eAAe,CAAC,CAAC,QAAQ,KACvkB,EAAE;YACA,CAAC,CAAC,QAAQ;gBACR,CAAC,CAAC,kIAAkI;gBACpI,CAAC,CAAC,+GAA+G;YACnH,CAAC,CAAC,QAAQ;gBACR,CAAC,CAAC,2FAA2F,CAAC,CAAC,cAAc,0BAA0B;gBACvI,CAAC,CAAC,6GACR,IACE,EAAE;YACA,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC,QAAQ;gBACR,CAAC,CAAC,uBAAuB,CAAC,CAAC,IAAI,oEAAoE,CAAC,CAAC,SAAS,qBAAqB,CAAC,CAAC,cAAc,oDAAoD;gBACvM,CAAC,CAAC,uBAAuB,CAAC,CAAC,IAAI,kCAAkC,CAAC,CAAC,IAAI,6CAC7E,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,QAAQ,qCAAqC,wCAAwC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,SAAS,uFAAuF,CAAC,CAAC,QAAQ,wCAAwC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,+CAA+C,EAAE;QACha,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACzC,sCAAsC;QACtC,EAAE;YACA,CAAC,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC,sLAAsL;YAC3M,CAAC,CAAC,YAAY;gBACZ,CAAC,CAAC,GAAG,CAAC,CAAC,cAAc,4EAA4E;gBACjG,CAAC,CAAC,CAAC,CAAC,MAAM;oBACR,CAAC,CAAC,GAAG,CAAC,CAAC,cAAc,0DAA0D,CAAC,CAAC,IAAI,gEAAgE,CAAC,CAAC,UAAU,mnBAAmnB;oBACpxB,CAAC,CAAC,IAAI,CAAC,OAAO,KAAK,cAAc,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,OAAO,CAAC;wBACtD,CAAC,CAAC,yEAAyE;4BACzE,oEAAoE;4BACpE,2DAA2D;4BAC3D,GAAG,CAAC,CAAC,cAAc,uEACjB,OAAO;gCACL,CAAC,CAAC,8BAA8B,CAAC,CAAC,KAAK,oBAAoB;gCAC3D,CAAC,CAAC,0BAA0B,CAAC,CAAC,KAAK,4CACvC,wGAAwG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,gBAAgB,qCAC1I,IAAI,CAAC,OAAO;gCACV,CAAC,CAAC,8GAA8G,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,yBAAyB,4GAA4G,CAAC,CAAC,YAAY,wJAAwJ;gCAC1a,CAAC,CAAC,wGACN,EAAE;wBACJ,CAAC,CAAC,IAAI,CAAC,OAAO,KAAK,cAAc;4BAC/B,CAAC,CAAC,GAAG,CAAC,CAAC,cAAc,yBAAyB,CAAC,CAAC,KAAK,oRAAoR,CAAC,CAAC,KAAK,uFAAuF,CAAC,CAAC,YAAY,wJAAwJ;4BAC7kB,CAAC,CAAC,CAAC,CAAC,IAAI;gCACN,CAAC,CAAC,oEAAoE;oCACpE,iEAAiE;oCACjE,wDAAwD;oCACxD,GAAG,CAAC,CAAC,cAAc,uGAAuG,CAAC,CAAC,KAAK,oKAAoK,CAAC,CAAC,KAAK,sPAAsP;gCACpiB,CAAC,CAAC,GAAG,CAAC,CAAC,cAAc,SAAS,CAAC,CAAC,KAAK,waAAwa;QACzd,uEAAuE;QACvE,2EAA2E;QAC3E,0EAA0E;QAC1E,GAAG,CAAC,IAAI,CAAC,OAAO;YACd,CAAC,CAAC;gBACE,GAAG,CAAC,CAAC,KAAK,sCAAsC,CAAC,CAAC,MAAM,gSAAgS,CAAC,CAAC,OAAO,mIAAmI;aACre;YACH,CAAC,CAAC,EAAE,CAAC;QACP,2EAA2E;QAC3E,gEAAgE;QAChE,GAAG,CAAC,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO;YAC9B,CAAC,CAAC;gBACE,+CAA+C,CAAC,CAAC,MAAM,wYAAwY,CAAC,CAAC,QAAQ,6DAA6D,CAAC,CAAC,cAAc,8IAA8I;aACrqB;YACH,CAAC,CAAC,EAAE,CAAC;QACP,uEAAuE;QACvE,GAAG,CAAC,IAAI,CAAC,OAAO;YACd,CAAC,CAAC;gBACE,mPAAmP,CAAC,CAAC,cAAc,oEAAoE,CAAC,CAAC,MAAM,wFAAwF,CAAC,CAAC,iBAAiB,oCAAoC;aAC/d;YACH,CAAC,CAAC,EAAE,CAAC;QACP,GAAG,CAAC,IAAI,CAAC,MAAM;YACb,CAAC,CAAC;gBACE,4EAA4E,CAAC,CAAC,UAAU,gCAAgC,CAAC,CAAC,IAAI,+CAA+C,CAAC,CAAC,aAAa,gHAAgH;aAC7S;YACH,CAAC,CAAC,EAAE,CAAC;QACP,wEAAwE;QACxE,yEAAyE;QACzE,4EAA4E;QAC5E,0EAA0E;QAC1E,2EAA2E;QAC3E,EAAE;YACA,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC,GAAG,CAAC,CAAC,cAAc,oSAAoS;QAC3T,2EAA2E;QAC3E,EAAE;YACA,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC,IAAI,CAAC,OAAO;gBACZ,CAAC,CAAC,6DAA6D,CAAC,CAAC,aAAa,oOAAoO,CAAC,CAAC,aAAa,+QAA+Q;gBAChlB,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,WAAW,kQAAkQ;QACxT,EAAE;YACA,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC,+BAA+B,CAAC,CAAC,mBAAmB,uHAAuH,CAAC,CAAC,aAAa,qIAAqI;QACnU,0EAA0E;QAC1E,4EAA4E;QAC5E,0EAA0E;QAC1E,2BAA2B;QAC3B,QAAQ;YACN,CAAC,CAAC,8DAA8D,CAAC,CAAC,OAAO,sBAAsB,CAAC,CAAC,UAAU,qJAAqJ,CAAC,CAAC,IAAI,4GAA4G,CAAC,CAAC,SAAS,sIAAsI,CAAC,CAAC,UAAU,qHAAqH,CAAC,CAAC,UAAU,SAAS,CAAC,CAAC,QAAQ,yFAAyF;YAC5vB,CAAC,CAAC,8DAA8D,CAAC,CAAC,OAAO,qBAAqB,CAAC,CAAC,UAAU,6IAA6I,CAAC,CAAC,IAAI,0EAA0E,CAAC,CAAC,SAAS,yFAAyF,CAAC,CAAC,UAAU,sMAAsM,CAAC,CAAC,UAAU,SAAS,CAAC,CAAC,QAAQ,qIAAqI;QACnyB,wEAAwE;QACxE,0EAA0E;QAC1E,sEAAsE;QACtE,yEAAyE;QACzE,qEAAqE;QACrE,EAAE;QACF,uEAAuE;QACvE,uDAAuD;QACvD,yEAAyE;QACzE,2EAA2E;QAC3E,uEAAuE;QACvE,qEAAqE;QACrE,oEAAoE;QACpE,wEAAwE;QACxE,wEAAwE;QACxE,6EAA6E;QAC7E,4EAA4E;QAC5E,2EAA2E;QAC3E,wEAAwE;QACxE,yEAAyE;QACzE,6BAA6B,CAAC,CAAC,IAAI,oJAAoJ,CAAC,CAAC,UAAU,yCAAyC,CAAC,CAAC,MAAM,ugBAAugB,CAAC,CAAC,IAAI,8GAA8G,CAAC,CAAC,IAAI,2EAA2E,CAAC,CAAC,IAAI,qOAAqO,CAAC,CAAC,IAAI,uIAAuI,CAAC,CAAC,IAAI,yDAAyD,CAAC,CAAC,IAAI,kDAAkD,CAAC,CAAC,IAAI,8DAA8D,CAAC,CAAC,IAAI,6RAA6R,CAAC,CAAC,IAAI,2LAA2L;QACv9D,2EAA2E;QAC3E,4EAA4E;QAC5E,0EAA0E;QAC1E,iEAAiE;QACjE,QAAQ;YACN,CAAC,CAAC,iBAAiB,CAAC,CAAC,SAAS,gCAAgC,CAAC,CAAC,UAAU,kBAAkB,CAAC,CAAC,MAAM,iBAAiB,CAAC,CAAC,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,OAAO,eAAe,CAAC,CAAC,UAAU,6CAA6C,CAAC,CAAC,UAAU,mCAAmC,CAAC,CAAC,SAAS,sGAAsG,CAAC,CAAC,IAAI,sFAAsF,CAAC,CAAC,SAAS,+CAA+C,CAAC,CAAC,IAAI,uBAAuB,CAAC,CAAC,SAAS,6DAA6D,CAAC,CAAC,SAAS,iCAAiC,CAAC,CAAC,IAAI,iQAAiQ;YAC98B,CAAC,CAAC,iBAAiB,CAAC,CAAC,SAAS,gCAAgC,CAAC,CAAC,IAAI,uBAAuB,CAAC,CAAC,MAAM,oCAAoC,CAAC,CAAC,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,OAAO,eAAe,CAAC,CAAC,UAAU,6CAA6C,CAAC,CAAC,UAAU,mFAAmF,CAAC,CAAC,SAAS,sGAAsG,CAAC,CAAC,IAAI,sFAAsF,CAAC,CAAC,SAAS,qZAAqZ;QACh+B,uEAAuE;QACvE,yEAAyE;QACzE,qEAAqE;QACrE,yEAAyE;QACzE,oCAAoC,CAAC,CAAC,IAAI,2DAA2D,CAAC,CAAC,IAAI,wJAAwJ,CAAC,CAAC,SAAS,kLAAkL,CAAC,CAAC,SAAS,SAAS,EAAE,CAAC,CAAC,CAAC,wBAAwB,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,cAAc,6BAA6B,0DAA0D,CAAC,CAAC,SAAS,sBAAsB,CAAC,CAAC,IAAI,oGAAoG;QACzuB,yEAAyE;QACzE,2EAA2E;QAC3E,wEAAwE;QACxE,oEAAoE;QACpE,EAAE;YACA,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC,CAAC,CAAC,MAAM;gBACR,CAAC,CAAC,qLAAqL,OAAO,gEAAgE;gBAC9P,CAAC,CAAC,IAAI,CAAC,OAAO,KAAK,cAAc;oBAC/B,CAAC,CAAC,wJAAwJ,OAAO,yFAAyF;oBAC1P,CAAC,CAAC,+JAA+J,OAAO,qGAAqG;QACnR,yEAAyE;QACzE,iDAAiD;QACjD,IAAI,CAAC,WAAW;YACd,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC,mBAAmB,CAAC,CAAC,UAAU,+NAA+N,CAAC,CAAC,IAAI,0CAA0C;QAClT,sEAAsE;QACtE,0EAA0E;QAC1E,6BAA6B;QAC7B,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS;YACzB,CAAC,CAAC,sBAAsB,CAAC,CAAC,IAAI,yEAAyE,aAAa,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,gEAAgE,CAAC,CAAC,IAAI,gHAAgH;YAChV,CAAC,CAAC,EAAE;QACN,IAAI,CAAC,QAAQ,KAAK,KAAK;YACrB,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,4FAA4F,EAAE,CAAC,CAAC,CAAC,gHAAgH,CAAC,CAAC,CAAC,2CAA2C,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,yBAAyB,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,YAAY,kLAAkL;YAChgB,CAAC,CAAC,+GAA+G,CAAC,CAAC,QAAQ,6CAA6C,CAAC,CAAC,IAAI,wEAAwE,CAAC,CAAC,IAAI,iDAAiD;QAC/S,4BAA4B,CAAC,CAAC,IAAI,2GAA2G;QAC7I,UAAU;KACX;SACE,MAAM,CAAC,OAAO,CAAC;SACf,IAAI,CAAC,IAAI,CAAC,CAAC;AAChB,CAAC,CAAC;AAEF;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG,CACvB,KAAmB,EACnB,aAAsC,EACtC,OAAkD,EAClD,YAAiC,IAAI,GAAG,EAAE,EAC1C,EAAE,CACF,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;IACd,MAAM,YAAY,GAAG,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IAC3C,MAAM,MAAM,GAAG,CAAC,CAAC,WAAmE,CAAC;IACrF,MAAM,KAAK,GACT,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,MAAM;QAC7B,CAAC,CAAC;YACE,WAAW,EAAE;gBACX,GAAG,MAAM;gBACT,UAAU,EAAE,EAAE,GAAG,CAAC,MAAM,CAAC,UAAU,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE;aAC/D;SACF;QACH,CAAC,CAAC,EAAE,CAAC;IACT,0EAA0E;IAC1E,uEAAuE;IACvE,MAAM,KAAK,GAAI,CAA0C,CAAC,WAAW,EAAE,KAAK,CAAC;IAC7E,OAAO;QACL,GAAG,CAAC;QACJ,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3B,GAAG,KAAK;QACR,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC;QACtB,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC1C,CAAC;AACJ,CAAC,CAAC,CAAC;AAEL;;;;;GAKG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG;IACxB,IAAI,EAAE,QAAQ;IACd,WAAW,EACT,yHAAyH;CACnH,CAAC;AAEX,6DAA6D;AAC7D,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,KAAoB,EAAuB,EAAE,CACzE,IAAI,GAAG,CAAC;IACN,KAAK,CAAC,KAAK,CAAC,SAAS;IACrB,KAAK,CAAC,KAAK,CAAC,QAAQ;IACpB,KAAK,CAAC,KAAK,CAAC,SAAS;IACrB,KAAK,CAAC,KAAK,CAAC,cAAc;IAC1B,0EAA0E;IAC1E,sDAAsD;IACtD,KAAK,CAAC,KAAK,CAAC,QAAQ;IACpB,KAAK,CAAC,KAAK,CAAC,UAAU;IACtB,KAAK,CAAC,KAAK,CAAC,mBAAmB;IAC/B,KAAK,CAAC,KAAK,CAAC,aAAa;IACzB,0EAA0E;IAC1E,8DAA8D;IAC9D,KAAK,CAAC,KAAK,CAAC,YAAY;IACxB,KAAK,CAAC,KAAK,CAAC,aAAa;IACzB,KAAK,CAAC,KAAK,CAAC,aAAa;IACzB,0CAA0C;IAC1C,KAAK,CAAC,KAAK,CAAC,UAAU;IACtB,0EAA0E;IAC1E,8BAA8B;IAC9B,KAAK,CAAC,KAAK,CAAC,SAAS;CACtB,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"surface.js","sourceRoot":"","sources":["../src/surface.ts"],"names":[],"mappings":"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"}
|
package/dist/tools.d.ts
CHANGED
|
@@ -1417,6 +1417,8 @@ export declare const notSoldHereWords: (group: string) => string;
|
|
|
1417
1417
|
export declare const notOnSaleWords: (group: string, why: string) => string;
|
|
1418
1418
|
/** A rate's cancellation terms in the supplier's own words (`Room.terms`), quoted - or that none were given. */
|
|
1419
1419
|
export declare const termsWords: (terms: string) => string;
|
|
1420
|
+
/** How many room types a client that draws no card shows the guest at once - see `roomChoiceRows`. */
|
|
1421
|
+
export declare const ROOM_CHOICES_SHOWN = 5;
|
|
1420
1422
|
/**
|
|
1421
1423
|
* From how many cities a country is a list of cities to choose from rather
|
|
1422
1424
|
* than a list of hotels. China is forty; Malaysia's six hotels in three cities
|
|
@@ -1495,5 +1497,10 @@ export declare const ON_CARD: {
|
|
|
1495
1497
|
* answer said "12 Huazhu hotels in 上海." and nothing else - the hotels were on
|
|
1496
1498
|
* the card - so a client that draws none had a count to tell the guest.
|
|
1497
1499
|
*/
|
|
1498
|
-
|
|
1500
|
+
/**
|
|
1501
|
+
* How many hotels of a list a client that draws no card shows the guest at once
|
|
1502
|
+
* (总线程 11-06, after RollingGo's text answers): the rest are a count.
|
|
1503
|
+
*/
|
|
1504
|
+
export declare const HOTEL_CHOICES_SHOWN = 6;
|
|
1505
|
+
export declare const LIST_NOT_DRAWN = "Nothing was drawn: this app shows no cards, so the guest has seen none of these hotels. Tell them in your reply as a numbered list, in this order and with these numbers - each one's name; a short line with where it is, its price and what it has; and its tags, where it has any, as one more short line - as given here and nothing that is not - at most 6, and any more as a count the guest can ask for, never a pick of your own. The guest answers with a number or a name:";
|
|
1499
1506
|
//# sourceMappingURL=tools.d.ts.map
|
package/dist/tools.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"AACA,OAAO,EACL,KAAK,mBAAmB,EAWzB,MAAM,cAAc,CAAC;AACtB,OAAO,KAAK,EAAa,YAAY,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC1E,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"AACA,OAAO,EACL,KAAK,mBAAmB,EAWzB,MAAM,cAAc,CAAC;AACtB,OAAO,KAAK,EAAa,YAAY,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC1E,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAe7C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAmChD,OAAO,EAGL,KAAK,SAAS,EAMf,MAAM,WAAW,CAAC;AACnB,OAAO,KAAK,EAEV,cAAc,EAgBd,KAAK,EACL,KAAK,EAKL,eAAe,EAMhB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,KAAK,UAAU,EAA+B,MAAM,YAAY,CAAC;AAuF1E,+GAA+G;AAC/G,eAAO,MAAM,WAAW,IAAI,CAAC;AAE7B;;;;GAIG;AACH,eAAO,MAAM,UAAU,GACrB,GAAG,SAAS,EACZ,GAAG,UAAU,EACb,OAAM,mBAAuC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IACC,CAAC;AAEjD,mEAAmE;AACnE;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,WAAW,GAAI,CAAC,SAAS;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,OAAO,CAAA;CAAE,EAChG,GAAG,CAAC,EACJ,OAAO;IAAE,KAAK,EAAE,SAAS,CAAC;IAAC,KAAK,EAAE,UAAU,CAAA;CAAE,EAC9C,OAAO,MAAM,KACZ,CA6BF,CAAC;AAEF,eAAO,MAAM,aAAa,GAAI,GAAG,SAAS,EAAE,MAAM,mBAAmB,KAAG,GAAG,CAAC,MAAM,CAuB9E,CAAC;AAEL;;;;GAIG;AACH,eAAO,MAAM,aAAa,GAAI,GAAG,IAAI,CAAC,UAAU,EAAE,OAAO,GAAG,MAAM,CAAC,KAAG,MACoO,CAAC;AAsiC3S;;;;;;GAMG;AACH,eAAO,MAAM,gBAAgB,GAC3B,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAChC,MAAM,mBAAmB,EACzB,OAAO,IAAI,EACX,OAAM;IACJ,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,UAAU,CAAC,EAAE,OAAO,CAAC;CACjB,KACL,MAAM,CAAC,MAAM,EAAE,OAAO,CAmDxB,CAAC;AA6GF,eAAO,MAAM,kBAAkB,GAAI,GAAG,SAAS,KAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAmRtE,CAAC;AAEH,qDAAqD;AACrD,MAAM,MAAM,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AAE/B;;;;GAIG;AACH,MAAM,MAAM,UAAU,GAAG;IAAE,GAAG,EAAE,MAAM,EAAE,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAE9F,MAAM,MAAM,QAAQ,GAAG;IACrB,OAAO,EAAE,YAAY,CAAC;IACtB;;;OAGG;IACH,OAAO,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAC9B,KAAK,EAAE,SAAS,CAAC;IACjB,OAAO,EAAE,WAAW,CAAC;IACrB,KAAK,EAAE,SAAS,CAAC;IACjB,KAAK,EAAE,UAAU,CAAC;IAClB,uFAAuF;IACvF,UAAU,CAAC,EAAE,KAAK,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,oFAAoF;IACpF,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,4FAA4F;IAC5F,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,oFAAoF;IACpF,OAAO,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC5D,iGAAiG;IACjG,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;OAGG;IACH,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB,qFAAqF;IACrF,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;OAGG;IACH,IAAI,CAAC,EAAE,IAAI,CAAC;IACZ;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;;;OAKG;IACH,UAAU,CAAC,EAAE,MAAM,MAAM,CAAC;CAC3B,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG;IACxB,0FAA0F;IAC1F,OAAO,EAAE,MAAM,CAAC;IAChB;;;;;;;OAOG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,4FAA4F;IAC5F,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ;;;;;;OAMG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;;;;;;OAOG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG;IACvB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,4FAA4F;IAC5F,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,CAAC;AA2QF;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,MAAM,SAAS,GAAG;IACtB,MAAM,EAAE,cAAc,CAAC,QAAQ,CAAC,CAAC;IACjC,kEAAkE;IAClE,MAAM,EAAE,MAAM,CAAC;IACf,4CAA4C;IAC5C,MAAM,EAAE,KAAK,GAAG,MAAM,GAAG,MAAM,CAAC;IAChC,oEAAoE;IACpE,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,CAAC;AA8NF;;;;;;;GAOG;AACH,eAAO,MAAM,WAAW,GAAI,MAAM,MAAM,KAAG,MAGyK,CAAC;AAYrN;;;;GAIG;AACH,eAAO,MAAM,YAAY,GAAI,MAAM,QAAQ,EAAE,MAAM,MAAM;;;;;;;;;;;;;;;;;qBA/lD/C,CAAR;;;;;qBAEuC,CAAC;;;;;;oBAeuC,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;eA0+B7D,MAAM;gBAAU,MAAM;gBAAU,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;eAAtC,MAAM;gBAAU,MAAM;gBAAU,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;eAAtC,MAAM;gBAAU,MAAM;gBAAU,MAAM;;;;;;;;CAomBoB,CAAC;AA2fhF,4EAA4E;AAC5E,eAAO,MAAM,WAAW,mDAAmD,CAAC;AA+O5E;;;;;;GAMG;AACH,eAAO,MAAM,gBAAgB,GAAI,OAAO,MAAM,KAAG,MAC4Q,CAAC;AAE9T;;;;;;;;;GASG;AACH,eAAO,MAAM,cAAc,GAAI,OAAO,MAAM,EAAE,KAAK,MAAM,KAAG,MACiF,CAAC;AAM9I,gHAAgH;AAChH,eAAO,MAAM,UAAU,GAAI,OAAO,MAAM,KAAG,MAGR,CAAC;AA8FpC,sGAAsG;AACtG,eAAO,MAAM,kBAAkB,IAAI,CAAC;AA8nCpC;;;;GAIG;AACH,eAAO,MAAM,eAAe,IAAI,CAAC;AAEjC;;;;;;;;;GASG;AACH,eAAO,MAAM,aAAa,IAAI,CAAC;AAyK/B;;;;;;;;;;;;;;;;;GAiBG;AACH,eAAO,MAAM,QAAQ,GAAI,MAAM,QAAQ,KAAG,UAOzC,CAAC;AAEF,eAAO,MAAM,UAAU,GACrB,MAAM,QAAQ,EACd,MAAM,MAAM,EACZ,SAAS,OAAO,EAChB,KAAK,WAAW,KACf,OAAO,CAAC,UAAU,CA0CpB,CAAC;AAsBF;;;;;;;;;;GAUG;AACH,eAAO,MAAM,eAAe,oPACuN,CAAC;AAEpP;;;;;;GAMG;AACH,eAAO,MAAM,cAAc,2aAC+Y,CAAC;AAE3a,sFAAsF;AACtF,eAAO,MAAM,oBAAoB,kOACgM,CAAC;AAElO;;;;;;;GAOG;AACH,eAAO,MAAM,OAAO;;;CAKV,CAAC;AAEX;;;;;;GAMG;AACH;;;GAGG;AACH,eAAO,MAAM,mBAAmB,IAAI,CAAC;AAErC,eAAO,MAAM,cAAc,0dAA+e,CAAC"}
|
package/dist/tools.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { aboutLines } from './about.js';
|
|
2
2
|
import { DEFAULT_PAGE, FULL_CAPABILITIES, LASTING_REQUESTS, MAX_PAGE, REQUEST_KINDS, REQUEST_NOTE_MAX, guestTooLong, notPricedForNoAnswer, unansweredBy, unitWords, } from './backend.js';
|
|
3
3
|
import { usedOnWords } from './coupon-words.js';
|
|
4
|
-
import { MAX_GUESTS, addDays, isDay, nights as nightsBetween } from './dates.js';
|
|
4
|
+
import { MAX_GUESTS, addDays, dateOptions, dayWords, isDay, nights as nightsBetween, stayDayWords, toDay, } from './dates.js';
|
|
5
5
|
import { FACILITIES } from './facilities.js';
|
|
6
6
|
import { DESCRIPTION_MAX, POLICY_MAX, hotelName, hotelText } from './fence.js';
|
|
7
7
|
import { clockOf, minutesOf, startProblem, stayWords, windowWords } from './hourly.js';
|
|
@@ -11,7 +11,7 @@ import { overlapsOf } from './overlap.js';
|
|
|
11
11
|
import { MAX_COMPARED, MAX_CONS, MAX_DAYS, MAX_ITEMS_PER_DAY, MAX_MOMENTS, MAX_PROS, buildItinerary, candidatesFor, compareHotels, namesMoreThanOne, } from './present.js';
|
|
12
12
|
import { withReference } from './reference.js';
|
|
13
13
|
import { regionOf } from './regions.js';
|
|
14
|
-
import { activeKeysOf, byRoomType, facetsOf, keyWords, matchesTerms, optionsOf, roomTermsOf, termWords, } from './room-filters.js';
|
|
14
|
+
import { FAMILY_SLEEPS, activeKeysOf, byRoomType, facetsOf, keyWords, matchesTerms, optionsOf, roomTermsOf, termWords, } from './room-filters.js';
|
|
15
15
|
import { SAME_BOOKING_MS } from './same-booking.js';
|
|
16
16
|
import { MAX_EXTRA_QUANTITY, MAX_ROOMS_PER_LINE, clampCount, pickedKey, shownOf, stampOf, tripKey, } from './trip.js';
|
|
17
17
|
import { branded, catalogue, upFirst } from './vocab.js';
|
|
@@ -2384,6 +2384,16 @@ const memberTripLines = (q) => {
|
|
|
2384
2384
|
const couponRefusedLine = (q) => q.couponRefused
|
|
2385
2385
|
? `The coupon ${q.couponRefused.name ? couponName({ name: q.couponRefused.name, names: q.couponRefused.names }) : q.couponRefused.id} was NOT taken off: ${q.couponRefused.why} The total is without it.`
|
|
2386
2386
|
: '';
|
|
2387
|
+
/** What cancelling a trip's room costs, after its price: ", free to cancel until …" - or nothing where nothing is known. */
|
|
2388
|
+
const lineCancelWords = (l) => l.terms !== undefined
|
|
2389
|
+
? `, ${termsWords(l.terms)}`
|
|
2390
|
+
: l.freeCancellationUntil
|
|
2391
|
+
? `, free to cancel until ${freeUntilText(l)}`
|
|
2392
|
+
: l.refundable === false
|
|
2393
|
+
? ', non-refundable'
|
|
2394
|
+
: l.refundable
|
|
2395
|
+
? ', the free cancellation window has closed - cancelling now has a fee'
|
|
2396
|
+
: '';
|
|
2387
2397
|
const tripText = (quote, noCards) => {
|
|
2388
2398
|
// A part not priced because its group did not answer just now: said once, and
|
|
2389
2399
|
// left to the guest to ask for again (`askLater`; the trip is drawn as a card).
|
|
@@ -2397,7 +2407,17 @@ const tripText = (quote, noCards) => {
|
|
|
2397
2407
|
if (quote.lines.length === 0)
|
|
2398
2408
|
return 'The trip is empty.';
|
|
2399
2409
|
const lines = quote.lines.map((l) => l.kind === 'room'
|
|
2400
|
-
?
|
|
2410
|
+
? noCards
|
|
2411
|
+
? // ⚠️ EVERYTHING THE GUEST SAYS YES TO, ON THE LINE (robin 11-06): to a
|
|
2412
|
+
// client that draws no card this is what is said back before the
|
|
2413
|
+
// booking - the nights with their weekdays, the party, and what
|
|
2414
|
+
// cancelling costs, which the card shows beside the Book button.
|
|
2415
|
+
`- ${l.quantity ?? 1}× ${withZh(l.title, l.titleNames, true)} at ${withZh(l.hotelName, l.hotelNames, true)}, ${l.hourly
|
|
2416
|
+
? stayWords(l.stay, l.hourly)
|
|
2417
|
+
: l.stay
|
|
2418
|
+
? `${stayDayWords(l.stay.checkIn, l.stay.checkOut)}, ${l.stay.checkIn} to ${l.stay.checkOut}`
|
|
2419
|
+
: `${l.nights} ${l.nights === 1 ? 'night' : 'nights'}`}${l.stay ? `, ${l.stay.guests} ${l.stay.guests === 1 ? 'guest' : 'guests'}` : ''} — ${formatMoney(l.total)}${lineCancelWords(l)}`
|
|
2420
|
+
: `- ${l.quantity ?? 1}× ${withZh(l.title, l.titleNames, noCards)} at ${withZh(l.hotelName, l.hotelNames, noCards)}, ${l.hourly ? stayWords(l.stay, l.hourly) : `${stayWords(l.stay)} (${l.nights} ${l.nights === 1 ? 'night' : 'nights'})`} — ${formatMoney(l.total)}`
|
|
2401
2421
|
: `- ${l.ordered ?? l.quantity}× ${l.title}${l.ordered !== undefined && l.quantity !== undefined && l.quantity !== l.ordered ? ` (${l.quantity} in all, over the stay)` : ''} — ${formatMoney(l.total)}`);
|
|
2402
2422
|
return [
|
|
2403
2423
|
...lines,
|
|
@@ -2759,6 +2779,121 @@ noCards) => {
|
|
|
2759
2779
|
: `- ${type.name}${roomFactsWords(cheapest)} — ${n} rates from ${fromWords(cheapest)}${forRooms(cheapest)}. Cheapest: "${cheapest.name}"${labelWords(cheapest)}, ${cancelWords(cheapest)}.${also.length ? ` ${also.join('; ')}.` : ''}`;
|
|
2760
2780
|
});
|
|
2761
2781
|
};
|
|
2782
|
+
/** How many room types a client that draws no card shows the guest at once - see `roomChoiceRows`. */
|
|
2783
|
+
export const ROOM_CHOICES_SHOWN = 5;
|
|
2784
|
+
/** The labels that say what a rate has for breakfast - its column of a choice, not a label after it. */
|
|
2785
|
+
const isMealLabel = (l) => l === 'room-only' || l.startsWith('breakfast');
|
|
2786
|
+
/** Breakfast on a rate, as a column of a choice: its label's own words ("breakfast for 2"), or with or without. */
|
|
2787
|
+
const breakfastColumn = (r) => {
|
|
2788
|
+
const said = (r.labels ?? []).find((l) => l.startsWith('breakfast'));
|
|
2789
|
+
return said ? LABEL_WORDS[said] : facetsOf(r).breakfast ? 'breakfast included' : 'no breakfast';
|
|
2790
|
+
};
|
|
2791
|
+
/** A rate's labels other than its breakfast - " [promotion, paid in advance - not booked here]" - or nothing. */
|
|
2792
|
+
const otherLabelWords = (r) => labelWords({ ...r, labels: (r.labels ?? []).filter((l) => !isMealLabel(l)) });
|
|
2793
|
+
/**
|
|
2794
|
+
* A hotel's rooms for the nights as the numbered choices a client that draws no
|
|
2795
|
+
* card tells the guest (robin 11-06: 「房型选择…看看有没有办法在文字版优化下」).
|
|
2796
|
+
*
|
|
2797
|
+
* One row per ROOM TYPE, cheapest first - name · bed · breakfast · cancelling ·
|
|
2798
|
+
* the whole stay's total - at its lowest rate, with how many other rates the
|
|
2799
|
+
* type has: what the card shows a guest who can tap, in a line they can answer
|
|
2800
|
+
* with its number. The room id after the dash is the one `addToTrip` takes for
|
|
2801
|
+
* that number. Every row is in the answer, numbered, so "the sixth" is a row
|
|
2802
|
+
* the model can name when the guest asks for the rest; the guest is shown the
|
|
2803
|
+
* first `ROOM_CHOICES_SHOWN`, and the others as a count.
|
|
2804
|
+
*
|
|
2805
|
+
* ⚠️ HOW IT IS PAID STAYS ON THE ROW (2026-11-02 audit, P1-5): a rate paid in
|
|
2806
|
+
* advance cannot be booked here, and a row that said only its price would let
|
|
2807
|
+
* the model offer it.
|
|
2808
|
+
*/
|
|
2809
|
+
const roomChoiceRows = (rooms, roomsWanted) => byRoomType(rooms)
|
|
2810
|
+
.map((type) => ({
|
|
2811
|
+
type,
|
|
2812
|
+
r: type.rooms.reduce((a, b) => (b.stayTotal.minor < a.stayTotal.minor ? b : a)),
|
|
2813
|
+
}))
|
|
2814
|
+
.sort((a, b) => a.r.stayTotal.minor - b.r.stayTotal.minor)
|
|
2815
|
+
.map(({ type, r }, i) => {
|
|
2816
|
+
const others = type.rooms.length - 1;
|
|
2817
|
+
const more = others
|
|
2818
|
+
? `${others} more ${others === 1 ? 'rate' : 'rates'} on this room type`
|
|
2819
|
+
: '';
|
|
2820
|
+
// ⚠️ "BEFORE TAXES" ONLY WHERE IT IS SO (0.55.3): a supplier price with its
|
|
2821
|
+
// taxes in and no split (`Room.terms`, Otaless - `taxesAndFees` "Included")
|
|
2822
|
+
// is "a night" alone.
|
|
2823
|
+
const night = nightWords(true, r.terms !== undefined && r.taxesAndFees.minor === 0);
|
|
2824
|
+
const total = r.hourly
|
|
2825
|
+
? `${priceWords(r, true)}${more ? ` (${more})` : ''}`
|
|
2826
|
+
: `${roomsWanted > 1
|
|
2827
|
+
? `${formatMoney(multiplyMoney(r.stayTotal, roomsWanted))} for ${roomsWanted} rooms, for the stay incl. taxes and fees (${formatMoney(r.nightly)} ${night} a room`
|
|
2828
|
+
: `${formatMoney(r.stayTotal)} for the stay incl. taxes and fees (${formatMoney(r.nightly)} ${night}`}${more ? `; ${more}` : ''})`;
|
|
2829
|
+
return `${i + 1}. ${[
|
|
2830
|
+
withZh(type.name, r.roomType ? r.roomType.names : r.names, true),
|
|
2831
|
+
r.beds,
|
|
2832
|
+
// A room for a family says so: "three of us" is chosen by it.
|
|
2833
|
+
r.sleeps >= FAMILY_SLEEPS ? `sleeps ${r.sleeps}` : '',
|
|
2834
|
+
breakfastColumn(r),
|
|
2835
|
+
cancelWords(r),
|
|
2836
|
+
total,
|
|
2837
|
+
]
|
|
2838
|
+
.filter(Boolean)
|
|
2839
|
+
.join(' · ')}${otherLabelWords(r)} — room \`${r.id}\``;
|
|
2840
|
+
});
|
|
2841
|
+
/**
|
|
2842
|
+
* What the assistant is told to do with `roomChoiceRows` - in the text and,
|
|
2843
|
+
* word for word, in the structure (`roomChoices`): the model reads the structure.
|
|
2844
|
+
*/
|
|
2845
|
+
const roomChoicesLead = (types, when) => `Say the dates first, as they are here - ${when} - then show the guest these as a numbered list, one line each, as they are here and in their language, without the room ids - ${types > ROOM_CHOICES_SHOWN
|
|
2846
|
+
? `the first ${ROOM_CHOICES_SHOWN}, then "${types - ROOM_CHOICES_SHOWN} more room ${types - ROOM_CHOICES_SHOWN === 1 ? 'type' : 'types'}" in one line (the rest are below, for a guest who asks)`
|
|
2847
|
+
: 'every one'}. The guest answers with a number or by describing one: a number is that line's room.`;
|
|
2848
|
+
/**
|
|
2849
|
+
* Today at a hotel, for the dates offered to a guest who named none: its own
|
|
2850
|
+
* date where the backend gives it (`todayThere`); else the sun's, from where it
|
|
2851
|
+
* is (15° of longitude an hour - the Otaless backend gives no clock); else UTC's.
|
|
2852
|
+
*/
|
|
2853
|
+
const todayOfHotel = (h, now) => {
|
|
2854
|
+
if (h.todayThere && isDay(h.todayThere))
|
|
2855
|
+
return h.todayThere;
|
|
2856
|
+
const lng = h.geo?.lng;
|
|
2857
|
+
return typeof lng === 'number' && Number.isFinite(lng)
|
|
2858
|
+
? toDay(now + Math.max(-12, Math.min(14, Math.round(lng / 15))) * 3_600_000)
|
|
2859
|
+
: toDay(now);
|
|
2860
|
+
};
|
|
2861
|
+
/**
|
|
2862
|
+
* What a client that draws no card is told of the night a dateless answer is
|
|
2863
|
+
* priced for (robin 11-06: 「日期选择…文字版优化」): tonight, on the hotel's own
|
|
2864
|
+
* calendar, said in the reply's first sentence - with this weekend and next by
|
|
2865
|
+
* their weekdays and dates (`dateOptions`) as the other choices, in the same
|
|
2866
|
+
* sentence. Named, not numbered: the numbers in that reply are the rooms' or the
|
|
2867
|
+
* hotels', and "2" has to mean one thing. In the text and, word for word, in the
|
|
2868
|
+
* structure (`stayDefault`).
|
|
2869
|
+
*/
|
|
2870
|
+
const stayDefaultWords = (today, guests, roomsAsked,
|
|
2871
|
+
/** What the reply numbers - the rooms of a hotel, or the hotels of a list. */
|
|
2872
|
+
numbers) => {
|
|
2873
|
+
const [tonight, ...others] = dateOptions(today);
|
|
2874
|
+
const rooms = Math.max(1, Math.min(MAX_ROOMS_PER_LINE, Math.floor(Number(roomsAsked) || 1)));
|
|
2875
|
+
return `No dates were asked for, so this is priced for tonight by default, on the ${numbers === 'rooms' ? "hotel's" : "hotels'"} own date: ${stayDayWords(tonight?.checkIn ?? today, tonight?.checkOut ?? addDays(today, 1))}, ${guests} ${guests === 1 ? 'guest' : 'guests'}, ${rooms === 1 ? 'one room' : `${rooms} rooms`}. Open your reply with that, in one sentence, and name the other nights in the same sentence as choices, by their dates - ${others
|
|
2876
|
+
.map((o) => `${o.label}, ${dayWords(o.checkIn)} to ${dayWords(o.checkOut)} (${o.nights} nights; checkIn ${o.checkIn}, checkOut ${o.checkOut})`)
|
|
2877
|
+
.join(', or ')}, or dates of their own. Do not number those: the numbers are the ${numbers}'. Never ask for dates before showing the ${numbers}; a guest who names other nights is asked again with them.`;
|
|
2878
|
+
};
|
|
2879
|
+
/**
|
|
2880
|
+
* The lead and the numbered rows - in the text and, word for word, in `roomChoices`.
|
|
2881
|
+
*
|
|
2882
|
+
* ⚠️ WHAT CANNOT BE BOOKED HERE IS SAID BEFORE THE LIST (robin's Manus run, 11-06,
|
|
2883
|
+
* via 总线程): nine Huazhu rates, every one paid in advance, and "none of these can
|
|
2884
|
+
* be booked here" came after all of them. `before` is that sentence, first.
|
|
2885
|
+
*/
|
|
2886
|
+
const roomChoicesOf = (rooms, roomsWanted, when, before) => [
|
|
2887
|
+
...(before ? [before] : []),
|
|
2888
|
+
roomChoicesLead(byRoomType(rooms).length, when),
|
|
2889
|
+
...roomChoiceRows(rooms, roomsWanted),
|
|
2890
|
+
];
|
|
2891
|
+
/** The sentence said before the rooms where some - or all - of them are paid in advance and not booked here. */
|
|
2892
|
+
const notSoldFirst = (rooms, notSold) => !notSold
|
|
2893
|
+
? ''
|
|
2894
|
+
: rooms.length > 0 && rooms.every((r) => r.notSoldHere)
|
|
2895
|
+
? `Every rate here for these nights is paid in advance, so none of them can be booked here yet - say that first, before the list. ${notSold}`
|
|
2896
|
+
: `${notSold} Say it before the list.`;
|
|
2762
2897
|
/**
|
|
2763
2898
|
* What a hotel's rooms look like to the assistant for the nights: one line per
|
|
2764
2899
|
* type, and with filters only the rates that meet ALL of them. None meeting
|
|
@@ -2769,10 +2904,19 @@ const roomsText = (hotelName,
|
|
|
2769
2904
|
/** "3 room types for 2026-11-04 to 2026-11-06, 2 guests" - what the rooms are, counted. */
|
|
2770
2905
|
counted,
|
|
2771
2906
|
/** "2026-11-04 to 2026-11-06" - when, for the sentence that says none fit. */
|
|
2772
|
-
when, enough, roomsWanted, terms, noCards
|
|
2907
|
+
when, enough, roomsWanted, terms, noCards,
|
|
2908
|
+
/** The nights as the guest reads them - weekdays first - for a client that draws no card. */
|
|
2909
|
+
saidWhen,
|
|
2910
|
+
/**
|
|
2911
|
+
* What is said before the list to a client that draws no card: rates paid in
|
|
2912
|
+
* advance (`notSoldFirst`), and other arrivals that cost less (`dateFlex`).
|
|
2913
|
+
*/
|
|
2914
|
+
before) => {
|
|
2773
2915
|
// A type with several rates is priced from its cheapest: say how to reach another.
|
|
2774
2916
|
const lines = (rs) => [
|
|
2775
|
-
...
|
|
2917
|
+
...(noCards
|
|
2918
|
+
? roomChoicesOf(rs, roomsWanted, saidWhen ?? when, before)
|
|
2919
|
+
: roomTypeLines(rs, roomsWanted, terms)),
|
|
2776
2920
|
...(byRoomType(rs).some((t) => t.rooms.length > 1)
|
|
2777
2921
|
? [
|
|
2778
2922
|
noCards
|
|
@@ -3468,10 +3612,17 @@ const currentTrip = async (deps, key, who, store = key, coupon, ctx) => {
|
|
|
3468
3612
|
// client that draws none - said only "name and email", so the first booking
|
|
3469
3613
|
// came back "needs a phone number". Whose need it is is the trip's groups',
|
|
3470
3614
|
// as `requestBooking` judges it.
|
|
3615
|
+
//
|
|
3616
|
+
// ⚠️ AND SAID BACK ONCE BEFORE IT IS BOOKED (robin 11-06: 确认下单): the card
|
|
3617
|
+
// shows the stay beside its Book button, and a guest who picked "the second
|
|
3618
|
+
// one" or "next Friday for two nights" in words has not seen what that came
|
|
3619
|
+
// to. One message - every stay, its nights by weekday, the room, the party,
|
|
3620
|
+
// the total and what cancelling costs - and a yes, or what to change. A
|
|
3621
|
+
// guest whose own words already named all of it, dates and all, has said it.
|
|
3471
3622
|
const nextStep = ctx?.noCards && parts.some((p) => p.lines.some((l) => l.kind === 'room'))
|
|
3472
3623
|
? (deps.backend.capabilities ?? FULL_CAPABILITIES).readOnly
|
|
3473
3624
|
? readOnlyWords(deps.vocab)
|
|
3474
|
-
: `Nothing in the trip is booked yet.
|
|
3625
|
+
: `Nothing in the trip is booked yet. Before booking, say it back to the guest once, in one message: each ${deps.vocab.noun}, its nights with their weekdays, the room, the guests, the total and the cancellation terms, as this answer gives them - and ask them to reply "confirm" (确认) to book it, or to say what to change. In the same message, ask for their own ${guestDetailsFor(deps, lines.filter((l) => l.kind === 'room'))} if they have not typed them in this conversation. Call ${deps.tools.requestBooking} only after that yes - unless the guest's own message just now named all of it (the ${deps.vocab.noun}, the room, the nights as dates) and asked for it to be booked, which is the yes. A guest changing the room or the nights is not adding a stay: take the old line out (its rooms to 0).`
|
|
3475
3626
|
: '';
|
|
3476
3627
|
if (parts.length === 1 && only) {
|
|
3477
3628
|
return {
|
|
@@ -3888,7 +4039,12 @@ export const ON_CARD = {
|
|
|
3888
4039
|
* answer said "12 Huazhu hotels in 上海." and nothing else - the hotels were on
|
|
3889
4040
|
* the card - so a client that draws none had a count to tell the guest.
|
|
3890
4041
|
*/
|
|
3891
|
-
|
|
4042
|
+
/**
|
|
4043
|
+
* How many hotels of a list a client that draws no card shows the guest at once
|
|
4044
|
+
* (总线程 11-06, after RollingGo's text answers): the rest are a count.
|
|
4045
|
+
*/
|
|
4046
|
+
export const HOTEL_CHOICES_SHOWN = 6;
|
|
4047
|
+
export const LIST_NOT_DRAWN = `Nothing was drawn: this app shows no cards, so the guest has seen none of these hotels. Tell them in your reply as a numbered list, in this order and with these numbers - each one's name; a short line with where it is, its price and what it has; and its tags, where it has any, as one more short line - as given here and nothing that is not - at most ${HOTEL_CHOICES_SHOWN}, and any more as a count the guest can ask for, never a pick of your own. The guest answers with a number or a name:`;
|
|
3892
4048
|
/**
|
|
3893
4049
|
* One hotel of a list as a line, for a client that shows no cards.
|
|
3894
4050
|
*
|
|
@@ -3899,7 +4055,7 @@ export const LIST_NOT_DRAWN = "Nothing was drawn: this app shows no cards, so th
|
|
|
3899
4055
|
* can be booked. Each priced line says how its rate is paid and what it costs
|
|
3900
4056
|
* to cancel, as the card's tile does.
|
|
3901
4057
|
*/
|
|
3902
|
-
const listedInWords = (h) => {
|
|
4058
|
+
const listedInWords = (h, n, tags = []) => {
|
|
3903
4059
|
const where = [h.area, h.city]
|
|
3904
4060
|
.filter((x) => !!x)
|
|
3905
4061
|
.map((x) => hotelName(x))
|
|
@@ -3930,8 +4086,64 @@ const listedInWords = (h) => {
|
|
|
3930
4086
|
: h.fromNightly
|
|
3931
4087
|
? `from ${formatMoney(h.fromNightly)} ${nightWords(true, h.fromNightlyTaxes === 'unknown')}`
|
|
3932
4088
|
: '';
|
|
3933
|
-
|
|
4089
|
+
// ⚠️ ONLY WHAT THE GROUP SAYS OF IT (总线程 11-06): its brand where the name
|
|
4090
|
+
// does not carry it, its rating where there is one, and a few of its own
|
|
4091
|
+
// facilities - a short line the guest can tell hotels apart by, nothing made up.
|
|
4092
|
+
const brand = h.brand && !hotelName(h.name).toLowerCase().includes(h.brand.toLowerCase())
|
|
4093
|
+
? hotelName(h.brand)
|
|
4094
|
+
: '';
|
|
4095
|
+
const rated = h.rating
|
|
4096
|
+
? `rated ${h.rating.value}/${h.rating.scaleMax}${h.rating.count ? ` from ${h.rating.count} reviews` : ''}`
|
|
4097
|
+
: '';
|
|
4098
|
+
const has = h.amenities.slice(0, 3).map(hotelName).filter(Boolean);
|
|
4099
|
+
return `${n}. ${withZh(h.name, h.names?.name, true)} (\`${h.id}\`)${[where, brand, rated]
|
|
4100
|
+
.filter(Boolean)
|
|
4101
|
+
.map((x) => ` · ${x}`)
|
|
4102
|
+
.join('')}${price ? `: ${price}` : ''}${has.length ? `; has ${has.join(', ')}` : ''}${tags.length ? `\n tags: ${tags.join(' · ')}` : ''}`;
|
|
3934
4103
|
};
|
|
4104
|
+
/**
|
|
4105
|
+
* What sets each hotel of a list apart, from what the list itself says (总线程
|
|
4106
|
+
* 11-06, after RollingGo's text answers - "Most central · 5-star · SGD 244"): the
|
|
4107
|
+
* lowest price and the best rating among them, and a stay's own free cancelling
|
|
4108
|
+
* and breakfast. Never a word the data does not carry - a distance is not given,
|
|
4109
|
+
* so none is said.
|
|
4110
|
+
*/
|
|
4111
|
+
const listTagsOf = (hotels) => {
|
|
4112
|
+
const priceOf = (h) => h.forStay?.total ?? h.fromNightly;
|
|
4113
|
+
const priced = hotels.filter((h) => priceOf(h));
|
|
4114
|
+
const oneCurrency = new Set(priced.map((h) => priceOf(h)?.currency)).size === 1;
|
|
4115
|
+
const lowest = priced.length > 1 && oneCurrency
|
|
4116
|
+
? Math.min(...priced.map((h) => priceOf(h)?.minor ?? Number.POSITIVE_INFINITY))
|
|
4117
|
+
: undefined;
|
|
4118
|
+
const score = (h) => (h.rating ? h.rating.value / h.rating.scaleMax : -1);
|
|
4119
|
+
const rated = hotels.filter((h) => h.rating);
|
|
4120
|
+
const best = rated.length > 1 ? Math.max(...rated.map(score)) : undefined;
|
|
4121
|
+
const breakfast = (h) => !!h.forStay &&
|
|
4122
|
+
((!!h.forStay.meal && h.forStay.meal.plan !== 'none') ||
|
|
4123
|
+
(h.forStay.labels ?? []).some((l) => l.startsWith('breakfast')));
|
|
4124
|
+
const free = (h) => !!h.forStay?.freeCancellation;
|
|
4125
|
+
// A tag every one of them would carry sets none apart.
|
|
4126
|
+
const apart = (has) => !hotels.every(has);
|
|
4127
|
+
return hotels.map((h) => [
|
|
4128
|
+
lowest !== undefined && priceOf(h)?.minor === lowest ? 'lowest price in this list' : '',
|
|
4129
|
+
best !== undefined && score(h) === best ? 'best rated in this list' : '',
|
|
4130
|
+
free(h) && apart(free) ? 'free to cancel' : '',
|
|
4131
|
+
breakfast(h) && apart(breakfast) ? 'breakfast included' : '',
|
|
4132
|
+
].filter(Boolean));
|
|
4133
|
+
};
|
|
4134
|
+
/**
|
|
4135
|
+
* What a client that draws no card is told of a list asked for without dates
|
|
4136
|
+
* (总线程 11-06, robin's Manus run: an Atour list said only "from ¥368 a night",
|
|
4137
|
+
* and the model asked the dates, the party, the rooms, the area, the budget,
|
|
4138
|
+
* breakfast and cancelling all at once). Its prices are from-prices, said in
|
|
4139
|
+
* the reply's first sentence with the nights they could be priced for by their
|
|
4140
|
+
* dates (`dateOptions`) - and nothing asked before the list. A list is not
|
|
4141
|
+
* priced for tonight as a hotel's page is: a city is up to twenty quotes, and the
|
|
4142
|
+
* guest opens one hotel next, which is. In both, in the same words (`stayDefault`).
|
|
4143
|
+
*/
|
|
4144
|
+
const fromPricesWords = (today) => `No dates were asked for, so each price here is that hotel's from-price - its lowest rate a night, not a stay. Open your reply with that in one sentence, and in the same sentence name the nights it can be priced for, by their dates: ${dateOptions(today)
|
|
4145
|
+
.map((o) => `${o.label}, ${dayWords(o.checkIn)} to ${dayWords(o.checkOut)}`)
|
|
4146
|
+
.join('; ')} - or dates of their own. Do not number those: the numbers are the hotels'. Ask nothing else first - no budget, area, breakfast or cancelling questions: the list is the answer.`;
|
|
3935
4147
|
/**
|
|
3936
4148
|
* One column of a comparison as a line, for a client that shows no cards:
|
|
3937
4149
|
* what the card's rows say - where, the rating, the room, the price - and the
|
|
@@ -5169,7 +5381,12 @@ const answerTool = async (deps, name, rawArgs, ctx) => {
|
|
|
5169
5381
|
// rides along into the priced list, and every price in it is two rooms'.
|
|
5170
5382
|
const roomCount = ask.rooms ?? 1;
|
|
5171
5383
|
// In both, in the same words: the model reads the structure.
|
|
5172
|
-
|
|
5384
|
+
// ⚠️ TO A CLIENT THAT DRAWS NO CARD, THE OTHER NIGHTS ARE NAMED BY THEIR
|
|
5385
|
+
// DATES (robin 11-06): the card has a date bar to change; in words it is
|
|
5386
|
+
// the reply's first sentence - see `stayDefaultWords`.
|
|
5387
|
+
const stayDefault = ctx.noCards
|
|
5388
|
+
? stayDefaultWords(tonight.checkIn, tonight.guests, roomCount, 'hotels')
|
|
5389
|
+
: `No dates were asked for, so this opens on tonight by default: ${tonight.checkIn} to ${tonight.checkOut} (one night, on the hotels' own date), ${tonight.guests} ${tonight.guests === 1 ? 'guest' : 'guests'}, ${roomCount === 1 ? 'one room' : `${roomCount} rooms`} - every price here is for that night. Say so: the prices shown are tonight's, and the guest can change the dates on the card or name others. Do not ask for dates before showing them.`;
|
|
5173
5390
|
// Right after what is here - "every one, and no others" stays the first thing said.
|
|
5174
5391
|
const inAll = String(priced.structured.inAll ?? '');
|
|
5175
5392
|
return {
|
|
@@ -5459,6 +5676,19 @@ const answerTool = async (deps, name, rawArgs, ctx) => {
|
|
|
5459
5676
|
const notSold = notSoldOn ? notSoldHereWords(groupNameOf(deps, notSoldOn.id)) : '';
|
|
5460
5677
|
if (notSold)
|
|
5461
5678
|
priceNotes.push(notSold);
|
|
5679
|
+
// To a client that draws no card, the hotels as numbered lines - numbered
|
|
5680
|
+
// across pages, so "the 23rd" on the second page is still one hotel. In the
|
|
5681
|
+
// text and, word for word, in the structure (`hotelChoices`).
|
|
5682
|
+
const tagsOf = ctx.noCards ? listTagsOf(hotels) : [];
|
|
5683
|
+
const hotelChoices = ctx.noCards && hotels.length
|
|
5684
|
+
? hotels.map((h, i) => listedInWords(h, offset + i + 1, tagsOf[i])).join('\n')
|
|
5685
|
+
: '';
|
|
5686
|
+
// …and, asked without dates, what its prices are - first of the notes.
|
|
5687
|
+
const fromPrices = ctx.noCards && hotels.length && !ask.stay && !ask.filters?.hourly
|
|
5688
|
+
? fromPricesWords(today?.min ?? todayOfHotel(hotels[0], deps.trips.now()))
|
|
5689
|
+
: '';
|
|
5690
|
+
if (fromPrices)
|
|
5691
|
+
priceNotes.unshift(fromPrices);
|
|
5462
5692
|
// Every one by name and city, and that there are no others - or, told
|
|
5463
5693
|
// only "2 hotels", the model asked for the list again to learn which.
|
|
5464
5694
|
const degraded = degradedOf(deps, answer, undefined, ctx?.noCards);
|
|
@@ -5523,6 +5753,8 @@ const answerTool = async (deps, name, rawArgs, ctx) => {
|
|
|
5523
5753
|
// In both, like a plan's: a host with no card may hand its model this
|
|
5524
5754
|
// rather than the text.
|
|
5525
5755
|
...(ctx.noCards ? { notDrawn: LIST_NOT_DRAWN } : {}),
|
|
5756
|
+
...(hotelChoices ? { hotelChoices } : {}),
|
|
5757
|
+
...(fromPrices ? { stayDefault: fromPrices } : {}),
|
|
5526
5758
|
...(ctx.drawsCards && hotels.length ? { cardShows: ON_CARD.hotels } : {}),
|
|
5527
5759
|
...(notSold ? { notSoldHere: notSold } : {}),
|
|
5528
5760
|
},
|
|
@@ -5540,9 +5772,7 @@ const answerTool = async (deps, name, rawArgs, ctx) => {
|
|
|
5540
5772
|
...priceNotes,
|
|
5541
5773
|
widened?.found ? `Nothing matched ${widened.from}, so this is ${widened.to}.` : '',
|
|
5542
5774
|
degraded.said,
|
|
5543
|
-
|
|
5544
|
-
? `\n${LIST_NOT_DRAWN}\n${hotels.map(listedInWords).join('\n')}\n`
|
|
5545
|
-
: '',
|
|
5775
|
+
hotelChoices ? `\n${LIST_NOT_DRAWN}\n${hotelChoices}\n` : '',
|
|
5546
5776
|
ctx.drawsCards && hotels.length ? ON_CARD.hotels : '',
|
|
5547
5777
|
forPlans,
|
|
5548
5778
|
]
|
|
@@ -5597,6 +5827,31 @@ const answerTool = async (deps, name, rawArgs, ctx) => {
|
|
|
5597
5827
|
? { policies: policies.map((p) => ({ topic: p.topic, title: p.title })) }
|
|
5598
5828
|
: {}),
|
|
5599
5829
|
};
|
|
5830
|
+
// ⚠️ TO A CLIENT THAT DRAWS NO CARD, NO DATES IS TONIGHT, PRICED - AND SAID
|
|
5831
|
+
// (robin 11-06, with 总线程 after RollingGo and robin's Manus run): the card
|
|
5832
|
+
// fills in tonight itself, so a guest who can tap sees rooms at once; in
|
|
5833
|
+
// words, "which nights?" was a turn with nothing to look at. Tonight on the
|
|
5834
|
+
// hotel's own calendar, as the card and a short list open (robin 10-30:
|
|
5835
|
+
// 「默认今晚并直接出价」); the answer opens on that default and on this
|
|
5836
|
+
// weekend and next by their dates - see `stayDefaultWords`.
|
|
5837
|
+
if (!stay && ctx.noCards && !byTheHour) {
|
|
5838
|
+
const today = todayOfHotel(h, deps.trips.now());
|
|
5839
|
+
const priced = await answerTool(deps, t.getHotel, {
|
|
5840
|
+
...args,
|
|
5841
|
+
hotel: h.id,
|
|
5842
|
+
checkIn: today,
|
|
5843
|
+
checkOut: addDays(today, 1),
|
|
5844
|
+
guests: guestsOf(args),
|
|
5845
|
+
}, ctx);
|
|
5846
|
+
const stayDefault = stayDefaultWords(today, guestsOf(args), args.rooms, 'rooms');
|
|
5847
|
+
return {
|
|
5848
|
+
...priced,
|
|
5849
|
+
// In both, in the same words: the model reads the structure.
|
|
5850
|
+
structured: { ...priced.structured, stayDefault },
|
|
5851
|
+
// The hotel's own words stay: a dateless question is often "what is it like".
|
|
5852
|
+
text: [stayDefault, description.fenced, priced.text].filter(Boolean).join('\n\n'),
|
|
5853
|
+
};
|
|
5854
|
+
}
|
|
5600
5855
|
if (!stay) {
|
|
5601
5856
|
return {
|
|
5602
5857
|
// ⚠️ THE FILTERS RIDE ALONG WITHOUT DATES: the card prices the dates
|
|
@@ -5723,11 +5978,34 @@ const answerTool = async (deps, name, rawArgs, ctx) => {
|
|
|
5723
5978
|
...(r.freeCancellationUntil ? { freeCancellationLocal: freeUntilText(r) } : {}),
|
|
5724
5979
|
}));
|
|
5725
5980
|
const memberRates = memberRatesOf(enough, roomsWanted);
|
|
5981
|
+
// To a client that draws no card, the rooms are numbered choices - in the
|
|
5982
|
+
// text and, word for word, here: the model reads the structure.
|
|
5983
|
+
const choosable = terms ? enough.filter((r) => matchesTerms(r, terms)) : enough;
|
|
5984
|
+
// The other arrivals are priced on the cheapest room of any kind.
|
|
5985
|
+
const flexSaid = terms && flex.text
|
|
5986
|
+
? `${flex.text} (That is the cheapest room of any kind, not only one with ${termWords(terms)}.)`
|
|
5987
|
+
: flex.text;
|
|
5988
|
+
// ⚠️ BEFORE THE LIST, NOT AFTER IT (总线程 11-06, robin's Manus run): "arriving
|
|
5989
|
+
// the 18th is ¥253 less", last in the answer, was never passed on; and "none of
|
|
5990
|
+
// these can be booked here" after nine rates was said last.
|
|
5991
|
+
const before = [
|
|
5992
|
+
notSoldFirst(choosable, notSold),
|
|
5993
|
+
flexSaid ? `${flexSaid} Say that in one sentence before the list too.` : '',
|
|
5994
|
+
]
|
|
5995
|
+
.filter(Boolean)
|
|
5996
|
+
.join(' ');
|
|
5997
|
+
const saidWhen = byTheHour
|
|
5998
|
+
? `today, ${dayWords(stay.checkIn)}, ${stay.guests} ${stay.guests === 1 ? 'guest' : 'guests'}`
|
|
5999
|
+
: `${stayDayWords(stay.checkIn, stay.checkOut)}, ${stay.guests} ${stay.guests === 1 ? 'guest' : 'guests'}${roomsWanted > 1 ? `, ${roomsWanted} rooms` : ''}`;
|
|
6000
|
+
const roomChoices = ctx.noCards && choosable.length
|
|
6001
|
+
? roomChoicesOf(choosable, roomsWanted, saidWhen, before).join('\n')
|
|
6002
|
+
: undefined;
|
|
5726
6003
|
return {
|
|
5727
6004
|
structured: {
|
|
5728
6005
|
view: 'hotel',
|
|
5729
6006
|
...base,
|
|
5730
6007
|
stay,
|
|
6008
|
+
...(roomChoices ? { roomChoices } : {}),
|
|
5731
6009
|
rooms,
|
|
5732
6010
|
rooms_wanted: roomsWanted,
|
|
5733
6011
|
roomFilters: optionsOf(enough),
|
|
@@ -5743,12 +6021,14 @@ const answerTool = async (deps, name, rawArgs, ctx) => {
|
|
|
5743
6021
|
memberRates?.said ?? '',
|
|
5744
6022
|
...roomsText(ctx.noCards ? withZh(h.name, h.names?.name, true) : h.name, byTheHour
|
|
5745
6023
|
? (rs) => `${rs.length} ${rs.length === 1 ? 'room' : 'rooms'} by the hour for today, ${stay.checkIn}, ${stay.guests} guests`
|
|
5746
|
-
: (rs) =>
|
|
5747
|
-
|
|
5748
|
-
|
|
5749
|
-
|
|
5750
|
-
:
|
|
5751
|
-
|
|
6024
|
+
: (rs) =>
|
|
6025
|
+
// ⚠️ THE WEEKDAYS, to a client that draws no card: the dates
|
|
6026
|
+
// the model worked out of 「下周五住两晚」 are said back as the
|
|
6027
|
+
// guest can check them (robin 11-06).
|
|
6028
|
+
`${offerCount(rs)} for ${ctx.noCards ? `${stayDayWords(stay.checkIn, stay.checkOut)}, ${stay.checkIn} to ${stay.checkOut}` : `${stay.checkIn} to ${stay.checkOut}`}, ${stay.guests} guests${roomsWanted > 1 ? `, ${roomsWanted} rooms` : ''}`, byTheHour ? `today, ${stay.checkIn}` : `${stay.checkIn} to ${stay.checkOut}`, enough, roomsWanted, terms, ctx.noCards, saidWhen, before),
|
|
6029
|
+
// Said before the list to a client that draws no card (`before`).
|
|
6030
|
+
ctx.noCards && choosable.length ? '' : flexSaid,
|
|
6031
|
+
ctx.noCards && choosable.length ? '' : notSold,
|
|
5752
6032
|
ctx.drawsCards && enough.length ? ON_CARD.rooms : '',
|
|
5753
6033
|
]
|
|
5754
6034
|
.filter(Boolean)
|